Возможное будущее протокола Ethereum. Часть 1: Слияние aka The Merge
Интро
Всё началось субботним утром, когда мой партнёр написал мне: “Привет, Виталик серию постов написал о будущем Эфира. Вот в этом, последний раздел тебе точно интересен будет. Там все твои хотелки и даже больше :). Название раздела Obfuscation and one-shot signatures: the far future of cryptography”. После чего я решил, что хватит держать в закладках эти 6 интереснейших статьи и пора представить их перевод миру. Как всегда - в вольной форма.
Перевод
Это вольный перевод первой части большого исследования В. Бутерина: vitalik.eth.limo/general/2024/10/14/futures1.html.
Введение
(Выражаю) особую благодарность Justin Drake, Hsiao-wei Wang, @antonttc, Anders Elowsson and Francesc за отзывы и рецензирование.
Изначально «The Merge» (Слияние) означало важнейшее событие в истории протокола Ethereum с момента его запуска: долгожданный и труднодостижимый переход с proof-of-work (PoW) на proof-of-stake (PoS).
Сегодня Ethereum уже почти два года стабильно функционирует на proof-of-stake, демонстрируя впечатляющую стабильность, производительность и защиту от рисков централизации. [Прим. Menaskop: к сожалению, по каждому пункту есть большие “но”.] Однако остаются области, в которых необходимо улучшить proof-of-stake.
На моей дорожной карте за 2023 год это было разделено на категории: улучшение технических характеристик, таких как стабильность, производительность и доступность для “меньших” валидаторов, а также экономические изменения для снижения рисков централизации.
Первое направление получило название «The Merge», а второе стало частью «The Scourge».
The Merge, дорожная карта 2023 года
Этот пост сфокусируется на части «The Merge»: что ещё можно улучшить в техническом дизайне proof-of-stake и какие пути ведут к этим улучшениям?
Это не полный список всех возможных улучшений proof-of-stake; скорее, это перечень идей, которые активно рассматриваются.
The Merge: основные цели
- Финализация за один слот;
- Подтверждение и финализация транзакций как можно быстрее, при этом сохраняя децентрализацию;
- Улучшение доступности стейкинга для одиночных валидаторов;
- Повышение устойчивости (стабильности);
- Усиление способности Ethereum противостоять и восстанавливаться после атак 51% (включая реверс финализации, блокировку финализации и цензуру). [Прим. Menaskop: о последних рассказывал в циклах статей о PoS на Forklog & Bits.media ещё в 2020-2022 гг.].
- Финализация за один слот и демократизация стейкинга;
- Секретное избрание лидера в каждом слоте;
- Быстрое подтверждение транзакций;
- Другие области исследований.
Финализация за один слот и демократизация стейкинга
Сегодня для финализации блока требуется 2–3 эпохи (~15 минут), а для того, чтобы стать валидатором, нужно иметь 32 ETH. Это был изначальный компромисс, позволивший сбалансировать три цели:
- Максимизация количества валидаторов, участвующих в стейкинге (что подразумевает минимизацию минимально необходимого ETH для стейкинга);
- Минимизация времени до финализации;
- Минимизация нагрузки на узел, то есть затрат на загрузку, проверку и ретрансляцию всех подписей других валидаторов.
Эти три цели противоречат друг другу: для обеспечения экономической финализации (то есть того, что для реверса финализированного блока атакующему потребуется сжечь большое количество ETH) требуется, чтобы каждый валидатор подписывал два сообщения при каждой финализации.
Таким образом, если валидаторов много, нужно либо больше времени для обработки всех подписей, либо мощные узлы для одновременной обработки всех подписей.
(Схематично это выглядит следующим образом):
Обратите внимание, что всё это зависит от ключевой цели Ethereum: гарантировать, что даже успешные атаки будут стоить дорого для атакующего. Это и называется «экономической финализацией».
Если бы у нас не было этой цели, мы могли бы решить проблему, случайно выбирая комитет для финализации каждого слота. Цепочки, которые не стремятся к экономической финализации, такие как Algorand, часто используют именно этот подход.
Однако проблема подобного подхода в том, что если атакующий контролирует 51% валидаторов, то он может провести атаку (сделать реверс финализированного блока, осуществить цензуру или задержать финализацию) с минимальными издержками: только часть его узлов, входящих в комитет, может быть выявлена как участвующая в атаке и подвергнута штрафным санкциям — будь то с помощью слэшинга или через социально-координированный софт-форк. Это означает, что атакующий может неоднократно атаковать цепочку, теряя лишь небольшую часть своей доли при каждой атаке.
Поэтому, если мы хотим добиться экономической финализации, наивный подход на основе комитетов не работает, и кажется, что для этого нужно, чтобы участвовал полный набор валидаторов.
Идеальный сценарий предполагает сохранение экономической финализации при одновременном улучшении текущего состояния в двух направлениях:
- Финализировать блоки за один слот (в идеале — сохранить или даже уменьшить текущее время до 12 секунд), вместо 15 минут;
- Позволить валидаторам делать ставки от 1 ETH (вместо 32 ETH).
Первая цель обоснована двумя мотивами, оба из которых можно рассматривать как «согласование характеристик Ethereum с более централизованными производительными L1-цепочками».
Во-первых, это гарантирует, что все пользователи Ethereum действительно получают выгоду от более высокого уровня безопасности, обеспечиваемого механизмом финализации. Сегодня большинство пользователей не делают этого, так как не готовы ждать 15 минут; с финализацией за один слот пользователи смогут видеть финализацию своих транзакций почти сразу после их подтверждения.
Во-вторых, это упрощает протокол и инфраструктуру, если пользователи и приложения не будут беспокоиться о возможности отката цепочки, за исключением относительно редкого случая “утечки из-за неактивности”.
Вторая цель продиктована желанием поддержать одиночных валидаторов. Опросы показывают, что главным фактором, мешающим большему количеству людей участвовать в одиночном стейкинге, является минимальный порог в 32 ETH. Снижение минимума до 1 ETH решит эту проблему, оставив другие факторы основными ограничениями для одиночного стейкинга.
Существует (следующий) вызов: цели более быстрой финализации и демократизации стейкинга противоречат цели минимизации издержек.
И именно поэтому мы изначально не начали с финализации за один слот. Однако недавние исследования предлагают несколько возможных путей решения этой проблемы.
Что это такое и как это работает?
Однослотовый финализм подразумевает использование алгоритма консенсуса, который завершает блоки в одном слоте.
Сама по себе эта цель не является сложной: множество алгоритмов, таких как консенсус Tendermint, уже делают это с оптимальными свойствами. Одно из желаемых свойств, уникальное для Ethereum, которое Tendermint не поддерживает, - это утечка бездействия, которая позволяет цепочке продолжать работать и в конечном итоге восстанавливаться, даже когда более 1/3 валидаторов уходят в оффлайн.
К счастью, эта задача уже решена: есть предложения, которые модифицируют консенсус в стиле Tendermint, чтобы приспособить его к утечкам неактивности.
Ведущее предложение по однослотовому финализму
Самая сложная часть проблемы - понять, как заставить однослотовый финализм работать с очень большим количеством валидаторов, не приводя к чрезвычайно высоким накладным расходам на операторов узлов. Для этого есть несколько ведущих решений:
- Вариант 1: грубая сила (буквально - брутфорс)- упорно работать над реализацией лучших протоколов агрегации подписей, возможно, с использованием ZK-SNARK, что действительно позволит нам обрабатывать подписи от миллионов валидаторов в каждом слоте.
Horn, один из предложенных вариантов лучшего протокола агрегации.
- Вариант 2: Orbit committees - новый механизм, который позволяет случайно выбранному комитету среднего размера отвечать за финализацию, но таким образом, чтобы сохранить искомые свойства стоимости атаки.
Один из способов думать об Orbit SSF заключается в том, что он открывает пространство компромиссных вариантов вдоль спектра от x=0 (комитеты в стиле Algorand, отсутствие экономической окончательности) до x=1 (статус-кво Ethereum), открывая (одновременно) точки посередине, где Ethereum по-прежнему обладает достаточной экономической финализацией, чтобы быть чрезвычайно безопасным, но в то же время получаем и преимущества эффективности, поскольку для участия в каждом слоте требуется только случайная выборка валидаторов среднего размера.
Orbit использует преимущества уже существующей неоднородности в размерах депозитов валидаторов, чтобы добиться максимально возможной экономической финализации, но при этом предоставить небольшим валидаторам пропорционально (значимую) роль. Кроме того, Orbit использует медленную ротацию комитетов, чтобы обеспечить большое перекрытие между соседними кворумами, гарантируя, что экономический финализм всё ещё применяется на границах смены комитетов.
- Вариант 3: двухуровневый стейкинг - механизм, при котором существует два класса стейкеров, один с более высокими требованиями к депозиту, а другой - с более низкими требованиями к депозиту. Непосредственное участие в обеспечении экономической окончательности будет принимать только уровень с более высоким депозитом. Существуют различные предложения (например, см. пост Rainbow staking) о том, какие именно права и обязанности имеет нижний уровень депозита. Общие идеи включают:
- право делегировать ставку стейкеру более высокого уровня;
- случайная выборка стейкеров нижнего уровня, подтверждающая и необходимая для завершения каждого блока;
- право составлять списки включения.
Какие существуют ссылки на исследования (описанных процессов)?
- Пути к финализации за один слот (2022);
- Конкретное предложение по протоколу финализации за один слот для Ethereum (2023);
- Orbit SSF;
- Дополнительный анализ механизмов в стиле Orbit;
- Horn, протокол агрегации подписей (2022);
- Объединение подписей для крупномасштабного консенсуса (2023);
- Протокол агрегации подписей, предложенный Ховратовичем и др.;
- Агрегация подписей на основе STARK (2022);
- Rainbow staking.
Что ещё предстоит сделать и какие компромиссы необходимы?
Существует 4 основных пути (возможно также гибридное решение):
Первое (1) - предполагает отсутствие изменений, оставляя стейкинг без улучшений, что ухудшает характеристики безопасности и централизации Ethereum.
Второе (2) решает проблему с использованием передовых технологий, требуя быстрой агрегации множества подписей (более 1 миллиона) за 5-10 секунд. Этот метод минимизирует сложность, применяя интенсивную технику обработки.
Третье (3) избегает высоких технологий, решая задачу путём переосмысления допущений протокола: требование «экономической финализации» смягчается, так что стоимость атаки может быть примерно в 10 раз ниже текущей (например, $2,5 млрд вместо $25 млрд). Многие считают, что у Ethereum сегодня избыточная экономическая финализация, и его основные риски безопасности связаны с другими аспектами, поэтому такие жертвы оправданы.
Основная задача — проверить, что механизм Orbit безопасен и обладает нужными свойствами, затем формализовать и внедрить его. EIP-7251 (увеличение максимального эффективного баланса) позволяет добровольно консолидировать балансы валидаторов, снижая нагрузку на проверку цепочки и являясь хорошим первым этапом для внедрения Orbit.
Четвёртое (4) создает двухуровневую систему стейкинга с рисками централизации. Риски зависят от полномочий, предоставляемых нижнему уровню.
- Если стейкер нижнего уровня должен делегировать права подтверждения стейкеру верхнего уровня, это может привести к централизации.
- Если для подтверждения блока выбирается случайная выборка нижнего уровня, атакующий может потратить немного ETH, чтобы заблокировать финализацию.
- Если стейкеры нижнего уровня могут создавать только списки включения, слой подтверждения может остаться централизованным, что позволяет атаке 51% цензурировать списки.
- (1 + 2): уменьшение минимального депозита без финализации за один слот; требуемая агрегация в 64 раза меньше, чем в случае чистого (3).
- (1 + 3): добавление Orbit без финализации за один слот.
- (2 + 3): Orbit SSF с консервативными параметрами (например, комитет 128k валидаторов вместо 8k или 32k) и использование передовых техник для максимальной эффективности.
- (1 + 4): добавление Rainbow staking без финализации за один слот.
Как это взаимодействует с другими частями дорожной карты?
Финализация за один слот снижает риск определенных видов атак MEV на несколько блоков. Также для разделения подтверждающего и предлагающего слоев и других внутренних механизмов производства блоков потребуется пересмотр в условиях финализации за один слот.
Прямолинейные стратегии имеют слабость: они затрудняют сокращение времени слотов.
Единые тайные выборы лидера
Какую проблему мы решаем?
Сегодня заранее известно, какой валидатор предложит следующий блок. Это создает уязвимость в безопасности: злоумышленник может наблюдать за сетью, определить, какие валидаторы соответствуют тем или иным IP-адресам, и совершить DoS-атаку на каждого валидатора в тот момент, когда он собирается предложить блок.
Что это такое и как это работает?
Лучший способ решить проблему DoS - скрыть информацию о том, какой валидатор собирается предложить следующий блок, по крайней мере до того момента, когда блок действительно будет предложен. Обратите внимание, что это легко сделать, если убрать требование «одиночности»: одно из решений - позволить любому создавать следующий блок, но потребовать, чтобы раскрытие randao было меньше2256 / N. В среднем, только один валидатор сможет выполнить это требование - но иногда их будет два или больше, а иногда - ноль. Сочетание требования «секретности» с требованием «единственности» уже давно является сложной проблемой.
Протоколы выборов лидера с единым секретом решают эту проблему, используя некоторые криптографические техники для создания «ослепленного» идентификатора валидатора для каждого валидатора, а затем предоставляя многим предлагающим возможность перетасовать и переслепить пул ослепленных идентификаторов (это похоже на то, как работает микснет ). Во время каждого слота выбирается случайный идентификатор с ослеплением. Только владелец этого «слепого» ID может сгенерировать валидное доказательство для предложения блока, но никто другой не знает, какому валидатору соответствует этот «слепой» ID.
Какие существуют ссылки на существующие исследования?
- Работа Дэна Боне (2020): ссылка;
- Whisk (конкретное предложение для Ethereum, 2022): ссылка;
- Тег "single secret leader election" на ethresear.ch: ссылка;
- Упрощенная SSLE с использованием кольцевых подписей: ссылка.
Что ещё предстоит сделать и какие компромиссы необходимы?
На практике основная задача — найти и внедрить достаточно простой протокол, который можно будет использовать в основной сети. Ethereum ценится за свою относительную простоту, и дальнейшее усложнение нежелательно. Внедрения SSLE, которые видели, добавляют сотни строк кода и вводят новые криптографические допущения. Также открытой задачей остается поиск квантово-устойчивой реализации SSLE.
Возможно, добавленная сложность SSLE станет приемлемой только после введения механизмов для доказательств с нулевым разглашением в протокол Ethereum на уровне L1 для других задач (например, деревьев состояния или ZK-EVM).
Альтернативный вариант — отказаться от SSLE и использовать решения вне протокола (например, на уровне p2p) для устранения DoS-проблем.
Как это взаимодействует с другими частями дорожной карты?
Если добавить механизм разделения подтверждающего и предлагающего (APS), например, "execution tickets", то блоки исполнения (содержащие транзакции Ethereum) не потребуют SSLE, так как можно полагаться на специализированных блок-строителей. Однако консенсусные блоки (содержащие протокольные сообщения, такие как аттестации или фрагменты списков включения) все же могут выиграть от SSLE.
Ускоренное подтверждение транзакций
Какую проблему мы решаем?
Сокращение времени подтверждения транзакций с 12 до, например, 4 секунд улучшит пользовательский опыт и повысит эффективность DeFi-протоколов. Это также облегчит децентрализацию уровня L2, позволяя множеству приложений на L2 работать на rollup-решениях, снижая потребность L2 в собственных комитетах для децентрализованной последовательности.
Что это такое и как работает?
Существуют два основных подхода:
- Сокращение времени слота до, например, 8 или 4 секунд. Это не обязательно означает 4-секундную финализацию, так как для нее требуется три раунда связи, и можно сделать каждый раунд отдельным блоком, обеспечив предварительное подтверждение через 4 секунды.
- Позволить предлагающим публиковать предварительные подтверждения в течение слота. Предлагающий может включать транзакции по мере поступления и сразу публиковать сообщение предварительного подтверждения для каждой транзакции. Конфликтные подтверждения можно решать двумя способами: (i) путём штрафа предлагающего или (ii) через голосование аттестаторов, определяющее, какое подтверждение было первым.
Какие существуют ссылки на существующие исследования?
- Pre-confirmations на базе;
- Обязательства предлагающего, обеспечиваемые протоколом (PEPC);
- Периоды со сдвигом на параллельных цепях (идея 2018 года для снижения задержек).
Что еще предстоит сделать и какие компромиссы необходимы?
Практичность сокращения времени слотов вызывает сомнения, так как многие стейкеры в разных регионах испытывают трудности с быстрой инклюзией аттестаций. Переход на 4-секундные слоты может привести к централизации валидаторов из-за географических ограничений по задержке.
Подход с предварительным подтверждением предлагающего улучшает среднее время инклюзии, но не худший сценарий: при работоспособном предлагающем ваша транзакция будет подтверждена через 0,5 секунды, но при сбое предлагающего придется ждать до 12 секунд.
Дополнительный вопрос — как стимулировать предварительные подтверждения. Предлагающие стремятся максимизировать свои возможности, что может затруднить нейтральную роль аттестаторов.
Если финализация останется на уровне 12 секунд или больше, более важную роль будут играть механизмы предварительного подтверждения на уровне L2, увеличивая задержки взаимодействия между слоями.
Как это взаимодействует с другими частями дорожной карты?
Предварительное подтверждение на основе предложения реально зависит от механизма разделения аттестованного и предлагающего (APS), например, билетов на выполнение.
В противном случае необходимость предоставления предварительных подтверждений в реальном времени может оказаться слишком централизующей для обычных валидаторов.
То, насколько коротким может быть время слота, также зависит от структуры слота, которая в значительной степени зависит от того, какие версии APS, списков включения и т. д. мы в итоге реализуем. Существуют структуры слотов, которые содержат меньше раундов и, таким образом, более благоприятны для короткого времени слота, но они идут на компромиссы в других местах.
Другие области исследований
Восстановление после атаки 51%
Предполагается, что в случае атаки 51% (включая атаки, не поддающиеся криптографическому доказательству, такие как цензура) сообщество может объединиться для создания "мягкого форка меньшинства", чтобы «хорошие ребята» выиграли, а «плохие» получили наказание в виде утечек или штрафов.
Однако такая сильная зависимость от социальных механизмов может быть нездоровой. Мы можем попытаться уменьшить эту зависимость, автоматизировав процесс восстановления.
Полная автоматизация невозможна, так как это потребовало бы алгоритма консенсуса, устойчивого к ошибкам >50%, и подобные алгоритмы имеют математически доказанные ограничения.
Но можно добиться частичной автоматизации. Например, клиент может автоматически отказаться от принятия цепочки как финализированной или даже как основной ветви, если эта цепочка достаточно долго блокирует транзакции, которые видел клиент. Основная цель — не позволить атакующим быстро и безнаказанно победить.
Повышение порога кворума
Сегодня блок считается финализированным, если его поддерживают 67% стейкеров. Считается, что это значение слишком агрессивно. В истории Ethereum был только один краткий случай отказа в финализации. Если этот процент повысить, например, до 80%, то количество периодов без финализации останется низким, но безопасность Ethereum возрастет: спорные ситуации чаще будут приводить к временному прекращению финализации. Это кажется более здоровым сценарием, чем мгновенная победа «неправильной стороны», будь то атака или ошибка клиента.
Это также отвечает на вопрос «в чем смысл независимых стейкеров?».
Сегодня большинство стейкеров участвуют через пулы, и маловероятно, что независимые стейкеры достигнут 51% от общего количества стейкеров. Однако достижение блокирующего кворума меньшинства, особенно если кворум составляет 80% (то есть блокирующее меньшинство потребуется лишь 21%), кажется достижимым при значительных усилиях.
Пока независимые стейкеры не участвуют в атаках 51% (будь то откат финализации или цензура), атака не получит «чистой победы», и независимые стейкеры будут мотивированы помочь организовать мягкий форк меньшинства.
Стоит отметить, что кворумные пороги взаимодействуют с механизмом Orbit: если будем использовать Orbit, то понятие «21% стейкеров» станет сложнее и будет частично зависеть от распределения валидаторов.
Квантовая устойчивость
На Metaculus считают, хотя с большими погрешностями, что квантовые компьютеры, вероятно, начнут (атаковать существующие алгоритмы криптографии) к 2030-м годам.
Эксперты в области квантовых вычислений, такие как Скотт Ааронсoн, в последнее время начали более серьёзно относиться к возможности создания работоспособных квантовых компьютеров в среднесрочной перспективе.
Это влияет на всю дорожную карту Ethereum: каждый элемент протокола Ethereum, который сейчас зависит от эллиптических кривых, должен будет иметь некоторую хеш-основанную или иную квантово-устойчивую замену.
В частности, это означает, что нельзя рассчитывать на долговечность использования преимуществ агрегации BLS для обработки подписей большого набора валидаторов.
Этот фактор оправдывает осторожность в допущениях относительно производительности дизайнов Proof-of-Stake и стимулирует более проактивное развитие квантово-устойчивых альтернатив.
Альтернативные переводы и дополнения
Вы можете получить дополнительную информацию в статьях:
- Forklog: “Виталик Бутерин поделился планами по развитию Ethereum в 2024 году”;
- Hashtelegraph: Виталик Бутерин опубликовал дорожную карту Ethereum на 2024 год
- И др. см. в канале https://t.me/web3news