Награды за стейкинг
Эта страница переведена сообществом на русский язык, но нуждается в улучшениях. Если вы хотите принять участие в переводе свяжитесь с @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, выбирает лучших кандидатов-валидаторов на основе их стейка. Вот как это работает:
-
Начальная выборка: избиратели рассматривают всех кандидатов, которые имеют стейк больше установленной минимальной суммы (300 тыс., как указано в конфигурации).
-
Сортировка кандидатов: Затем эти кандидаты располагаются от самого высокого к самому низкому в зависимости от их стейка.
-
Уточнение:
- Если количество кандидатов превышает максимально допустимое количество валидаторов (см. конфигурацию), то исключаются кандидаты с самым низким стейком.
- Затем Elector оценивает каждую потенциальную группу кандидатов, начиная с самой большой группы и переходя к меньшим:
- Он проверяет лучших кандидатов в упорядоченном списке, увеличивая число на единицу.
- Для каждого кандидата Elector вычисляет его "эффективный стейк". Если стейк кандидата значительно выше минимального, он корректируется (например, если кто-то поставил 310 тыс., а минимум составляет 100 тыс., но есть правило, ограничивающее минимум в три раза, его эффективный стейк считается равной 300 тыс.).
- Он суммирует эффективные стейки всех кандидатов в этой группе.
-
Окончательный отбор: группа кандидатов с наибольшим общим эффективным стейком выбирается Elector в качестве валидаторов.
Алгоритм выбора валидатора
На основе доступных стейков потенциальных валидаторов определяются оптимальные значения минимального и максимального стейка с целью максимизации величины общего стейка:
-
Elector выбирает всех кандидатов, у которых сумма стейка превышает минимальную (300 тысяч в конфигурации).
-
Elector сортирует их в порядке убывания стейка.
-
Если участников больше, чем максимальное число валидаторов, 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.