rETH решения StaFi для слэшинга ETH

Boban Vorobey
Stafi Russia
Published in
8 min readDec 22, 2020

Описание

Когда дело доходит до слэшинга, у ETH 2.0 есть жесткие правила — валидатор может получить слэш размером до 16 ETH со своего баланса. В крайних случаях может быть конфискована вся основная сумма стейкинга валидатора. Эта ситуация представляет собой серьезную проблему для разработки rETH с точки зрения валидатора. Если валидатор не вносит депозит, он/она может чувствовать себя свободным действовать “нечестно”, но если депозит будет слишком большим, это повредит желанию участвовать в экосистеме rETH.

В этой статье мы обсудим следующие вопросы:

1) Правила слэшинга для ETH 2.0

2) Вероятность слэшинга в ETH 2.0

3) Размер штрафов за слэшинг в большинстве случаев

4) Как rETH решает проблему слэшинга ETH2.0

Правила слэшинга для ETH 2.0

Как мы знаем, в механизме стейкинга ETH2.0 есть два типа наказаний. Один — штраф, другой — слэшинг:

1) Штраф возникает, когда узел не может проверить блок из-за отключения. Штраф относительно небольшой и не будет вычитаться из основной суммы платежа.

2) Слэшинг происходит, когда узел выполняет одно из трех злонамеренных действий — двойное голосование (подтверждение двух конфликтующих блоков), двойное предложение (предложение двух конфликтующих блоков) и объемное голосование (валидатор пытается проголосовать против правильной истории блоков). Наказание относительно тяжелое. Когда валидатор попадает в слэшинг, активы будут выведены напрямую, а минимальный штраф составляет 1 ETH. В крайних случаях основная сумма в 32 ETH, депонированная валидатором, может быть уменьшена вдвое.

Механизм слэшинга в ETH2.0 предназначен для повышения безопасности сети. StaFi также должна принимать во внимание слэшинг при разработке решений rETH. Разумный механизм, обеспечивающий иммунитет пользователя, имеет первостепенное значение. Это связано с тем, что средства пользователя депонируются в пул средств через контракт StaFi, а затем отправляются в контракт пула валидатора по алгоритму контракта. В течение всего процесса пользователь делегирует StaFi выбор валидаторов, что отличается от традиционного режима делегирования стейкера.

Депозит валидатора

В решении rETH каждый раз, когда оригинальный валидатор ETH2.0 запускает узел, требуется определенная сумма депозита. Этот депозит будет размещен в депозитном контракте ETH1.0 вместе со средствами участников. Когда валидатор попадает в слэшинг, депозит будет вычтен, чтобы гарантировать, что средства пользователя не будут вычтены за ненадлежащее поведение валидатора.

В мире ETH2.0 максимальное наказание за слэшинг составляет 16 ETH, если одновременно попадет в слэшинг не более ⅓ валидаторов. Таким образом, теоретический депозит валидатора требуемый StaFi, будет составлять 16 ETH в нормальных ситуациях.

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

Прежде чем ответить на этот вопрос, мы должны сначала подумать о следующих двух проблемах:

1) Вероятность слэшинга

2) Максимальный размер штрафа за слэшинг

Если вероятность появления слэшинга чрезвычайно мала, и штраф также невелик (скажем, в диапазоне от 3 до 5 ETH), то можно меньше беспокоиться и уменьшить депозит валидатора.

Обсудим эти два вопроса отдельно.

Вероятность слэшинга

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

Давайте посмотрим на реальный мир узлов сети ETH2.0. ETH 2.0 доступен с 1 декабря 2020 года. По состоянию на 9 декабря 21:40 UTC + 8 общее количество валидаторов достигло 38 933, а количество действующих валидаторов — 27 837.

По данным Etherscan, были в слэшинге 14 валидаторов, что составляет 0,04% от общего числа валидаторов и 0,05% от общего числа активных валидаторов.

Как показано в этой таблице:

