Разбираем механику стейкинга в Autonity детально
Несмотря на то, что на первый взгляд в системе стейкинга в сети Autonity всё выглядит довольно заурядно, на самом деле в ней довольно много интересных особенностей, достойных отдельного разбора. Давайте погрузимся в её механики и шаг за шагом разберем все нюансы, которые делают опыт стейкинга в Autonity уникальным.
В экосистеме Autonity в основе механизма стейкинга лежит консенсус алгоритм Тендерминт, поверх него имплементирована система ликвидного стейкинга, а в качестве меры защиты от нарушения валидаторами алгоритма консенсуса используется оригинальный алгоритм Penalty Absorbing Stake.
Давайте разберемся со всеми тремя элементами по порядку.
Алгоритм консенсуса Тендерминт. В этой части все максимально стандартно, поскольку данный алгоритм весьма распространен, особенно в проектах экосистемы Cosmos. Пользователи, желающие участвовать в стейкинге, блокируют нативный токен (в нашем случае NTN) сети на счете одного или нескольких валидаторов. Данное действие является основополагающей мерой обеспечения децентрализации и безопасности PoS сети. Смысл этой механики заключается в том, что у каждого валидатора есть voting power, пропорциональный размеру его стейка. Валидаторы приходят к консенсусу при подписи очередного блока, если суммарный вес всех голосов, отданных за правильность блока, превышает определенное значение. Это настраиваемый ончейн параметр, который может изменяться от проекта к проекту, однако для Тендерминт сетей весьма распространено значение в 66.7% или другими словами более чем 2/3.
Разработчики Autonity справедливо считают, что блокирование NTN во время стейкинга приводит к снижению эффективности использования капитала. Поэтому они внедрили ликвидный стейкинг, а именно выпуск эквивалентного количества ликвидных токенов LNTN под залог нативных токенов сети NTN. Многие из нас наверняка привыкли, что ликвидный стейкинг это опция. То есть пользователь либо может застейкать токены традиционным способом, либо через провайдера ликвидного стейкинга. В Autonity этого выбора нет – при стейкинге NTN вы всегда получаете ликвидные токены LNTN.
Давайте теперь разберемся что они из себя представляют, поскольку токены LNTN значительно отличаются от ликвидных токенов, с которыми вы знакомы. Принцип работы системы ликвидного стейкинга в Autoniny скорее напоминает механизм работы модуля ликвидного стейкинга в Cosmos Hub (о чем мы писали ранее), чем ликвидные токены Lido, Stride и т.п. Дело в том, что токен LNTN, выпущенный при стейкинге в валидатора X, является взаимозаменяемым только с токеном LNTN, выпущенным при стейкинге в того же валидатора X и не является взаимозаменяемым с токеном LNTN, выпущенным при стейкинге в валидатора Y. Другими словами, если например в сети Autonity есть 100 валидаторов, то это формирует 100 отдельных пулов ликвидных токенов, взаимозаменяемых только внутри пула, соответствующего конкретному валидатору, но не взаимозаменяемых между пулами разных валидаторов. Это происходит из-за того, что для каждого валидатора уникальным является во-первых значение размера комиссии, а во-вторых частота и размер пенальти за нарушение алгоритмов консенсуса (слэшинг), и эти различия не поддаются уравниванию и препятствуют созданию единого ликвидного токена.
С размером комиссии все понятно - его валидатор назначает по собственному усмотрению в диапазоне от 0 до 100%. А вот с механизмом слешинга стоит разобраться поподробнее, тем более что в проекте Autonity используется оригинально разработанный алгоритм Penalty Absorbing Stake. В основе его лежит правило, что total stake каждого валидатора формируется из двух частей - self-bonded stake и delegated stake. Delegated stake - это те средства, которые доверили валидатору обычные пользователи сети, а self-bonded stake - это то, что валидатор делегировал в себя сам. Эти части не являются равнозначными и равноценными. Во-первых, при выявлении факта нарушения валидатором алгоритма консенсуса, в первую очередь слешингу подвергается self-bonded stake, а уже в случае если его размера не хватает, чтобы покрыть размер пенальти, то только тогда затрагивается delegated stake. По задумке разработчиков, данная мера должна повысить ответственность валидаторов и уменьшить риски для рядовых пользователей. Хотя нигде пока что не установлены минимальные требования для self-bonded stake, его размер может свидетельствовать об ответственности валидатора и являться дополнительным критерием при выборе валидатора для стейкинга (упомянуть стейкфлоу и прикрутить ссылку). Во-вторых, токены LNTN выпускаются только при пополнении delegated stake и не выпускаются при пополнении self-bonded stake. Причина кроется в том, что риски для капитала, связанные со слешингом, в self-bonded stake и delegated stake слишком различаются.
Давайте теперь разберемся с таймлайном процесса стейкинга. Как мы помним из самого первого абзаца, любые манипуляции с размером стейка какого-либо валидатора приводят к изменению его voting power, что непосредственно влияет на работу алгоритмов консенсуса. На размер стейка валидатора могут влиять три события - bonding, unbonding и slashing, в результате чего стейк может изменяться в сторону увеличения или уменьшения. Допустим, в результате операции unbonding валидатор может потерять значимую часть стейка и теперь его voting power будет недостаточно для того, чтобы находиться в активном сете (в терминах Autonity активный сет валидаторов называется consensus committee). Или наоборот, валидатор может получить дополнительные делегации, что увеличит его voting power.
В сети Autonity поток блоков условно разделен на эпохи - равномерные массивы, следующие друг за другом во времени и состоящие из равного количества блоков. Так вот, все изменения, которые затрагивают voting power осуществляются исключительно в конце эпохи. При этом в первую очередь подводятся итоги по изменению voting power в сети (все транзакции bonding, unbonding и slashing), а уже на основании изменившихся данных по voting power происходит пересмотр состава consensus committee.
Это нужно понимать даже простому пользователю, чтобы рутинные транзакции не вызывали дополнительных вопросов. Например если вы отправляете свои токены NTN в стейкинг, то они будут заблокированы немедленно в момент проведения транзакции, однако в стейке валидатора они появятся лишь после завершения эпохи и ровно тогда же будет выпущены токены LNTN для пользователя.
Механизм вывода средств из стейкинга выглядит несколько сложнее - помимо продолжительности эпохи появляется дополнительный параметр - unbonding period, который должен быть строго больше, чем продолжительность эпохи. Если unbonding period будет меньше, чем продолжительность эпохи, особо хитрые валидаторы и пользователи смогут этим пользоваться для ухода от наказаний за недобросовестное поведение (slashing), которые назначаются, как мы помним, в конце эпохи. Соответственно, если мы осуществляем транзакцию unbonding для вывода средств из стейкинга, на высоте блока X, то с блока X+1 начинает отсчитываться unbonding period, которы завершиться на высоте блока (X+1) + unbonding period. При этом, ликвидные токены LNTN сгорают в момент Х, отзываемая сумма токенов NTN вычитается из стейка валидатора в конце эпохи, которой принадлежит блок Х, отзываемые токены возвращаются на счет пользователя в конце эпохи, которой принадлежит блок (X+1) + unbonding period.
В случае, если валидатор был уличен в нарушении алгоритма консенсуса, его стейк подвергается слешингу. Если Autonity accountability and fault detection protocol обнаруживает нарушение на высоте X, то слешинг будет произведен в конце эпохи, которой принадлежит блок Х. При этом слешинг осуществляется по четким правилам - сначала слешится self-bonded stake и delegated stake. Как в self-bonded stake так и в delegated stake могут быть токены которые ожидают вывода из стейкинга и находятся в unbonding period. В этом случае для self-bonded stake слешатся в первую очередь токены, ожидающие анбондинга, а для delegated stake слешаться в равной степени как выводимые, так и остающиеся токены.
Понимая эти основы теперь можно с легкостью разобраться с принципами по которым происходит начисление ликвидных токенов LNTN взамен NTN, отправленных в стейкинг. Изначально соотношение для всех валидаторов 1:1, однако в дальнейшем оно может меняться в зависимости от того сколько и в каком размере на валидатора были наложены пенальти. Алгоритм изменения данного соотношения основывается на том принципе, что все ликвидные токены одного валидатора должны быть взаимозаменяемыми, а значит быть равноценными и быть обеспеченными достаточным количеством NTN в стейке валидатора.
Проиллюстрируем на примере: валидатору Х было застейкано 100 NTN, а взамен получено 100 LNTN. Далее, данный валидатор был уличен в нарушении алгоритмов консенсуса и был заслешен на 20 NTN. В результате 100 выпущенных LNTN теперь обеспечены всего 80 NTN, а значит цена LNTN относительно NTN упала, что отражается в изменении соотношения при выпуске новых монет, которое теперь составляет 1:1,25. Теперь, при стейкинге дополнительных 100 NTN, пользователь получит уже не 100, а 125 LNTN.
Наконец стоит обсудить самое главное – награды за стейкинг. Владелец ликвидных токенов конкретного валидатора иммет право получать награды за стейкинг. При трансфере ликвидных токенов другому пользователю ему так же передаются права на получение наград за стейкинг. Начисление наград за стейкинг так же привязано к длительности эпохи. В течение эпохи они накапливаются на специально выделенном Autonity protocol contract account, затем в конце эпохи включается механизм распределения, который можно условно разделить на две стадии. Не первой стадии из общего числа наград вычитается protocol treasury fee, а остаток перечисляется на аккаунты валидаторов, в соответствии с размерами их стейка. Protocol treasury fee перечисляется на Autonity treasury account. Средства с данного аккаунта в дальнейшем могут направляться на развитие экосистемы Autonity. На второй стадии каждый валидатор взимает с полученной суммы свою комиссию, а остаток распределяет между делегаторами, в соответствии с размером их долей. Награды каждого отдельного делегатора копятся в специальном “пуле”, а для их разблокировки и получения нужно проводить специальную транзакцию.
Ну вот, это все базовые знания, которые требуются чтобы подойти к стейкингу в экосистеме Autonity во всеоружии. Теперь вы можете попробовать все изученное на практике, а наш эксплорер Stakeflow обеспечит вас всей необходимой информацией.