Особая благодарность Карлу Флоршу за отзывы и рецензию
Экосистема Ethereum второго уровня стремительно развивалась в течение последнего года. Экосистема EVM rollup, традиционно включающая Arbitrum, Optimism и Scroll, а в последнее время - Kakarot и Taiko, быстро развивается, делая большие успехи в улучшении безопасности; на странице L2beat хорошо описано состояние каждого проекта. Кроме того, мы видим, как команды, создающие сайдчейн, также начинают создавать роллапы(Polygon), проекты первого уровня стремятся стать валидными(Celo), а также совершенно новые проекты(Linea, Zeth...). Наконец, существует экосистема не только EVM: "почти-EVM", такие как Zksync, расширения, такие как Arbitrum Stylus, и более широкие усилия, такие как экосистема Starknet, Fuel и другие.
Одним из неизбежных последствий этого является то, что мы наблюдаем тенденцию к тому, что проекты уровня 2 становятся все более разнородными. Я ожидаю, что эта тенденция сохранится, по нескольким основным причинам:
Основная тема заключается в том, что если приложения и пользователи, работающие сегодня на первом уровне Ethereum, будут прекрасно платить меньшие, но все же заметные сборы за сворачивание в краткосрочной перспективе, то пользователи из мира, не связанного с блокчейном, не будут: легче оправдать уплату $0,10, если раньше Вы платили $1, чем если раньше Вы платили $0. Это относится как к приложениям, которые сегодня являются централизованными, так и к небольшим компаниям первого уровня, которые обычно имеют очень низкую плату, пока их пользовательская база остается небольшой.
Возникает естественный вопрос: какой из этих сложных компромиссов между роллапами, валидами и другими системами имеет смысл для конкретного приложения?
Первое измерение соотношения безопасности и масштаба, которое мы будем исследовать, можно описать следующим образом: если у Вас есть актив, который был выпущен на L1, затем помещен на депозит L2, а затем передан Вам, какой уровень гарантии у Вас есть, что Вы сможете вернуть актив обратно на L1?
Существует также параллельный вопрос: каков выбор технологии, который приводит к такому уровню гарантии, и каковы компромиссы этого выбора технологии?
Мы можем описать это с помощью графика:
Стоит отметить, что это упрощенная схема, и существует множество промежуточных вариантов. Например:
Эти промежуточные варианты можно рассматривать как находящиеся в спектре между рулоном и валидом. Но что побуждает приложения выбирать определенную точку на этом спектре, а не какую-то более левую или более правую? Здесь есть два основных фактора:
Приблизительно этот компромисс выглядит следующим образом:

Еще один вид частичной гарантии, о котором стоит упомянуть, - это предварительное подтверждение. Предварительные подтверждения - это сообщения, подписанные некоторым набором участников роллапа или валидиума, в которых говорится: "мы подтверждаем, что эти транзакции включены в данный порядок, а корнем пост-состояния является вот это". Эти участники вполне могут подписать предварительное подтверждение, которое не будет соответствовать каким-то последующим реалиям, но если это так, то депозит сгорает. Это полезно для приложений с низкой стоимостью, таких как потребительские платежи, в то время как приложения с более высокой стоимостью, такие как многомиллионные финансовые переводы, скорее всего, будут ждать обычного подтверждения "" , подкрепленного полной безопасностью системы.
Предварительное подтверждение можно рассматривать как еще один пример гибридной системы, похожей на гибрид "plasma / validium", упомянутый выше, но на этот раз гибридизирующей между rollup (или validium), имеющей полную безопасность, но высокую задержку, и системой с гораздо более низким уровнем безопасности, имеющей низкую задержку. Приложения, которым нужна меньшая задержка, получают меньшую безопасность, но могут жить в той же экосистеме, что и приложения, которых устраивает большая задержка в обмен на максимальную безопасность.
Еще одна менее продуманная, но все же очень важная форма связи связана со способностью системы читать блокчейн Ethereum. В частности, это включает в себя возможность возврата, если Ethereum вернется. Чтобы понять, почему это так важно, рассмотрим следующую ситуацию:

Предположим, что, как показано на диаграмме, цепочка Ethereum возвращается. Это может быть временная заминка в течение эпохи, когда цепочка не завершилась, или же это может быть период неактивности, когда цепочка не завершается в течение длительного времени, потому что слишком много валидаторов находятся вне сети.
Наихудший сценарий, который может возникнуть в результате этого, следующий. Предположим, что первый блок из верхней цепочки считывает некоторые данные из самого левого блока в цепочке Ethereum. Например, кто-то на Ethereum вносит 100 ETH в верхнюю цепочку. Затем Ethereum возвращается назад. Однако верхняя цепочка не возвращается. В результате будущие блоки верхней цепочки корректно следуют за новыми блоками из новой корректной цепочки Ethereum, но последствия теперь уже ошибочного старого звена (а именно, депозита в 100 ETH) по-прежнему остаются в верхней цепочке. Этот эксплойт может позволить печатать деньги, превращая мостовой ETH на верхней цепочке в дробный резерв.
Есть два способа решить эту проблему:
Обратите внимание, что в (1) есть один крайний случай. Если в результате атаки на 51% Ethereum будут созданы два новых несовместимых блока, которые окажутся завершенными одновременно, то верхняя цепочка вполне может заблокировать не тот из них (т.е. тот, которому социальный консенсус Ethereum в конечном счете не благоприятствует), и придется вернуться, чтобы переключиться на правильный вариант. Пожалуй, нет необходимости писать код для обработки этого случая заранее; его можно просто обработать, выполнив хардфорк верхней цепочки.
Способность цепочки беспрепятственно считывать Ethereum ценна по двум причинам:
Предположим, что верхняя цепочка начинается как отдельная цепочка, а затем кто-то размещает на Ethereum мостовой контракт. Мостовой контракт - это просто контракт, который принимает заголовки блоков верхней цепочки, проверяет, что любой переданный ему заголовок имеет действительный сертификат, подтверждающий, что он был принят консенсусом верхней цепочки, и добавляет этот заголовок в список. Приложения могут быть построены поверх этого, чтобы реализовать такие функции, как внесение и снятие токенов. Как только такой мост будет введен в действие, обеспечит ли он какие-либо гарантии сохранности активов, о которых мы говорили ранее?

Пока еще нет! По двум причинам:
Теперь давайте сделаем мост проверяющим: он будет проверять не только консенсус, но и ZK-SNARK, доказывающий, что состояние любого нового блока было вычислено правильно.
Как только это будет сделано, валидаторы верхней цепочки больше не смогут украсть Ваши средства. Они могут опубликовать блок с недоступными данными, не позволяя всем вывести средства, но они не могут украсть (за исключением попытки получить выкуп за пользователей в обмен на раскрытие данных, которые позволят им вывести средства). Это та же модель безопасности, что и валидиум.
Однако мы все еще не решили вторую проблему: верхняя цепочка не может читать Ethereum.
Для этого нам нужно сделать одну из двух вещей:

Фиолетовые ссылки могут быть либо хэш-ссылками, либо мостовым контрактом, который проверяет консенсус Ethereum.
Достаточно ли этого? Как выяснилось, по-прежнему нет, из-за нескольких небольших крайних случаев:
Атака на 51% Ethereum приведет к тем же последствиям, что и атака на 51% верхней цепочки, но в обратном порядке. Жесткая развилка Ethereum может привести к тому, что мост Ethereum внутри верхней цепочки перестанет действовать. Социальное обязательство возвращаться, если Ethereum отменяет завершенный блок, и делать хардфорк, если Ethereum делает хардфорк, - это самый чистый способ решить эту проблему. Такое обязательство, вполне возможно, никогда не нужно будет выполнять: Вы можете попросить гаджет управления на верхней цепочке активироваться, если он видит доказательство возможной атаки или хард форка, и выполнять хард форк верхней цепочки только в том случае, если гаджет управления не сработает.
Единственный приемлемый ответ на вопрос (3) - это, к сожалению, наличие в Ethereum некоего устройства управления, которое может заставить мостовой контракт на Ethereum знать о хардфорках верхней цепочки.
Резюме: двухсторонних валидирующих мостов почти достаточно, чтобы сделать цепочку валидной. Главный оставшийся ингредиент - это социальное обязательство, что если в Ethereum произойдет что-то исключительное, из-за чего мост перестанет работать, другая цепочка проведет хардфорк в ответ.
Существует два ключевых аспекта связи "с Ethereum":
Они оба важны, но имеют разные аспекты. В обоих случаях существует спектр:

Обратите внимание, что оба измерения имеют два различных способа измерения (так что на самом деле их четыре?): безопасность вывода средств можно измерить (i) уровнем безопасности и (ii) тем, какой процент пользователей или сценариев использования выигрывает от самого высокого уровня безопасности, а безопасность чтения можно измерить (i) тем, насколько быстро цепочка может читать блоки Ethereum, особенно финализированные блоки по сравнению с любыми блоками, и (ii) силой социальных обязательств цепочки по обработке крайних случаев, таких как атаки 51% и жесткие форки.
Проекты во многих регионах этого дизайнерского пространства имеют свою ценность. Для некоторых приложений важна высокая безопасность и тесная связь. Для других приемлемо что-то более свободное в расчете на большую масштабируемость. Во многих случаях оптимальным вариантом будет начать с чего-то более слабого сегодня и перейти к более жесткому соединению в течение следующего десятилетия по мере совершенствования технологий.