В заключение, от 4 до 5 валидаторов из 10 000 валидаторов попадут в слэшинг. 10 000 валидаторов вносят 320000 ETH, поэтому максимальная сумма штрафа за слэшинг составляет от 64 до 80 ETH, если предположить, что максимальный списание с баланса валидатора составляет 16 ETH.

Мы, конечно, должны учитывать временной период работы ETH2.0. Поскольку ETH2.0 работает всего 9 дней, вероятность слэшинга еще не стабильна. Итак, возьмем Tezos в качестве другого примера, который работает более 2 лет. На данный момент количество валидаторов составляет 478, и в общей сложности 21 из них попали в слэшинг в течение более двух лет. Это составляет 4,4% от общего количества валидаторов.

Не считая разницы в дизайне алгоритмов консенсуса между Tezos и ETH 2.0, совокупная вероятность слэшинга в Tezos составляет 4,4% в течение более 2 лет. Это означает, что 2,2% узлов будут попадать в слэшинг каждый год, если мы воспользуемся простой математикой. Но мы знаем, что количество валидаторов ETH2.0 намного больше, чем у Tezos, а правила ETH2.0 слэшинга более жесткие. Таким образом, вероятность ETH 2.0 слэшинга должна быть ниже, чем у Tezos.

Поэтому необоснованно требовать от оригинальных валидаторов внесения депозита в размере 16 ETH за каждый запущенный узел. Валидаторы должны оплатить 100% «теоретической» максимальной экономической стоимости события, которое действительно произошло с вероятностью от 0,04% до 2,2%.

Однако мы не должны освобождать депозит валидатора из-за низкой вероятности слэшинга. Основные причины следующие:

1) Количество валидаторов, которые попали в слэшинг, невелико, потому что они выплатили всю основную сумму. Если они не выплатят основную сумму, вероятность может возрасти.

2) Как только валидатор попадет в слэшинг, то он будет вынужден уйти с 36-дневным периодом наказания и периодом вывода. В течение этого периода баланс валидатора будет списываться каждый день, поэтому основной капитал пользователей также может быть уменьшен.

Максимальный размер штрафа за слэшинг

Теперь давайте посмотрим на фактическую сумму штрафов за слэшинг. Из того же источника данных, что и выше, мы понимаем, что баланс узлов попавших в слэшинг меньше 32 ETH. Кроме того, узел №20075 понес самый большой штраф в размере 0,31806 ETH от своего депозита среди всех 14 узлов попавших в слэшинг. Мы видим, что штраф не такой серьезный, как мы себе представляем, значительно ниже 16ETH.

Примечание:

1) Контрольный показатель времени слэшинга: 9 декабря 2020 г., 21:40 UTC + 8.

2) Приведенные выше данные получены от Etherscan.

Мы должны признать, что у этих валидаторов попавших в слэшинг есть 36-дневный период слэшинга, в течение которого они будут оштрафованы. Согласно правил слэшинга ETH2.0, мы можем примерно рассчитать размер штрафов за слэшинг валидатора по окончании периода.

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

Источник: ConsenSys Codefi Analysis.

Штраф в первой части происходит при обработке слэшинга и определяется эффективным балансом валидатора, который в большинстве случаев составляет 32ETH. Таким образом, первоначальный штраф обычно составляет 1ETH в соответствии с документом о механизме обрезки ETH2.0.

Во второй части, в течение 8192 эпох, в каждую эпоху будет слэшинг (6,4 минуты), а штраф в 3 раза превышает базовую награду за каждую эпоху. Базовая формула расчета вознаграждения:

  • BASE_REWARD_FACTOR — константа 64;
  • BASE_REWARDS_PER_EPOCH — константа 4;

Таким образом, самым большим определяющим фактором для базовых вознаграждений является значение активного баланса в сети, а значение активного баланса увеличивается с количеством работающих узлов. Текущее количество узлов Active Balance — 27 837. Предполагая, что эффективный баланс каждого узла равен 32ETH, базовое вознаграждение будет составлять 12 211,73 GWEI согласно данным Consensys .

