Последние исследования Виталика: какие изменения необходимы в LSDFi-протоколах и ликвидности для повышения децентрализации и снижения перегрузки консенсуса?
В данной статье основное внимание уделяется двум основным проблемам: рискам централизации операторов нод в протоколах LSDFi и пулах ликвидности, а также ненужной нагрузке на консенсус.
В данной статье основное внимание уделяется текущим рискам централизации операторов узлов и ненужной нагрузке на консенсус в протоколах LSDFi и пулах ликвидности.
Автор:Vitalik Buterin
Перевод: bayemon.eth, ChainCatcher
Текущее развитие Ethereum можно охарактеризовать как обладающее значительным количеством двухуровневого стейкинга (two-tiered staking), где под этим понимается модель стейкинга с двумя типами участников.
- Оператор узла (Node Operator): управляет узлом и вносит определённую сумму собственного капитала в качестве залога, подкреплённого своей репутацией
- Делегатор (Delegator): делегаторы вносят определённое количество Ethereum, без минимального порога и дополнительных ограничений на способы участия, кроме обеспечения залога
Этот новый двухуровневый стейкинг реализуется через многочисленные пулы стейкинга, предоставляющие ликвидные токены стейкинга (LST). (Rocket Pool и Lido используют такую модель).
Однако в текущей реализации двухуровневого стейкинга есть два недостатка:
- Риск централизации операторов узлов: в настоящее время механизмы выбора операторов узлов во всех пулах стейкинга остаются чрезмерно централизованными
- Ненужная нагрузка на консенсус: на уровне Ethereum L1 каждый эпоха требует проверки примерно 800000 подписей, что создаёт огромную нагрузку на отдельный slot. Кроме того, поскольку пулы ликвидного стейкинга требуют значительных средств, а сама сеть не получает достаточной выгоды от такой нагрузки, если сеть Ethereum сможет достичь разумной децентрализации и безопасности без необходимости подписи каждого стейкера в каждом slot, сообщество сможет принять такие решения и эффективно сократить количество подписей за период.
В этой статье описываются решения для вышеуказанных двух проблем. Сначала предположим, что большая часть капитала находится у тех, кто не желает лично управлять стейкинг-узлами в текущем виде, подписывать сообщения в каждом slot, блокировать депозиты и перераспределять средства тем, кто понёс убытки. В такой ситуации какую роль эти люди могут сыграть, чтобы по-прежнему вносить значимый вклад в децентрализацию и безопасность сети?
Как работает текущий двухуровневый стейкинг?
В настоящее время самыми популярными пулами стейкинга являются Lido и RocketPool. В случае Lido есть две стороны:
- Операторы узлов: выбираются путём голосования Lido DAO, то есть фактически LDO-холдеры определяют их. Когда кто-то вносит ETH в смарт-контракт Lido, создаётся stETH, который оператор узла может внести в пул стейкинга (но из-за того, что права на вывод средств привязаны к адресу смарт-контракта, оператор не может свободно выводить средства)
- Делегаторы: когда кто-то вносит ETH в смарт-контракт Lido, создаётся stETH, который оператор узла может внести в стейкинг (но из-за привязки прав на вывод к адресу смарт-контракта оператор не может свободно выводить средства)
В случае Rocket Pool:
- Операторы узлов: любой может стать оператором узла, внеся 8 ETH и определённое количество токенов RPL.
- Делегаторы: когда кто-то вносит ETH в смарт-контракт Rocket Pool, создаётся rETH, который оператор узла может внести в стейкинг (также из-за привязки прав на вывод к адресу смарт-контракта оператор не может свободно выводить средства).
Роль делегаторов
В этих системах (или в новых системах, которые могут быть реализованы в будущем благодаря изменениям в протоколе) ключевой вопрос: какова цель существования делегаторов с точки зрения протокола?
Чтобы понять глубину этого вопроса, сначала рассмотрим, что произойдёт при изменении протокола, когда штраф за слэшинг ограничивается 2 ETH, Rocket Pool также снижает сумму стейкинга для операторов узлов до 2 ETH, а доля рынка Rocket Pool увеличивается до 100% (для стейкеров и держателей ETH, по мере того как rETH становится безрисковым, практически все держатели ETH станут держателями rETH или операторами узлов).
Предположим, что доходность для держателей rETH составляет 3% (включая внутренние вознаграждения протокола и приоритетные сборы + MEV), а для операторов узлов — 4%. Также предположим, что общее предложение ETH составляет 100 миллионов.
Результаты расчётов приведены ниже. Чтобы избежать сложных процентов, доход рассчитывается в дневном выражении:

