January 31

Что такое слэшинг и как уменьшить риск потери токенов

Введение

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

Слэшинг: определение и причины

Что же такое слэшинг? Согласно формальному определению, слэшинг — это ”наказание любого нарушения, совершенного признанным на уровне протокола действующим лицом путем сжигания части его стейка или лишения возможности голосовать за будущие блоки на определённое время” Согласимся, не очень понятно с первого взгляда, поэтому давайте разбираться по порядку.

Согласно первой части определения, слэшингу может подвергнуться только “признанное на уровне протокола действующее лицо”, и сразу возникает вопрос — кто именно подпадает под это определение? В нашем случае таким действующим лицом является валидатор, потому что именно валидатор формирует окончательный вид нового блока и встраивает его в блокчейн с одобрения других валидаторов. Важно понимать, что простой пользователь не является в контексте данного определения действующим лицом, потому что он не вносит изменения в блокчейн напрямую. Даже если вы совершаете транзакцию перевода токенов или снимаете свои награды за стейкинг, изначально вы отправляете только “черновик” транзакции, а вступает она в силу только тогда, когда валидатор собрал все ожидающие транзакции в блок и встроил его в блокчейн. Отсюда можно сделать первый вывод — слэшинг не угрожает простым пользователям напрямую.

Как слэшинг затрагивает делегаторов

Однако не стоит расслабляться, потому что слэшинг угрожает вам опосредованно. Как мы помним, в создании новых блоков в блокчейне участвуют не все валидаторы, а ограниченный сет, как правило, 100-200 нод с максимальным стейком. Поэтому, делегируя свои токены валидатору, вы не только обретаете возможность зарабатывать награды, но и увеличиваете его общий стейк, тем самым одновременно продвигая его вверх в активном сете и показывая протоколу и другим пользователям, что вы этому валидатору доверяете и голосуете своими токенами за то, чтобы он принимал участие в строительстве блоков. Согласно второй части определения, наказание валидатора происходит либо за счёт сжигания части его стейка (slashing), либо за счёт лишения его возможности создавать и подписывать блоки на протяжении некоторого времени (jailing). Поскольку стейк валидатора полностью или частично состоит из стейка его делегаторов, соответственно все делегаторы лишаются части своих токенов. В случае же jailing делегаторы лишаются не части своего стейка, а потенциально возможных наград, которые могли бы быть получены в период неактивности валидатора.

Виды нарушений

Теперь давайте рассмотрим виды нарушений, которые может совершить валидатор, и какие могут быть возможные последствия этих нарушений для него и его делегатов. Возможные нарушения можно разделить на две группы: нарушения функционирования (liveness violations) и нарушения консенсуса (consensus violations). В первом случае валидатор совершает действия (например, отключается по какой-либо причине и не подписывает блоки), которые теоретически могут помешать созданию новых блоков или замедлить работу блокчейна, но не нарушают данных транзакций или механизма консенсуса. Этот тип нарушения может быть сразу же обнаружен протоколом, и виновный валидатор попадает в бан на определенный период (jailing period), в течение которого он гарантированно не сможет допустить новое нарушение. Кроме того, его стейк подвергается частичному сжиганию (slashing). По истечении jailing period валидатор спокойно может вернуться в активный сет (если у него осталось достаточно токенов) и продолжить свою работу. Делегаторы, в свою очередь, могут решить, хотят ли они оставаться с этим валидатором или же более разумным решением будет переделегировать токены более надежному.

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

Стратегии избегания слэшинга

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

1. Изучайте официальную документацию

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

Зависимость доли сжишаемых токенов от размера стейка в сети Namada

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

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

2. Пользуйтесь удобными инструментами мониторинга

Во-вторых, помимо изучения документации, очень полезно использовать простые и удобные инструменты для изучения валидаторов. Например, хорошее решение для того, чтобы стимулировать ответственность валидаторов и увеличить осознанность пользователей существует в сети Cosmos Hub, где у каждого валидатора есть параметр “Validator Bond”, который отражает, сколько своих личных токенов команда валидатора делегировала в свой же валидатор, тем самым показывая, что им есть что терять и демонстрируя мотивацию работать честно и надёжно. Однако ни официальная документация, ни интерфейс кошельков не позволяют увидеть данную метрику. В таком случае можно воспользоваться блок-эксплорером, например, нашим эксплорером Stakeflow — в нём эти данные отображены в удобном формате, позволяют явно сравнить размер общего стейка валидатора и размер Validator Bond и решить, какие валидаторы в большей степени достойны доверия, а какие — в меньшей.

Показатели Validator Bond и Total stake в сети Cosmos Hub

3. Выявляйте параметры, важные в контексте слышинга

Ещё одним хорошим примером защиты интересов делегаторов является архитектура слэшинга в сети Autonity, где общий стейк каждого валидатора формируется из двух частей — self-bonded stake и delegated stake. Delegated stake — это те средства, которые доверили валидатору обычные пользователи сети, а self-bonded stake — это то, что валидатор делегировал в себя сам. Эти части не являются равнозначными и равноценными. Во-первых, при выявлении факта нарушения валидатором алгоритма консенсуса в первую очередь слэшингу подвергается self-bonded stake, а уже в случае, если его размера не хватает, чтобы покрыть размер штрафа, тогда затрагивается delegated stake. По задумке разработчиков данная мера должна повысить ответственность валидаторов и уменьшить риски для рядовых пользователей. Хотя нигде пока что не установлены минимальные требования для self-bonded stake, его размер может свидетельствовать об ответственности валидатора и являться дополнительным критерием при выборе валидатора для стейкинга. Ознакомиться с размером self-bonded stake, а также узнать, на сколько процентов он покрывает размер возможного слэша, вы также можете в нашем эксплорере Stakeflow.

Связанные со слэшингом метрики в сети Autonity

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

На этом мы заканчиваем сегодняшний материал и желаем вам удачи. Выбирайте проекты и валидаторов с умом — это позволит вам максимизировать ваши награды за стейкинг.


Ресурсы Stakeflow: