Оригинальное название: «Сохранение 8192 подписей на слот после SSF: как и почему»
Оригинальная статья Виталика Бутерина, ETH research
Оригинальная компиляция: Luccy, BlockBeats
*Примечание редактора: SSF (Single Slot Finality) расшифровывается как Single Slot Finality, что позволяет значительно сократить задержку Ethereum. В механизме консенсуса BlockchainConsensus окончательность означает, что транзакция или блок становятся безотзывными, гарантируя, что они не могут быть подделаны или отменены. Достижение окончательности имеет важное значение для доверия и безопасности систем децентрализации, поскольку устраняет риск двойного расходования средств и других вредоносных действий. *
*SSF предполагает, что в BlockchainConsensus Mechanism один временной интервал или единица времени может считаться «окончательной». В отличие от оригинального EthereumConsensus, он позволяет всем валидаторам участвовать в подтверждении или подписании слотов, сокращая время подтверждения транзакций и улучшая общий пользовательский опыт. *
Виталик «возвращает» ETH исследовании исследует, почему необходимо, чтобы участвующие валидаторы имели по две подписи на слот после SSF, то есть для достижения 8192 подписей, и выдвигает 3 гипотезы о том, как достичь этой цели, а именно полный стейкинг, двухуровневый стейкинг и ротационное участие, анализирует, как более эффективно обрабатывать количество подписей на слот, сохраняя при этом безопасность протокола, и обсуждает их преимущества и недостатки, а также влияние на протокол и пользователей. BlockBeats скомпилировал исходный текст следующим образом:
Одно из основных различий между Ethereum и большинством других (с окончательностью) PoS-систем заключается в том, что Ethereum стремится поддерживать очень большое количество валидаторов: в настоящее время у нас 895 000 валидаторов, что, как показывает анализ закона Ципфа, эквивалентно десяткам тысяч независимых физических или юридических лиц. Целью этого является поддержка децентрализации, позволяющая обычным людям участвовать в стейкинге, не требуя, чтобы каждый отказывался от своей способности действовать и передавал контроль одному из немногих стейкинг-пулов.
Однако такой подход требует, чтобы блокчейн Ethereum обрабатывал большое количество подписей на слот (около 28 000 сегодня; 1 790 000 после SSF), что является очень высокой нагрузкой. Для того, чтобы выдержать эту нагрузку, необходимо пойти на ряд технических жертв:
На первый взгляд система агрегации сигнатур может показаться разумной, но на самом деле она создает системную сложность, которая пронизывает всю систему.
Более того, она даже не достигла своих целей. Минимальное требование для стейкинга по-прежнему составляет 32 ETH, что для многих людей недостижимо. С точки зрения логического анализа, цель системы, которая позволяет каждому подписывать каждый слот в долгосрочной перспективе, не кажется выполнимой, чтобы по-настоящему обеспечить стейкинг для обычных людей: если у Ethereum 500 миллионов пользователей, 10% из которых участвуют в стейкинге, это означает 100 миллионов подписей на слот. С точки зрения теории информации, штрафы за обработку в этой схеме требуют не менее 12,5 МБ свободного места для данных на слот, что примерно эквивалентно цели полного сегментирования. Это возможно, но требование, чтобы сам стейкинг полагался на выборку доступности данных, значительно усложняет работу. И даже в этом случае только около 0,6% населения планеты участвуют в стейкинге, и это еще не начало включать в себя вычислительную задачу проверки такого количества подписей.
Таким образом, вместо того, чтобы полагаться на криптографию для создания волшебных пуль (или волшебных пуленепробиваемых) для достижения постоянно растущего количества подписей на слот, я предлагаю философский сдвиг: сначала откажитесь от таких ожиданий. Это значительно расширило бы пространство для проектирования PoS и позволило бы значительно упростить технические условия, сделать его более безопасным, позволив Helios использовать SNARK непосредственно на EthereumConsensus, и решить проблему квантовой устойчивости, сделав осуществимой даже неинтересную, но давнюю схему подписи, такую как Винтерниц.
Многие, не использующие EthereumBlockchain, сталкиваются с этой проблемой, применяют подход к безопасности, основанный на комитетах. Во время каждого слота они случайным образом выбирают N валидаторов (например, N ≈ 1000), которые отвечают за окончательное подтверждение слота. Стоит напомнить, почему такой подход недостаточен, так как не обеспечивает подотчетности.
Чтобы понять, почему, предположим, что 51% атак произошли. Это может быть атака с окончательным разворотом или атака с цензурой. Для того, чтобы провести атаку, вам все равно нужно, чтобы экономический субъект контролировал большую часть стейка, чтобы согласовать атаку, т.е. запустить программное обеспечение, участвующее в атаке, и участвовать в атаке со всеми валидаторами, которые в конечном итоге избираются в комитет. Математически случайная выборка обеспечивает это. Тем не менее, штрафы, которые они получили за это, были минимальными, поскольку большинство валидаторов, которые согласились на атаку, в конечном итоге не были избраны в комитет и, следовательно, не были замечены.
В настоящее время Ethereum делает прямо противоположное. Если произойдет атака 51%, большая часть всей коллекции валидаторов атаки будет урезана. Текущая стоимость атаки составляет около 9 млн ETH (около $20 млрд), и предполагается, что отключение синхронизации сети осуществляется наиболее выгодным для злоумышленника способом.
Я думаю, что это высокая цена, но это слишком высокая цена, и мы можем пойти на некоторые жертвы в этом вопросе. Даже стоимость атаки в 1-2 миллиона ETH вполне достаточна. Кроме того, основной риск централизации, который в настоящее время существует в Ethereum, отражается в совершенно другом месте: если минимальная сумма депозита будет снижена почти до нуля, мощность масштабных стейкинг-пулов не сильно уменьшится.
Вот почему я выступаю за промежуточное решение: пойти на некоторые жертвы в отношении обязанностей валидатора, но при этом сохранить высокую общую сумму ETH, которую можно сократить, и взамен мы сможем пользоваться большинством преимуществ меньшего набора валидаторов.
Предполагая, что используется традиционный двухраундовый протокол консенсуса (например, протокол, используемый Tendermint, и протокол, который неизбежно использует SSF), каждый участвующий валидатор нуждается в двух подписях на слот. Мы должны обратиться к этой реальности, и я вижу, что есть три основных пути решения этой проблемы.
Python Zen содержит очень важную фразу:
Должен быть один — и желательно только один — очевидный способ сделать это. )
В настоящее время Ethereum нарушает это правило, когда дело доходит до обеспечения равенства стейкинга, поскольку мы одновременно реализуем две разные стратегии для достижения этой цели: (i) небольшой независимый стейкинг и (ii) децентрализованные пулы стейкинга с использованием технологии распределенного валидатора (DVT). По вышеуказанным причинам (i) могут быть поддержаны только несколько отдельных стейкеров, и всегда будет много людей, чья минимальная сумма депозита слишком велика. Тем не менее, Ethereum платит очень высокую техническую нагрузку за поддержку (i).
Одно из возможных решений – сдаться (i) и выложиться по полной (ii). Мы можем увеличить минимальную сумму депозита до 4096 ETH и установить общий лимит валидаторов на 4096 (около 16,7 млн ETH). Ожидается, что мелкие стейкеры присоединятся к пулу DVT: предоставив капитал или став операторами узлов. Чтобы предотвратить злоупотребления со стороны злоумышленников, роль оператора узла должна быть каким-то образом ограничена порогом престижа, и пулы будут конкурировать, предлагая различные варианты в этом отношении. Предоставление капитала будет осуществляться без разрешения.
Мы можем сделать стейкинг в этой модели более «щадящим», установив штрафной лимит (например, 1/8 от общего предоставленного депозита). Это позволит снизить доверие к операторам Node, хотя к этому стоит относиться с осторожностью из-за обозначенных проблем.
Мы создали два уровня стейкеров: «тяжелый» уровень, который требует 4096 ETH для участия в окончательном подтверждении состояния, и «легкий» уровень без минимальных требований (без задержек на ввод и вывод средств, без уязвимостей cut-down), добавив второй уровень безопасности. Для того, чтобы конечное состояние блока было подтверждено, требуется как подтверждение конечного состояния тяжелого слоя, так и не менее 50% подтверждений легкого валидатора онлайн.
Такая гетерогенность полезна для цензуры и устойчивости к атакам, так как для успешной атаки необходимо повредить как тяжелые, так и легкие слои. Если один слой поврежден, а другой нет, цепочка прервется, а если поврежден тяжелый слой, его можно наказать.
Еще одно преимущество заключается в том, что легкий уровень может содержать ETH, которые также используются в качестве залога в приложении. Основной недостаток заключается в том, что стейкинг становится менее равным из-за установления разделения между мелкими и крупными стейкерами.
Мы используем подход, похожий на предложенный здесь дизайн суперкомитета: для каждого слота мы выбираем 4096 активных в данный момент валидаторов и тщательно настраиваем набор в каждом слоте, чтобы у нас все еще была безопасность.
Тем не менее, мы сделали несколько различных вариантов выбора параметров в рамках этого фреймворка, чтобы получить в нем «соотношение цены и качества». В частности, мы разрешаем валидаторам участвовать с произвольно высокими балансами, и если у валидаторов больше определенного количества ETH (которое должно быть плавающим), они участвуют в комитетах в каждом слоте. Если у валидатора есть N<M ETH, то у него есть вероятность N/M в любом заданном слоте для участия в комитете.
Здесь у нас есть интересный рычаг для отделения «веса» на цель поощрения от «веса» на цели консенсуса: вознаграждение для каждого валидатора в комитете должно быть одинаковым (по крайней мере, для валидаторов, использующих ≤M ETH), чтобы сохранить среднее вознаграждение пропорциональным балансу, но мы все равно можем рассчитать веса валидаторов консенсуса в комитете, взвесив ETH. Это гарантирует, что количество ETH, необходимое для окончательного решения, будет равно более чем 1/3 от общего числа ETH в комитете.
Грубый анализ закона Ципфа вычисляет это количество ETH следующим образом:
Примечание: Для того, чтобы более наглядно показать рассчитанные данные, следующими шагами будут скриншоты

Основным недостатком такого подхода является небольшое увеличение сложности случайного выбора валидаторов в протоколе, чтобы мы могли получить безопасность консенсуса в случае смены комитета.
Главное преимущество заключается в том, что он сохраняет независимый стейкинг в узнаваемой форме, поддерживает одноклассовую систему и даже позволяет снизить минимальную сумму депозита до очень низкого уровня (например, 1 ETH).
Если мы решим использовать 8192 подписи после протокола SSF, это значительно облегчит работу для тех, кто внедряет технологии, и создает стороннюю инфраструктуру, такую как легкие клиенты. Клиенты консенсуса могут быть легко запущены кем угодно, и пользователи, энтузиасты стейкинга и другие могут сразу же работать над этим предположением. Будущая нагрузка на протокол Ethereum больше не неизвестна: будущее может быть увеличено хардфорком, но только в том случае, если разработчики будут уверены, что технология достаточно улучшилась, чтобы обрабатывать больше подписей на слот с тем же уровнем простоты.
Остальная часть работы будет заключаться в том, чтобы решить, какой из трех методов мы хотим принять, или, может быть, совершенно другой подход. Это будет вопрос о том, какие компромиссы нас устраивают, в частности, как мы справляемся с сопутствующими проблемами, такими как ликвидный стейкинг, которые могут быть решены отдельно от технических проблем, которые теперь намного проще.
Ссылка на оригинальную статью