Теперь предположим, что Rocket Pool не существует, минимальный депозит для каждого стейкера снижается до 2 ETH, общий лимит ликвидности составляет 6.25 миллионов ETH, а доходность операторов узлов снижается до 1%. Рассчитаем снова:

Рассмотрим обе ситуации с точки зрения стоимости атаки. В первом случае атакующий не будет регистрироваться как делегатор, потому что делегаторы по сути не имеют права на вывод средств, поэтому это бессмысленно. Следовательно, он использует весь свой ETH для стейкинга и становится оператором узла. Чтобы достичь 1/3 от общего объёма стейкинга, ему потребуется внести 2.08 миллиона ETH (что, справедливости ради, всё равно очень большая сумма). Во втором случае атакующему также нужно внести средства, чтобы достичь 1/3 от общего объёма пула, и ему также потребуется 2.08 миллиона ETH.
С точки зрения экономики стейкинга и стоимости атаки итоговый результат в обеих ситуациях полностью идентичен. Доля ETH, находящаяся у операторов узлов, ежедневно увеличивается на 0.00256%, а доля ETH у не-операторов узлов ежедневно уменьшается на 0.00017%. Стоимость атаки составляет 2.08 миллиона ETH. Таким образом, в этой модели делегаторы выглядят как бессмысленная машина Руба Голдберга, и рациональное сообщество даже склонно отказаться от посредников, резко сократить вознаграждения за стейкинг и ограничить общий объём стейкинга 6.25 миллионами ETH.
Конечно, статья не призывает снижать вознаграждение за стейкинг в 4 раза и фиксировать лимит общего объёма стейкинга на 6.25 миллионах. Напротив, основная мысль — хорошо функционирующая система стейкинга должна обладать ключевым свойством: делегаторы должны нести важную ответственность в системе. Кроме того, если делегаторы в значительной степени мотивированы общественным давлением и альтруизмом на правильные действия — это тоже нормально; ведь именно это сегодня побуждает людей внедрять децентрализованные и безопасные решения для стейкинга.
В чём заключается ответственность делегаторов
Если делегаторы могут играть значимую роль в системе стейкинга, то в чём она может заключаться?
Я считаю, что есть два типа ответов:
- Выбор делегатора: делегатор может выбирать, каким операторам узлов делегировать свои интересы. Вес оператора узла в механизме консенсуса пропорционален общему количеству делегированных ему средств. В настоящее время механизм выбора делегатора ограничен: держатели rETH или stETH могут вывести свой ETH и переключиться на другой пул, но реальная доступность выбора делегатора может быть значительно расширена.
- Участие в механизме консенсуса: делегатор может выбрать роль в механизме консенсуса, которая менее обременительна, чем полноценное управление узлом, не требует длительного периода выхода и не несёт риска слэшинга, но всё же позволяет сдерживать операторов узлов.
Усиление права выбора делегатора
Есть три способа усилить право выбора делегатора:
- Улучшение инструментов голосования внутри пула
- Увеличение конкуренции между пулами
- Фиксация прав делегирования
В настоящее время голосование внутри пула практически не реализовано: в Rocket Pool любой может стать оператором узла, в Lido голосование определяют держатели LDO, а не держатели ETH. Lido предложил двойное управление LDO + stETH, позволяющее активировать защитный механизм и блокировать новые голосования, чтобы предотвратить добавление или удаление операторов узлов, что в некоторой степени даёт держателям stETH право голоса. Тем не менее, эта власть ограничена и может быть усилена.
Конкуренция между пулами уже существует, но пока слаба. Основная проблема — токены стейкинга небольших пулов обладают низкой ликвидностью, сложнее завоевать доверие и получить поддержку приложений.
Можно улучшить первые две проблемы, ограничив сумму штрафа небольшим количеством, например, 2 или 4 ETH. Тогда оставшиеся ETH можно безопасно вносить и сразу выводить, что позволит двустороннему обмену даже для небольших пулов стейкинга. Для решения третьей проблемы можно создать общий контракт выпуска, управляющий LST (аналогично ERC-4337 и ERC-6900 для кошельков), чтобы гарантировать безопасность любых токенов стейкинга, выпущенных через этот контракт.
В настоящее время в протоколе нет фиксированных прав делегирования, но в будущем такая ситуация вполне возможна. Это будет связано с логикой, аналогичной вышеописанным идеям, но реализованной на уровне протокола. О плюсах и минусах фиксации прав см. в этой статье.
Эти идеи улучшают статус-кво, но их преимущества ограничены. Голосование токенами имеет свои проблемы, и в конечном итоге любая форма неинцентивированного выбора делегатора — это форма голосования токенами; это всегда было моим главным недовольством по поводу делегированного proof-of-stake. Поэтому стоит рассмотреть более мощные способы участия в консенсусе.
Участие в консенсусе
Даже не учитывая текущие проблемы ликвидного стейкинга, у существующих методов независимого стейкинга есть ограничения. Предположим, что используется single-slot finality, в идеале каждый slot может обрабатывать около 100,000–1,000,000 BLS-подписей. Даже при использовании рекурсивных SNARKs для агрегации подписей, для отслеживания подписей потребуется битовое поле для каждого участника. Если Ethereum станет сетью глобального масштаба, то даже полностью децентрализованное хранение битовых полей будет недостаточно: 16 МБ в каждом slot поддерживают только около 64 миллионов стейкеров.
С этой точки зрения разделение стейкинга на более сложный слой с возможностью слэшинга и менее сложный слой имеет смысл: сложный слой работает в каждом slot, но может включать только 10,000 участников, а менее сложный слой вызывается лишь изредка. Менее сложный слой может быть полностью свободен от слэшинга или случайно предоставлять участникам возможность внести депозит и стать объектом слэшинга на несколько slot.
На практике это можно реализовать, повысив лимит баланса валидатора, а затем увеличив порог баланса (например, до 2048 ETH), чтобы определить, какие валидаторы попадают в более сложный или менее сложный слой.
Вот несколько предложений о том, как могут работать эти малые роли стейкинга:
- В каждом slot случайным образом выбираются 10,000 малых стейкеров, которые могут подписывать то, что считают правильным содержимым slot. Используйте малых стейкеров как входные данные для работы правила выбора форка LMD GHOST. Если выбор форка, управляемый малыми стейкерами, и выбор форка, управляемый операторами узлов, расходятся, клиент пользователя не принимает ни один блок как финализированный и отображает ошибку. Это вынуждает сообщество вмешаться для разрешения ситуации.
- Делегатор может отправить транзакцию, объявляя сети, что он онлайн и готов быть малым стейкером в течение следующего часа. Для сообщений, отправляемых узлом (блок или подтверждение), требуется подпись как от узла, так и от случайно выбранного делегатора.
- Делегатор может отправить транзакцию, объявляя сети, что он онлайн и готов быть малым стейкером в течение следующего часа. В каждом периоде случайным образом выбираются 10 делегаторов как поставщики inclusion list, и ещё 10,000 делегаторов как избиратели. Они выбираются до k-slot и получают k-slot окно для публикации подтверждения о своей активности. Каждый подтверждённый inclusion list provider может опубликовать inclusion list, и если для каждого inclusion list либо включены транзакции из списка, либо есть достаточно голосов избирателей, показывающих, что inclusion list недоступен, иначе блок считается недействительным.
Общая черта этих малых стейкинг-узлов — им не нужно активно участвовать в каждом slot, и даже лёгкий клиент может выполнять всю работу. Следовательно, для развертывания узла достаточно верификации консенсусного слоя, а оператор узла может реализовать это через приложение или браузерное расширение, которые в основном пассивны, имеют низкие требования к вычислениям, оборудованию и техническим знаниям, и даже не требуют таких передовых технологий, как ZK-EVM.
У этих «малых ролей» есть общая цель: предотвращение цензуры транзакций со стороны большинства (51%) операторов узлов. Первый и второй варианты также предотвращают откат финализации большинством. Третий вариант напрямую фокусируется на цензуре, но более подвержен влиянию выбора большинства операторов узлов.

