Исправление расписания вестинга

Клавиатура с инструментами

Команда xx labs вносит исправления в графики наделения правами 21 января 2022 г.

Обзор

С введением в действие программы BetaNet Staking Rewards в большинство кошельков на xx network были добавлены новые графики вестинга. Команда xx labs выявила ошибку, допущенную при расчете этих новых графиков наделения правами, и разработала исправление, которое восстановит правильные графики.

В этом посте мы начнем с глубокого погружения в то, как работает наделение правами в xx network.

Затем мы объясним, как была реализована программа BetaNet Staking Rewards, проблемы, которые были обнаружены после ее введения в действие, и как мы исправляем эти проблемы, связанные с изменением неправильных графиков наделения правами.

Наконец, мы публикуем все пересмотренные графики наделения правами на https://vesting.xx.network для всех держателей монет в формате данных JSON и сопровождающий файл PNG, содержащий графики наделения правами. Мы также приводим примеры различных сценариев, которые затронули держателей монет в результате вышеупомянутых проблем.

Мы внесем эти исправления 21 января 2022 года.

Что такое графики вестинга

Вестинг — это концепция, традиционно используемая с опционами на акции, когда присуждается предоставление определенного количества акций, но единицы предоставляются только (они жилет) порциями с течением времени, например, ежеквартально или ежегодно.

В контексте xx network концепция аналогична, но исполнение другое. Полная сумма присужденных монет передается непосредственно на счет получателя, но с графиком наделения, который замки монеты на определенный период времени. Монеты, заблокированные для вестинга, можно использовать для любых операций в сети (кроме использования в качестве сдержанный монеты), но не могут быть переведены на любой другой счет. Затем монеты под вестированием разблокируются в каждом блоке.

График наделения правами в xx network состоит из трех полей:

  • Сумма, которая блокируется вестингом: замокd
  • Сумма, которая открывает каждый блок: за_блок
  • Блок, когда монеты начинают разблокироваться: начальный_блок


Мы используем графики наделения правами для наложения двух разных типов ограничений на монеты: блокировка полной суммы на определенный период времени или линейная разблокировка, начинающаяся в определенный момент времени и с указанной продолжительностью.

Примеры:

Графики распределения монет, предоставляемых ежемесячными траншами по 7000 для узлов BetaNet, выглядят следующим образом:

  • замокd:7000
  • за_блок:7000
  • начальный_блок:1123200

В этом примере устанавливается блокировка 7000, которая начинает разблокировку в блоке 1123200 и разблокирует 7000 за блок. Фактически это означает, что этот транш из 7000 монет заблокирован до блока 1123200 и полностью разблокирован в блоке 1123201. Этот конкретный пример относится к вознаграждениям BetaNet за январь 2021 года, поскольку 1123200 блоков равны 1123200/(24 часа * 600). блоков в час) = 78 дней, что означает, что блокировка заканчивается 1 февраля 2022 года.

График распределения монет, выдаваемых за вознаграждение за стейкинг BetaNet, выглядит следующим образом:

  • замокd:23812
  • за_блок:0.009186728
  • начальный_блок:432000

В этом примере устанавливается блокировка 23812, разблокировка которой начинается с блока 432000 и разблокируется по 0,009186728 на блок. Это означает, что 23812 монет заблокированы до блока 432000, а затем начинают разблокироваться по 0,009186728 за блок. Мы можем рассчитать продолжительность наделения правами, разделив заблокированное на per_block: 23812/0,009186728 ~= 2592000 блоков, что составляет 2592000/(24*600) = 180 дней. Это означает, что значение полностью разблокируется через 6 месяцев после начала передачи, 432000/(24*600) = 30 дней после запуска основной сети.

Награды за стейкинг Betanet

