Как работают штрафы и вознаграждения в сети Эфириума на базе Proof of Stake — подробное руководство

By | 25 ноября, 2021

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


Напомним, переход Эфириума на алгоритм консенсуса Proof-of-Stake начался первого декабря 2020 года. Именно тогда разработчики запустили отдельную цепочку под названием Beacon Chain. В итоге нынешняя PoW-сеть объединится с названной цепочкой ориентировочно в третьем квартале 2022 года, после чего майнить ETH на видеокартах уже не получится. Подробнее о теме читайте в отдельном материале.

Статья ниже — адаптация/перевод материала биржи BitMEX на тему системы Proof-of-Stake для Эфириума. В ней разобраны ключевые понятия происходящего в новом блокчейне, наказания и прочие важные детали. Некоторые реплики приведены от первого лица.

Введение

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

Эта статья – первая часть из серии статей об алгоритме Proof of Stake, которую представители BitMEX начали после того, как решили запустить валидатор 31 августа 2021 года. Напомним, что цепочка блоков Ethereum 2.0 Beacon Chain уже работает параллельно с оригинальной цепочкой Ethereum 1.0. Цепочка блоков Beacon Chain находится на стадии Proof of Concept, то есть «доказательство концепции». Разработчики планируют интегрировать две цепочки перед отключением старой системы Proof of Work (PoW).

Вознаграждения в сети Эфириум 2.0

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

Таблица c видами вознаграждений

Вознаграждение за предложение блока

31 августа 2021 года валидатор BitMEX Research произвел свой первый блок в слоте 1 964 794. Каждому валидатору случайным образом присваивается слот, в котором он может произвести блок, причем предполагается, что это будет происходить примерно раз в месяц. Спустя две эпохи после создания нашего блока — когда слот финализировали — валидатор получил вознаграждение, которое составило примерно 0.0052 ETH. Награду за создание блока можно считать основной наградой в PoS-системе, поэтому начнем с нее.

Этот вид вознаграждения нефиксированный. Награда зависит от нескольких факторов: общего объёма ETH в стейках сети и количества валидаторов в онлайне.

Сперва нужно рассчитать часть уравнения под названием «базовое вознаграждение». Это постоянная величина в сети: она остается неизменной в любой момент времени. Базовое вознаграждение рассчитывается по этой формуле.

Базовое вознаграждение

Значения «64» и «4» задаются протоколом, и называются BASE_REWARD_FACTOR («множитель базового вознаграждения») и BASE_REWARDS_PER_EPOCH («базовые вознаграждения за эпоху») соответственно. Можно было бы заменить эти цифры на «16» в формуле путем деления 64 на 4, но мы намеренно оставляем их, потому что эти значения повсеместно используются в протоколе.

Сейчас общий активный баланс в стейках сети (Total active balance staked) составляет 7.1 миллиона ETH [актуальный показатель равен 8.7 миллиона эфиров — примечание редактора]. Фактический баланс (Average effective balance) – это средний баланс каждого валидатора. Как правило среднее значение составляет 32 ETH. Оно не может превышать 32 ETH, поскольку это текущий максимум, но и значительно ниже 32 ETH оно быть не может, поскольку 32 ETH – минимальный начальный депозит для стейка.

Однако средний фактический баланс может быть меньше 32 ETH, если некоторые валидаторы получили штраф или подверглись слэшингу, то есть сокращению объёма депозита за нарушение, и штраф превысил вознаграждение. Для простоты расчетов мы будем считать, что средний депозит составляет 32 ETH.

Подставляем упомянутые выше значения в формулу и получаем базовое вознаграждение.

Расчёт базового вознаграждения

Теперь мы знаем базовое вознаграждение и можем посчитать вознаграждение, которое должен получить каждый, кто предложил блок, с помощью следующей формулы. Значение «8» в формуле – это еще одна постоянная величина в протоколе, она называется PROPOSER_REWARD_QUOTIENT («знаменатель вознаграждения за предложение блока»). Количество аттестаторов (Number of attestors) – это количество аттестаций валидаторов в предлагаемом блоке, поэтому производители блоков заинтересованы включать голоса в свои блоки. Другими словами, те, кто предлагают блоки, получают долю вознаграждения за все аттестации в своем произведенном блоке. При 100-процентной явке эта величина составит 1 из 32 всех валидаторов, голосующих за каждый блок.

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