Эти идеи написаны с точки зрения реализации двухуровневого стейкинга на уровне протокола, но их также можно реализовать как функции пулов стейкинга. Вот некоторые конкретные идеи реализации:
- С точки зрения протокола, каждый валидатор может установить два стейкинг-ключа: постоянный стейкинг-ключ P и привязанный вызываемый Ethereum-адрес, а также быстрый стейкинг-ключ Q. Подписи по выбору форка отслеживаются по P, подписи по сообщениям — по Q. Если результаты хранения PQ не совпадают, ни один блок не принимается как финализированный, а пул ликвидности случайным образом выбирает представителя.
- В целом протокол может остаться прежним, но публичный ключ валидатора на этот период будет P+Q. Обратите внимание, что для слэшинга два сообщения могут иметь разные Q-ключи, но одинаковый P-ключ; дизайн слэшинга должен учитывать это.
- Q-ключ может использоваться в протоколе только для подписи и проверки inclusion list в блоке. В этом случае Q может быть смарт-контрактом, а не одним ключом, поэтому пул стейкинга может реализовать более сложную логику голосования, принимая inclusion list от случайно выбранных провайдеров или достаточное количество голосов, показывающих, что inclusion list недоступен.
Заключение
При правильной реализации тонкая настройка дизайна proof-of-stake может одновременно решить две проблемы:
- Дать возможность тем, кто сегодня не имеет ресурсов или возможностей для самостоятельного участия в proof-of-stake, принимать участие в нём, сохраняя больше власти в своих руках: (i) выбирать, какие узлы поддерживать, и (ii) активно участвовать в консенсусе более лёгким, но всё же значимым способом, чем полноценное управление узлом. Не все участники выберут один или оба варианта, но любой, кто выберет хотя бы один, получит значительное улучшение по сравнению с текущей ситуацией.
- Сократить количество подписей, которые консенсусный слой Ethereum должен обрабатывать в каждом slot, даже при single-slot finality, до примерно 10,000, что также способствует децентрализации и облегчает запуск валидационных узлов для всех.
Для этих решений можно найти подходы на разных уровнях абстракции: предоставление прав пользователям внутри протокола proof-of-stake, выбор пользователей между протоколами proof-of-stake и их организация внутри протокола. Следует тщательно обдумывать этот выбор, и обычно лучше выбирать минимально необходимую организацию, чтобы максимально снизить сложность протокола и степень изменений в экономике протокола, при этом достигая желаемых целей.
Особая благодарность Mike Neuder, Justin Drake и другим за отзывы и рецензии. См. также статьи Mike Neuder, Dankrad Feist и arixon.eth по схожим темам.
Дисклеймер: содержание этой статьи отражает исключительно мнение автора и не представляет платформу в каком-либо качестве. Данная статья не должна являться ориентиром при принятии инвестиционных решений.
Вам также может понравиться
Mastercard рассматривает приобретение Zero Hash за почти $2 млрд в ставке на стейблкоины: отчет
CZ Чжао рассматривает возможность подачи иска против Уоррен за ложное обвинение в отмывании денег

Почему BlackRock стал незаменимым для крипто ETF