В марте 2021 года команда объявила о программе BetaNet Staking Rewards, которая распространяется на всех держателей монет с момента запуска основной сети. Программа имеет APY 50%, проценты начисляются ежедневно с 1 марта 2021 года до запуска основной сети. На монеты, полученные после 1 марта, проценты начисляются только со дня их начисления. Сумма вознаграждения была рассчитана для каждого держателя монеты и опубликована в электронной таблице блока генезиса перед запуском основной сети. В блоке генезиса сумма вознаграждения настраивалась для каждого держателя монет в модуле заявок или непосредственно в модуле вознаграждений за стейкинг BetaNet.

Программа была разработана со следующими вариантами вознаграждения:

  • Нет вестинга и 2% вознаграждения.
  • 1 месяц начисления на 100% основной суммы плюс вознаграждение, 12% вознаграждения дается
  • 3 месяца начисления на 90% основной суммы плюс вознаграждение, дается 45% вознаграждения
  • 6 месяцев начисления на 80% основной суммы плюс вознаграждение, дается общее вознаграждение. Это опция по умолчанию, если выбор не сделан.
  • 9 месяцев начисления на 100% основной суммы плюс вознаграждение, дается 120% вознаграждения


Модуль BetaNet Staking Rewards был разработан для поддержки необходимых функций программы. Этот модуль позволял пользователям, которые запросили свои монеты на адрес xx network, выбрать желаемый вариант. Кроме того, модуль был настроен с блокировкой активации, которая была установлена на 30 дней после запуска основной сети. Это было необходимо, чтобы дать время для принятия программы, чтобы сообщество проголосовало за нее. Программа была утверждена на референдуме, на котором держатели монет голосовали в течение одной недели.

В блоке ввода в действие программа была выполнена, при этом вознаграждения были выданы из пула вознаграждений за стейкинг основной сети всем держателям монет, а также были применены графики наделения правами в соответствии с выбранным вариантом. Параметр по умолчанию с 6-месячным переходом прав был автоматически применен ко всем оставшимся претензиям, при этом сумма вознаграждения добавлялась к стоимости претензии, а также добавлялись графики наделения правами.

Существующие проблемы

Команда выявила 3 проблемы, которые повлияли на введение в действие программы BetaNet Staking Rewards:

  1. Оставшиеся требования — сумма, которая должна быть заблокирована, была рассчитана после того, как вознаграждение было добавлено к основной сумме, т. е. блокировка = 0,8 * (основная сумма + вознаграждение) + вознаграждение вместо блокировки = 0,8 * основная сумма + вознаграждение. Это приводит к более высокой заблокированной сумме, чем ожидалось, во многих оставшихся требованиях.
  2. Вычисление вестинга — сумма, которая должна быть заблокирована, была рассчитана путем взятия требуемой блокировки и вычитания текущей суммы, уже заблокированной в блоке принятия. Это было наилучшим решением, которое блокирует необходимую сумму из вознаграждений, сохраняя при этом существующие блокировки, в результате чего блокировки всегда выше, чем раньше. Однако во многих сценариях это решение может привести к заблокированным значениям ниже, чем требуется программе, что может создать несправедливые ситуации среди держателей монет, выбравших другие варианты. Более того, в некоторых случаях заблокированное значение сначала превышает необходимое, а затем падает до допустимого.
  3. Неправильная выплата вознаграждения — рассмотрим пользователя, у которого есть два отдельных требования, одно без графиков наделения правами (например, из первоначальной продажи), а другое с. Если оба запрашиваются на один и тот же адрес, сохраняется только значение вознаграждения от второго. Это означает, что значение вознаграждения за первое требование не было выплачено в блоке активации. Эта конкретная проблема касается только 3 держателей монет.

Устранение проблем

Как было объявлено ранее на форуме Почта, команда предложила обновление среды выполнения блокчейна, которое добавило дополнительные функции. Это включает в себя две функции, которые предоставляют техническому комитету возможность единогласным голосованием изменять графики наделения правами в модулях требований и наделения правами. Это обновление было одобрено на референдуме и вступило в силу в прошлый четверг, 13 января.