Получаем 0.0053 ETH, что почти совпадает с наградой из реальной сети, которая составила 0,0052 ETH. Например, на следующем скриншоте видно, что валидатор предложил блок и через две эпохи он получил 0.005 ETH.

Вознаграждение за предложение блока

Разбор формулы

Чтобы стало понятнее, давайте еще раз пройдемся по формулам. Для расчета вознаграждения каждого создателя блока за предложение мы объединили две упомянутые выше формулы.

В большинстве случаев количество аттестаторов увеличивается по мере роста общего активного баланса в стейках сети, поэтому эти две величины так или иначе обнуляют друг друга. Однако в нашей формуле не просто общий активный баланс, а его квадратный корень. Значит, по мере все большего поступления эфира в цепочку блоков Beacon Chain и его участия в валидации, награда создателя блока будет расти, но медленнее. Количество создателей блоков не может быть больше 32 в рамках одной эпохи, поэтому это вознаграждение может увеличиться по мере роста общего объема стейка, без риска создания слишком большого количества эфира. Этим данный вид вознаграждения отличается от других.

К примеру, вознаграждение аттестатора уменьшается по мере роста общего объема стейка. Но об этом мы поговорим чуть позже. За счет этого достигается одна из целей цепочки блоков Beacon Chain: удержать инфляцию примерно пропорциональной квадратному корню количества эфира в стейках.

Вознаграждения аттестаторов

Теперь давайте рассмотрим вознаграждения аттестаторов. Аттестация – это процесс голосования за предложения создателей блоков.

Аттестация включает в себя следующие компоненты:

  1. хеш блока, за который голосуют;
  2. высоту блока, за который голосуют (крайний блок на момент голосования);
  3. исходный блок – обычно это хеш первого блока предыдущей эпохи;
  4. целевой блок – обычно это хеш первого блока текущей эпохи.

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

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

Теперь мы можем посчитать по формуле выше, сколько получает один аттестатор. Подставляем рассчитанное ранее базовое вознаграждение 6 064 Gwei и при 100-процентной явке аттестаторов получаем 23 498 Gwei. Это эквивалент 0,00002 ETH, что совпадает с данными из реальной сети. Каждый валидатор получает в 225 раз меньше за аттестацию, чем за предложение блока. В то же время суммарное вознаграждение за аттестацию обычно в 32 раза больше суммарного вознаграждения за предложение блока.

На скриншоте ниже пример правильной аттестации. Валидатор BitMEX Research аттестовал предыдущий блок 1 972 824 в слоте 1 972 825 и получил 22 469 Gwei за образцовую аттестацию, что примерно совпадает с рассчитанным выше значением.

Правильная аттестация

Эту аттестацию также можно увидеть на beaconcha.in, скриншот ниже.

Пример правильной аттестации

Как мы уже отмечали (и как показано на скриншоте с примером правильной аттестации), оценка аттестации и расчет вознаграждения происходит по трем критериям:

  • голосование за правильный исходный блок;
  • голосование за правильный целевой блок;
  • голосование за правильный верхний блок (крайний в цепочке).

Например, на скриншоте ниже два критерия из трех ошибочные. Валидатор BitMEX Research аттестовал предыдущий блок под номером 1 972 768 на высоте блока 1 972 769. Однако два критерия из трех не были выполнены, и валидатор получил два штрафа и одно вознаграждение. В итоге с валидатора взыскали 813 Gwei чистыми.

Частично неправильная аттестация

Эту аттестацию также можно увидеть на beaconcha.in, скриншот ниже.

Пример частично неправильной аттестации

При анализе аттестации можно заметить следующее:

  • За исходный блок проголосовали правильно. Хеш первого блока в предыдущей эпохе, блок 1 972 736 при эпохе 61 648, заканчивается на bfab. Это видно на скриншоте выше.
  • Целевой блок аттестовали неправильно. Хеш целевого блока заканчивается на 6e26, и это был последний блок при эпохе 61 648, но вместо него должен был быть первый блок при эпохе 61 649.
  • Валидатор BitMEX Research проголосовал за хеш блока, который заканчивается на 6e26, как за верхний блок (высота блока 1 972 768), а на самом деле это был хеш предыдущего блока (высота блока 1 972 767).

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

Вознаграждение для ускорения голосования

