Особенности стейкинга в Polkadot
Несмотря на то, что в основе и Cosmos Hub, и Polkadot лежит обычный Proof-of-Stake протокол, изначально команды разработчиков по-разному видели его реализацию. Поэтому в процедуре стейкинга имеются существенные отличия, которые могут не только оттолкнуть новичка, но и вогнать в уныние опытного стейкера. Как нам кажется, наша аудитория больше осведомлена о стейкинге в экосистеме Cosmos, незаслуженно обходя Polkadot и сегодня мы хотим исправить эту несправедливость. В сегодняшней статье мы хотим рассказать, чем стейкинг в Polkadot отличается от стейкинга в Cosmos Hub, тем самым избавив вас от необходимости разбираться в этом самостоятельно. Для начала давайте разберёмся с базовыми понятиями. Так же как в Cosmos Hub, в сети Polkadot имеются два типа участников: валидаторы и номинаторы. В то время как валидаторы являются активными участниками сети — оперируют нодами и участвуют в производстве блоков, номинаторы блокируют свои средства в протоколе, поддерживая своим стейком валидаторов. На этом уровне отличий практически нет.
В экосистеме Cosmos одной транзакцией можно делегировать только одному валидатору. Безусловно, некоторые делегаторы следуют лучшим практикам стейкинга и распределяют свой стейк среди двух и более валидаторов, однако не секрет, что среднестатистический стейкер доверяет все свои токены какому-то одному полюбившемуся оператору. При стейкинге в сети Polkadot номинатору сразу же предлагается выбрать список до 16 валидаторов, которых он готов поддержать своими токенами. Это делается не только и не столько для удобства диверсификации стейкинга. Это связано с механизмом формирования сета активных валидаторов в целом.
Как мы помним, в сетях на основе Comet BFT состав активного сета довольно статичен — валидаторы располагаются в нём в порядке убывания их общего стейка. Новый валидатор может попасть туда только, если наберёт достаточно токенов, чтобы сместить одного из действующих участников с занимаемой позиции, или если размер активного сета будет вдруг расширен на уровне протокола. В Polkadot состав активного сета пересматривается каждую эру (по сути, «эра» — это то же самое, что и более привычный термин «эпоха») сложным образом. На самом деле, алгоритм выбора валидаторов для активного сета является краеугольным камнем концепции децентрализации в Polkadot. В основе данной процедуры лежит алгоритм распределения мест в парламенте Phragmén, изначально разработанный для пропорционального распределения депутатов после выборов, при этом не допуская образования устойчивого большинства и обеспечивая должную репрезентацию меньшинств. Этот алгоритм был преобразован для блокчейна с целью максимизировать общий размер стейка, максимизировать стейк для валидатора с минимальным стейком и минимизировать разброс стейков в сете. Звучит довольно сложно, но главное следствие из этого набора правил то, что даже наличие самого большого стейка не гарантирует валидатору попадание в активный сет со 100% вероятностью каждую эру подряд. Поэтому выбор более чем одного валидатора при номинировании несет практический смысл и уменьшает вероятность того, что ваш стейк будет «выпадать» из стейкинга, а вы, следовательно, не будете получать награды. Другими словами, если вы доверите свой стейк только одному валидатору, а он не будет выбран для участия в активном сете, то эра для вас проходит впустую.
С выбором нескольких валидаторов связана ещё одна особенность — если вы выбираете список из нескольких валидаторов, ваш стейк не делится между ними. Каждую эпоху ваш стейк будет делегироваться в полном объёме одному из валидаторов, выбранных вами, следовательно, награды будут начисляться на весь размер стейка. Даже если несколько валидаторов из вашего списка были выбраны в активный сет в данной эпохе, алгоритм Phragmén делегирует ваш стейк какому-то одному с целью достижения критериев, описанных выше. Стоит отметить, что если вы стейкаете количество токенов, значительно превышающее средний размер стейка, то в этом случае сумма может всё же дробиться между несколькими валидаторами, однако подавляющее большинство пользователей с этим не сталкивается.
Ещё одним интересным решением, призванным повысить децентрализацию блокчейна, является то, что размер наград, получаемых валидаторами в течение эры, не зависит от размера их общего стейка. В начале каждой эры уже известно расписание, в какие временные слоты каждый конкретный валидатор занимается созданием блоков, а в какие — просто проверкой их валидности. Поскольку эра имеет фиксированную продолжительность, если измерять её в количестве блоков, а активный сет — фиксированное число участников, то эти временные слоты можно распределить поровну. Таким образом, раз все валидаторы выполняют одинаковое количество работы по конструированию и проверке блоков, то сеть, в свою очередь, вознаграждает их одинаковым количеством токенов, вне зависимости от того, каким общим стейком обладает тот или иной валидатор.
Интересным следствием из этого является то, что при таком подходе гораздо выгоднее номинировать токены валидаторам с меньшим стейком. Разберём это на простом примере: есть два валидатора — А и Б. Размер стейка валидатора А — 1000 DOT, а валидатора Б — 100 DOT. Допустим, вы стейкаете по 10 DOT каждому валидатору. Пусть оба валидатора попадают в активный сет и в конце получают равную награду в 50 DOT. Для удобства дальнейших расчётов примем, что комиссия у обоих валидаторов 0%, соответственно, полученные награды будут далее распределяться между номинаторами пропорционально доле каждого. В случае валидатора А ваша доля составляет примерно 1%, и вы получите чуть меньше 0,5 DOT, в то же время в стейке валидатора Б ваша делегация составляет около 9%, следовательно, награда составит 4,5 DOT. С помощью такого очевидного стимула разработчики мотивируют делегировать «маленьким» валидаторам и хотят добиться в долгосрочной перспективе примерно одинакового размера стейка среди всех валидаторов, активно участвующих в сети.
Однако, как и в любом другом блокчейне, выбор валидатора — это ответственная процедура, и потенциально большие награды не должны быть единственным определяющим фактором. Как всегда, нужно рассматривать комплекс факторов, например, такие, как известность, размер селф-стейка, размер комиссии. Что касается последнего, в Cosmos Hub некоторое время назад было запрещено устанавливать комиссию менее 5% на уровне протокола, чтобы гарантированно обеспечить всех валидаторов средствами на операционные расходы, а также сузить пространство для нездоровой конкуренции. В Polkadot на данный момент такого ограничения нет, однако разработчики в своих гайдах предостерегают от номинирования валидаторам с комиссией 0%, а также верят, что в долгосрочной перспективе, вследствие конкуренции и внутренней оптимизации, в сети установится некоторый усреднённый размер комиссии, однако валидаторы с хорошей репутацией будут взимать на пару процентов больше, что, по мнению разработчиков, абсолютно оправдано.
Безусловно, по сравнению с Cosmos Hub, где фактически отсутствует минимальный размер стейка, требование Polkadot к наличию хотя бы 250 DOT для того, чтобы система хотя бы начала рассматривать вас как потенциального номинатора, выглядит отпугивающе. Размер же минимального номинирования, с которого возможно получение наград, — динамический показатель и на момент написания статьи составляет более 500 DOT, что делает ситуацию ещё менее радужной. Возможно, когда-то давно именно это оттолкнуло вас от стейкинга в Polkadot, однако в настоящее время на уровне протокола уже довольно продолжительное время существует и успешно функционирует инструмент, позволяющий преодолеть этот высокий входной барьер. Стейкинг-пулы работают как агрегаторы, аккумулирующие делегирования от людей, которые не могут позволить себе быть полноценными номинаторами. По достижении требуемого количества токенов на балансе, стейкинг-пул начинает выступать как номинатор, получая награды за стейкинг, однако в дальнейшем распределяя их пропорционально среди своих участников, взимая небольшую сервисную комиссию. Получается, участвовать в стейкинг-пуле чуть менее выгодно, чем быть индивидуальным номинатором, поскольку вы будете платить комиссию дважды — со стороны валидатора и со стороны сервиса, однако это лучше, чем не участвовать в стейкинге вообще.
На этом всё, что мы хотели рассказать вам в этот раз. Если вас заинтересовала тема, рекомендуем обратиться к официальной документации Polkadot. Это один из редких случаев, когда документация проекта написана качественно и интересно. Если у вас возникнут вопросы, не стесняйтесь писать нам в чат — мы всегда рады помочь!