Перейти к основному содержимому

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

warning

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

Выборы и стейкинг

Блокчейн TON использует алгоритм консенсуса доказательства доли владения (PoS - Proof of Stake), что означает, что, как и во всех сетях PoS, безопасность и стабильность сети поддерживаются набором сетевых валидаторов. В частности, валидаторы предлагают кандидатов для новых блоков (состоящих из пакетов транзакций), в то время как другие валидаторы проверяют и утверждают их с помощью цифровых подписей.

Валидаторы выбираются с помощью специального контракта управления Elector. Во время каждого раунда консенсуса кандидаты на валидаторы отправляют заявку на выборы вместе со своей долей и желаемым max_factor (параметром, который регулирует объем обслуживания, выполняемого валидатором за раунд консенсуса).

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

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

Для каждого шардчейна и мастерчейна существует выделенный набор валидаторов. Наборы валидаторов мастерчейна состоят из до 100 валидаторов, которые демонстрируют самый высокий вес голоса (определяется как сетевой параметр Config16:max_main_validators).

Напротив, каждый шардчейн проверяется набором из 23 валидаторов (определяется как сетевой параметр Config28:shard_validators_num) и чередуется случайным образом каждые 1000 секунд (сетевой параметр Config28:shard_validators_lifetime).

Значения стейкинга: Максимально эффективный стейк

Текущий max_factor в конфигурации равен 3, что означает, что стейк наименьшего валидатора не может быть меньше стейка наибольшего валидатора более чем в три раза.

Формула с конфигурационными параметрами:

max_factor = max_stake_factor / validators_elected_for

(Упрощенный) алгоритм выбора

Этот алгоритм, запущенный смарт-контрактом Elector, выбирает лучших кандидатов-валидаторов на основе их стейка. Вот как это работает:

  1. Начальная выборка: избиратели рассматривают всех кандидатов, которые имеют стейк больше установленной минимальной суммы (300 тыс., как указано в конфигурации).

  2. Сортировка кандидатов: Затем эти кандидаты располагаются от самого высокого к самому низкому в зависимости от их стейка.

  3. Уточнение:

    • Если количество кандидатов превышает максимально допустимое количество валидаторов (см. конфигурацию), то исключаются кандидаты с самым низким стейком.
    • Затем Elector оценивает каждую потенциальную группу кандидатов, начиная с самой большой группы и переходя к меньшим:
      • Он проверяет лучших кандидатов в упорядоченном списке, увеличивая число на единицу.
      • Для каждого кандидата Elector вычисляет его "эффективный стейк". Если стейк кандидата значительно выше минимального, он корректируется (например, если кто-то поставил 310 тыс., а минимум составляет 100 тыс., но есть правило, ограничивающее минимум в три раза, его эффективный стейк считается равной 300 тыс.).
      • Он суммирует эффективные стейки всех кандидатов в этой группе.
  4. Окончательный отбор: группа кандидатов с наибольшим общим эффективным стейком выбирается Elector в качестве валидаторов.

Алгоритм выбора валидатора

На основе доступных стейков потенциальных валидаторов определяются оптимальные значения минимального и максимального стейка с целью максимизации величины общего стейка:

  1. Elector выбирает всех кандидатов, у которых сумма стейка превышает минимальную (300 тысяч в конфигурации).

  2. Elector сортирует их в порядке убывания стейка.

  3. Если участников больше, чем максимальное число валидаторов, Elector удаляет последнюю часть списка. Затем Elector делает следующее:

    • Для каждого цикла i от 1 до N (оставшееся число участников) он берет первые i заявок из отсортированного списка.
    • Он вычисляет эффективный стейк, учитывая max_factor. То есть, если человек вложил 310 тыс., но с max_factor 3, а минимальный стейк в списке составляет 100 тыс. Toncoin, то эффективный стейк будет минимум (310 тыс., 3*100 тыс.) = 300 тыс. Один узел валидатора может использовать до 600 тыс. TON (в этом примере) в двух раундах (половина в нечетных раундах, половина в четных раундах). Чтобы увеличить стейк, необходимо настроить несколько узлов валидатора.
    • Он вычисляет общий эффективнуый стейк всех i участников.

Как только Elector находит такой i, где общий эффективный стейк максимальный, мы объявляем этих i участников валидаторами.

Положительные вознаграждения

Как и во всех блокчейн сетях, каждая транзакция в TON требует платы за вычисления, называемый газ, который используется для хранения данных в сети и обработки транзакций on-chain. В TON эти платы накапливаются в контракте Elector в пуле вознаграждений.

Сеть также субсидирует создание блоков, добавляя субсидию в пул вознаграждений, равную 1,7 TON за каждый блок мастерчейна и 1 TON за каждый блок бейсчейна (параметры сети Config14:masterchain_block_fee и Config14:basechain_block_fee). Обратите внимание, что при разделении бейсчейна на несколько шардчейнов субсидия на блок шардчейна делится соответствующим образом. Этот процесс позволяет поддерживать субсидию за единицу времени практически постоянной.