Предположим, что количество активных узлов в будущем не увеличится (что очевидно невозможно), а общий штраф за 36 дней (8192Epoch) составляет примерно 8192 * 12211,73 * 3 / 1⁰⁹ = 0,30ETH.

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

Третья часть штрафа, особый штраф, может быть рассчитана по следующей формуле:

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

1) Если более одной трети узлов одновременно действуют злонамеренно, то согласно формуле расчета специальный штраф будет равен эффективному балансу узла, что означает, что узел будет прямо оштрафован.

2) Если коэффициент слэшинга составляет от 0,04% до 0,05%, как мы рассчитали выше, специальный штраф составляет от 0,12% до 0,15% от эффективного баланса узла, который составляет от 0,0384 до 0,048ETH.

В двух словах:

1) Первая часть штрафа в основном составляет 1 ETH, который снижается при фактическом использовании ETH2.0.

2) Вторая часть составляет примерно 0,3 ETH, если количество активных узлов останется 27 837 (невозможно, поскольку в будущем их количество будет расти).

3) Третья часть составляет примерно 0,0384 ~ 0,048ETH, если коэффициент слэшинга составляет от 0,04% до 0,05%.

Таким образом, в настоящее время штраф за слэшинг для узла составляет от 1,3384 до 1,348 ETH.

Заключение

В ходе нашего исследования мы обнаружили, что неразумно требовать от каждого узла внесения депозита в размере 16 ETH, когда вероятность появления слэша составляет около 0,04%, а убыток обычно составляет менее 1,4 ETH. Что касается правильной суммы депозита, мы можем рассчитать следующий диапазон:

1) Должен быть выше 1,5ETH

2) Должно быть ниже 16ETH

Хотя теоретически для нас разумно потребовать от каждого узла внести депозит в размере 2ETH, все же существуют следующие неопределенные факторы, которые приведут к более высокому риску:

1) Когда валидатор знает, что только 2 ETH из 32 оплачиваются им самим, будет ли он делать все возможное, чтобы избежать слэшинга?

2) Когда валидатор хочет атаковать сеть ETH2.0, он может использовать эту уязвимость, чтобы снизить общую стоимость взлома. В то время финансовые затраты будут значительно сокращены с 32ETH до 2ETH — резкое снижение на 93,75%.

Для депозита требуется более разумный интервал, который может решить две вышеупомянутые потенциальные проблемы. Вот почему StaFi устанавливает диапазон депозита от 4ETH до 16ETH. Что касается того, возможно ли слэшинг между 4ETH и 8ETH, мы думаем, что да; но нам также необходимо разработать страховой пул слэшинга, когда депозит валидатора уменьшается.

Когда депозит уменьшается, он не сможет полностью компенсировать теоретическую максимальную потерю за слэшинг. В конце концов, когда валидатор попадает в слэшинг, все еще существует вероятность, даже если она крайне мала, что средства на счете с одним узлом будут оштрафованы на сумму до 16 ETH. Например, когда количество вредоносных узлов значительно, но не превышает 1/3 от всех, но эта вероятность может быть меньше 0,01%.

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

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

О протоколе StaFi

StaFi — это первый протокол DeFi, открывающий ликвидность застейканых активов. Пользователи могут осуществлять стейкинг токенов PoS через StaFi и получать взамен rToken, которые доступны для торговли, при этом зарабатывая вознаграждение за стейкинг. FIS — это нативный токен сети StaFi. FIS требуется для обеспечения безопасности сети посредством стейкинга, оплаты комиссий за транзакции в блокчейне StaFi, а также выпуска и выкупа rTokens.

Официальный сайт: www.stafi.io
Twitter: @Stafi_Protocol
Telegram Chat: https://t.me/stafi_protocol
Telegram Ann: https://t.me/stafi_ann
Discord: https://discord.com/invite/jB77etn
Forum :Https://commonwealth.im/stafi

--

--