В сети также предусмотрено дополнительное вознаграждение, которое составляет не более 7/8 базового вознаграждения. Его добавили специально для того, чтобы ускорить голосование, поэтому чем больше задержка голосования, тем меньше награда. Если аттестация попадает в следующий слот, валидатор получает всю награду, то есть 7/8 базового вознаграждения. Чем больше задержка голосования за каждый блок, тем меньше за него награда. Например, если опоздать с аттестацией на два блока, награда сокращается вдвое, если опоздать на три блока, она сокращается втрое и так далее.

Нода BitMEX Research всегда голосовала вовремя и не выходила за рамки следующего слота. Однако у нас есть несколько примеров того, как другие валидаторы голосовали с опозданием. Один из них – валидатор под номером 38 570. На скриншоте ниже видно, что аттестацию блока 2 018 822 добавили в блок 2 018 826, то есть на три блока позже. В итоге из-за задержки суммарное вознаграждение составило 18 990 Gwei вместо стандартных 22 000 Gwei.

Аттестации с задержкой

Суммарное вознаграждение и выпуск монет

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

Ежегодный выпуск монет Ethereum под стейкинг (при идеальных условиях работы сети)

Все перечисленные выше вознаграждения в сумме составляют максимальное количество эфира, выпускаемое в год под систему PoS, о чем Виталик Бутерин рассказал в его комментарии на GitHub в апреле 2019 года. На графике выше мы распределили инфляцию Эфириума между тремя видами вознаграждений. Не забываем, что в сети есть также штрафы и слэшинг, из-за чего выпуск монет Эфириума может уменьшиться. На общее количество монет могут влиять и другие факторы, например, неактивность. Поэтому упомянутое выше количество монет следует рассматривать как максимально возможное для выпуска.

Напомним, что на новую инфляцию Эфириума в основном влияют три вещи:

  • выпуск монет под систему PoW в сети Ethereum 1.0, что приведет к новому выпуску монет;
  • сжигание монет в сети Ethereum 1.0 в результате обновления EIP-1599 и как результат сокращение количества монет в обращении (так называемый «обратный выкуп»);
  • вознаграждения и штрафы в PoS-системе сети Ethereum 2.0, что приведет к новому выпуску монет.

В ближайшие годы описанная выше система значительно изменится. Эфириум больше не планирует выпускать монеты под систему PoW. Новый выпуск монет Эфириума скорее всего пройдет в сильно сокращенном формате, а объем сжигаемых комиссий будет больше, чем вознаграждения за стейкинг. Если комиссии продолжат пользоваться большим спросом, после нововведения велика вероятность сокращения количества монет. Если рассматривать Эфириум как деньги, нас ждет дефляция, если рассматривать как акции – сокращение количества акций.

Штрафы в сети Эфириум 2.0

Штрафы за неактивность и неправильную аттестацию

Существует два вида штрафов:

  1. За неправильную аттестацию – это может произойти по одной из трех причин, описанных выше в разделе о голосовании аттестаторов.
  2. За неактивность валидатора. Штраф за пропуск аттестации и неправильную аттестацию одинаковый: он равен трем базовым вознаграждениям. Такой же штраф назначается за полностью неправильную аттестацию (при условии, что не было слэшинга).

Чтобы протестировать штрафы за неактивность, мы специально отключили наш валидатор на одну эпоху. Валидатор BitMEX Research намеренно пропустил аттестацию в эпохе 63 657. На скриншоте видно, что мы получили штраф 17 841 Gwei за нарушение. Это стандартный штраф за неправильную аттестацию по всем трем критериям (то есть три базовых вознаграждения).

Штраф за неактивность

На уровне сети тоже есть штрафы за неактивность. Если в рамках четырех эпох никто в сети не финализирует блок, каждый валидатор получает штраф.

Слэшинг в Ethereum 2.0

В отличие от штрафов, слэшинг (от англ. slashing – «сокращение») применяется в случае более серьезных нарушений, поэтому и наказание более серьезное. Правила слэшинга в стейкинге разные для создателей блоков и аттестаторов.

Правило для создателей блоков простое: создатель блока будет наказан за предложение двух разных конфликтующих блоков в одном и том же слоте. Пример ниже.

Пример слэшинга создателя блока за создание двух блоков в одном слоте

На скриншоте выше видно, что создатель блока предложил два конфликтующих верхних блока для слота 476 903. Причина ошибки неизвестна. Это могли быть хакеры, ошибка системы или сбой компьютера и его перезагрузка в неудачный момент.