к сведению

В июне 2023 года был представлен механизм дефляционного сжигания. С помощью этого механизма часть TON, сгенерированного сетью, сжигается вместо того, чтобы быть выделенной в пул вознаграждений.

После раунда цикла валидации, длящегося 65536 секунд или ~18 часов (сетевой параметр Config15:validators_elected_for), каждый из проверяющих не сразу освобождает TON, а удерживает его в течение дополнительных 32768 секунд или ~9 часов (сетевой параметр Config15:stake_held_for. В течение этого периода снимается штраф (механизм наказания для неисправных валидаторов) с валидатора. После освобождения средств валидаторы могут выводить свои депозиты вместе с долей вознаграждений пула, пропорционально их весу голосования.

По состоянию на апрель 2023 года общий пул вознаграждений за раунд консенсуса для всех валидаторов в сети составляет приблизительно 40 000 TON, при этом среднее вознаграждение на валидатора составляет ~ 120 TON (максимальная разница между весом голоса и накопленными вознаграждениями составляет ~ 3 TON).

Учитывая общий запас Toncoin (5 миллиардов TON), уровень инфляции составляет приблизительно 0,3–0,6% в год.

Однако этот уровень инфляции не всегда постоянен и может отклоняться в зависимости от текущего состояния сети. В конечном итоге он будет иметь тенденцию к дефляции после активации механизма дефляции и роста использования сети.

к сведению

Узнайте текущую статистику блокчейна TON здесь.

Отрицательные стимулы

В блокчейне TON обычно есть два способа наказания валидаторов за неправильную работу: бездействие и злонамеренное ненадлежащее поведение; оба из них запрещены и могут привести к штрафу (в процессе, называемом слэшингом) за их действия.

Если валидатор не участвует в создании блоков и подписании транзакций в течение значительного периода времени во время раунда валидации, он потенциально оштрафован с использованием параметра Standard fine. По состоянию на апрель 2023 года накопленный стандартный штраф составляет 101 TON (сетевой параметр ConfigParam40:MisbehaviorPunishmentConfig).

В TON штрафы за слэшинг (штрафы, налагаемые валидаторам) позволяют любому участнику сети подать жалобу, если он считает, что валидатор ведет себя ненадлежащим образом. В ходе этого процесса участник, подающий жалобу, должен приложить криптографические доказательства ненадлежащего поведения для подачи Elector. В течение периода разрешения споров stake_held_for все валидаторы, работающие в сети, проверяют обоснованность жалоб и голосуют, будут ли они коллективно рассматривать жалобу (определяя при этом законность доказательств ненадлежащего поведения и распределение штрафов).

При достижении 66% одобрения валидатора (измеряемого равным весом голосования) с него списывается сумма штрафа, которая сокращает его общий стейк. Процесс валидации для штрафования и разрешения жалоб обычно проводится автоматически с помощью MyTonCtrl.

Децентрализованная система штрафов

к сведению

Следующая система штрафов плохо работающих валидаторов полностью работоспособна с 9 сентября 2024 г.

Определение плохой работы

TON поставляется с утилитой lite-client. В lite-client есть команда checkloadall. Эта команда анализирует, сколько блоков должен был обработать валидатор, и сколько он фактически обработал за определенный период времени.

Если валидатор обработал менее 90% от ожидаемого количества блоков во время раунда валидации, он считается плохо работающим и должен быть оштрафован.

к сведению

Узнайте больше о техническом описании процесса здесь

Рабочий процесс подачи жалоб

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

Подать жалобу

После каждого раунда валидации (~18 часов) стейки валидаторов, участвовавших в этом раунде, остаются на смарт-контракте Elector еще ~9 часов. В это время любой может отправить жалобу на валидатора, который плохо выступил в указанном раунде. Это происходит on-chain на смарт-контракте Elector.

Проверка жалобы

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

Эти действия встроены в mytonctrl и происходят автоматически. Если жалоба набирает 66% голосов валидаторов (по их весу), штраф снимается со стейка валидатора. Никто не может единолично оштрафовать кого-либо.

@tonstatus_notifications - список оштрафованных валидаторов в каждом раунде.

Штраф

Размер штрафа фиксирован и равен 101 TON (сетевой параметр ConfigParam40:MisbehaviourPunishmentConfig), что примерно равно доходу валидатора за раунд.

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

Распределение штрафа

Штраф распределяется между валидаторами за вычетом сетевых расходов и небольшого вознаграждения (~8 TON) первому жалобщику, который отправил правильную жалобу в Elector.

Руководство для валидатора

Чтобы предотвратить штраф вашего узла валидатора, рекомендуется убедиться, что оборудование, мониторинг и операции валидатора настроены правильно. Убедитесь, что вы соблюдаете руководства по обслуживанию валидатора. Если вы не хотите этого делать, рассмотрите возможность использования услуг стейкинга https://ton.org/stake.

См. также