Эти привилегированные функции будут использоваться командой для исправления неправильных графиков наделения полномочиями, а затем будут удалены как можно скорее при дальнейшем обновлении среды выполнения.

Новые графики вестинга

Информацию о программах Vesting и BetaNet Staking Rewards для всех держателей монет можно найти по адресу https://vesting.xx.network.

Для каждого держателя монет существует файл JSON, содержащий следующую информацию:

  • принципал: количество монет, присутствующих при генезисе
  • награда: предоставленная награда, скорректированная в соответствии с выбранным параметром
  • option: выбранный вариант программы BetaNet Staking Rewards
  • вестинг: вся информация о вестинге
    • Оригинал: графики наделения присутствуют в генезисе
    • betanet_rewards: график начисления, необходимый для вознаграждения за стейкинг в бетанете.
    • on_chain: графики наделения прав в настоящее время в цепочке
    • вычислено: фиксированные графики наделения правами
  • некорректный_on_chain: неверный флаг для указания ончейн-вестинга.


Для каждого держателя монет есть файл PNG, содержащий три графика количества заблокированных монет в зависимости от номера блока. Они обеспечивают более простой способ сравнения суммы, заблокированной по разным графикам наделения правами, с течением времени:

  • Исходное распределение прав (слева): на этом графике показаны исходные графики наделения правами (синие) и те, которые требуются для вознаграждений за стейкинг BetaNet (оранжевые). После вступления в силу программы заблокированная сумма всегда должна быть самой ограничительной, то есть max(original, betanet_rewards)
  • Ончейн-вестинг (посередине): на этом графике показана та же информация, что и на предыдущем, но с наложенным графиком ончейн-вестинга (зеленый). Здесь держатели монет могут сразу увидеть, является ли текущий вестинг недействительным, и блокирует ли он больше, меньше (или и то, и другое) монет.
  • Новое распределение (справа): на этом графике показана та же информация, что и на первом, но с наложенными новыми (фиксированными) графиками наделения правами (зеленый). Здесь держатели монет могут увидеть графики распределения, которые будут установлены командой, чтобы исправить обнаруженные проблемы, которые, как видно, всегда соответствуют максимальному между исходным и бетанет-награждением. Если этот график совпадает со средним, это означает, что ончейн-вестинг уже правильный.


Имя файла для каждого файла JSON и PNG — это адрес xx network держателя монеты или адрес ETH, если монеты не были востребованы на блоке 870000. Мы рекомендуем всем членам сообщества найти соответствующую информацию и связаться с командой, если они обнаружат какие-либо проблемы.

Методология

Вся необходимая информация была собрана непосредственно из блока генезиса и состояния цепочки в различных блоках. При создании всех файлов были проведены многочисленные проверки, чтобы обнаружить любые проблемы и исправить их. Вычисление фиксированных графиков наделения правами выполнялось рекурсивно путем корректировки исходных графиков и добавления частей графиков вознаграждений BetaNet по мере необходимости, чтобы итоговая сумма соответствовала необходимой блокировке во всех блоках, что является в точности максимальным между обоими типами графиков.

Примеры различных ситуаций

Оставшаяся претензия без оригинальных замков, показывающая проблему 1

Оставшаяся заявка с оригинальными замками, показывающая проблемы 1 и 2.

Оставшаяся претензия с оригинальными замками, но правильная передача прав

Держатель с оригинальными замками, демонстрирующий проблему 2, вызывающую более высокие блокировки, чем ожидалось.

Держатель с оригинальными замками, демонстрирующий проблему 2, вызывающую первоначальные более высокие блокировки, а затем более низкие, чем ожидалось.

Держатель с оригинальными замками, но правильная вестовка

Холдер без оригинальных замков, но правильный вестинг

Держатель с оригинальными замками, с ошибкой 1 из-за претензии после вступления в силу

Популярный