С правилами слэшинга в отношении голосования аттестаторов посложнее. В этом случае слэшинг может применяться в двух случаях: за «двойное» голосование (Double voting) или за «окружное» голосование (Surround voting).

Под двойным голосованием понимается внесение любого другого голоса в рамках одной целевой эпохи, как в формуле ниже.

data_1 != data_2 and data_1.target.epoch == data_2.target.epoch

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

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

Правила слэшинга за окружное голосование следующие. Вкратце, валидатора наказывают за попытку внести голос, который «окружает» или уже «окружен» предыдущим голосом, то есть он пытается проголосовать против правильной истории блоков. Мы не нашли пример такого нарушения в цепочке Beacon, и насколько нам известно, оно в принципе ни разу не было зафиксировано.

Наказание за слэшинг

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

  1. Удаление из группы валидаторов. Этот процесс может занять до 36 дней. После удаления валидатор переходит в офлайн, а баланс остается на счету, но с ним ничего нельзя сделать, и никакие вознаграждения принимать тоже нельзя. По мере развития сети Ethereum 2.0 возможно будет шанс вернуть доступ к средствам.
  2. Самый первый штраф, равный 1/128 фактического баланса, что обычно составляет 0.25 ETH. Этот штраф назначается сразу после обнаружения нарушения.
  3. Повторяющийся штраф за каждую эпоху, равный трем базовым вознаграждениям. Сумма такая же, как и в случае проведения правильной аттестации, но в данном случае это штраф, а не вознаграждение, то есть сумма получается такая же, как в случае штрафа за неактивность. Валидатор продолжает платить этот штраф до тех пор, пока его не удалят из группы валидаторов.
  4. Специальный штраф – суровость этого наказания зависит от числа валидаторов, которые совершили наказуемые слэшингом нарушения в рамках одной и той же эпохи. Чем больше валидаторов подвергаются слэшингу, тем суровее наказание каждого отдельного валидатора. Это способствует децентрализации, поскольку чем больше валидаторов нарушили правила, тем больше будет штраф. Следовательно шансов получить штраф меньше, когда валидаторы работают на разных устройствах или в разных компьютерных сетях.

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

Штрафы валидатора, подвергшегося слэшингу

Вознаграждения за сообщение о нарушении

Если создатель блока добавляет в блок специальную аттестацию, которая доказывает, что другой валидатор совершил правонарушение, особенно если другой валидатор совершил нарушение, наказуемое слэшингом, создатель блока получает специальное вознаграждение. Оно называется вознаграждением за сообщение о нарушении (от англ. whistleblower – человек, сообщающий о правонарушениях) и равен фактическому балансу нарушителя, делённому на 512. Обычно награда составляет 0.06 ETH. Вознаграждение не стимулирует инфляцию, поскольку штраф за нарушение вряд ли будет меньше, чем 0.25 ETH. Следовательно слэшинг приводит к дефляции и сокращению количества монет.

На графике ниже показан суточный доход валидатора, недавно награжденного за сообщение о нарушении. Когда валидатор создал блок, его прибыль взлетела выше 0.07 ETH за счет награды за сообщение о нарушении.

Вознаграждение за сообщение о нарушении

Вывод

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

За прошедшие годы вышло много версий PoS-системы, и большинство из них были слабыми и с серьезными недостатками. С опытом разработчикам удается делать каждую версию лучше предыдущей. Это в корне отличается от подхода Накамото к запуску Биткоина. Особенность системы консенсуса Биткоина в ее простоте: систему ни разу не изменяли. Можно сказать, что замысел был в том, чтобы система была сразу окончательной и неизменной. С другой стороны, большинство сторонников PoS совсем не заинтересованы в идеальной системе «на века»: их целью является создание сильной базы, которую можно бесконечно совершенствовать.

Разработчики планируют изменить некоторые постоянные и переменные значения в описанных выше формулах вознаграждений и штрафов. К примеру, они планируют разделить вознаграждение за сообщение о нарушении таким образом, чтобы 7/8 награды получал аттестатор, который обнаружил нарушение, а 1/8 – создатель блока, который добавил соответствующую аттестацию в блок. Сейчас всю награду (8/8) получает создатель блока.

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

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

ПОДПИСЫВАЙТЕСЬ НА НАШ КАНАЛ В ТЕЛЕГРАМЕ, ЧТОБЫ БЫТЬ В КУРСЕ.

2Bitcoins.ru
Автор: Григорий Поперечный

Поделиться ссылкой

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *