*Переслать оригинальное название:Исследование моста Canonical Ethereum Bridge и системы доказательств Eclipse
Eclipse состоит из трех слоев:
На схеме ниже показано, как взаимодействуют эти модули:
Остальная часть этой статьи будет посвящена мосту Eclipse для Ethereum, как показано на схеме. Blobstream будет передавать аттестаты, подписанные набором валидаторов Celestia, чтобы подтвердить Ethereum, что данные для партии слотов Eclipse были опубликованы правильно. Это позволяет мосту Eclipse сверять данные, предоставленные для доказательства мошенничества, с подписанными корнями данных из Celestia. В оставшейся части этого раздела мы расскажем о процессах, с помощью которых:
Поток, когда пользователь пополняет счет в Eclipse через собственный мост Ethereum, вкратце выглядит следующим образом:
На схеме ниже показано взаимодействие между Ethereum, Celestia и исполнителем SVM во время потока вкладов, описанного выше:
Ниже приводится схема публикации партий слотов Eclipse в Celestia в виде блоков данных:
Приведенная ниже диаграмма от Celestia объясняет, как обязательства по данным в данном блоке Celestia хранятся в заголовке блока:
Подобно другим L2, использующим доказательства мошенничества (Arbitrum, Fuel и многие другие), вывод средств из Eclipse требует периода испытания, в течение которого верификаторы могут представить доказательства мошенничества в случае недействительного перехода состояния:
В этом заключительном разделе мы подробно расскажем о дизайне системы доказательства мошенничества в Eclipse, вдохновленной Анатолием Яковенко и Джоном Адлером. Как правило, для любого доказательства мошенничества верификатор должен:
В случае Eclipse, (1) Celestia мерклизирует блобы партий блоков, которые размещает SVM-исполнитель Eclipse, что позволяет доказать включение транзакций с помощью свидетелей Меркла. Что касается (2), то в отличие от EVM-ориентированных L2, которые размещают корень Меркла в глобальном дереве состояний, по соображениям производительности Eclipse не обновляет глобальное дерево состояний от транзакции к транзакции, но ниже мы более подробно объясним, как мы обеспечиваем корректность вводимых данных. Наконец, в случае (3) верификатор Eclipse генерирует zk-доказательство вывода(ов) для данной транзакции, в отличие от интерактивного игрового подхода к верификации, распространенного в L2 на базе EVM.
Все транзакции Eclipse можно представить как получение списка входных счетов, выполнение транзакции и получение списка выходных счетов:
Критическое наблюдение для нашего проекта доказательства мошенничества заключается в том, что при выполнении транзакции всегда так, что любой S_InputAccount должен был быть S_OutputAccount какой-то предыдущей транзакции. Это позволяет нам ссылаться на последнюю транзакцию в цепочке, которая произвела данный входной счет, вместо того, чтобы предоставлять свидетеля Меркла к глобальному дереву состояний. В результате нашей разработки мы ввели дополнительные типы обвинений в мошенничестве, такие как ссылка на то, что предыдущая транзакция не была действительной или входной счет уже был "потрачен" какой-то более поздней транзакцией. Ниже мы описываем этот процесс более подробно:
Кроме того, партии данных о транзакциях, размещенные в Celestia, передают свои обязательства в контракт Ethereum. Обязательства состоят из:
Как объяснялось выше, существует несколько способов, с помощью которых партия может быть признана неправильной:
Если какая-либо партия обязательств окажется неверной, мостовой контракт Eclipse откатит мост до уровня последней доказанно верной партии обязательств. Обратите внимание, что транзакции никогда не удаляются из цепочки, даже в случае мошенничества, так что только обязательства должны быть вычислены заново.
Цель этой статьи - дать высокоуровневое руководство по мосту Eclipse с минимальным уровнем доверия на Ethereum и рассказать о некоторых деталях нашей конструкции доказательства мошенничества. Учитывая модульную природу нашего L2 и зарождение нашего технологического стека, мы продолжим выпускать статьи и документацию по различным аспектам Eclipse в ближайшие недели.
Чтобы принять участие в работе Eclipse Testnet, следуйте нашим инструкциям здесь. Вы можете связаться с нами в Twitter или Discord, чтобы задать конкретные вопросы о нашем Testnet, мосте или технические вопросы.
[1]: Узел, который вычисляет результаты транзакций SVM и применяет конечный результат к новому состоянию Eclipse
[2]: Оператор, который передает события в цепи между Ethereum и Eclipse.
[3]: Обратите внимание, что это пишет исполнитель, а не секвенсор. Если бы она была включена в данные, публикуемые секвенсором, это усложнило бы задачу: секвенсор мог бы пропустить счет, что сделало бы невозможным правильное выполнение работы исполнителем. Это можно компенсировать в конструкции, защищающей от мошенничества, но это добавит дополнительные сложности. Второе преимущество того, чтобы только исполнитель публиковал счетчик, заключается в том, что это позволяет легко разрешить транзакциям переопределения публиковаться в Celestia, если это необходимо.
[4]: Учетные записи SVM могут быть представлены уникальным хэшем. Единственный способ изменения этого хэша - транзакция.
[5]: Чтобы сделать это без чрезмерного хэширования, мы будем отслеживать каждую выполненную программу, чтобы увидеть, какие части каждой используемой sysvar были на самом деле доступны. Это возможно, но потребует изменения BPF-интерпретатора Solana.
[6]: Сюда входят данные о попытках транзакций, которые не удалось выполнить.
*Переслать оригинальное название:Исследование моста Canonical Ethereum Bridge и системы доказательств Eclipse
Eclipse состоит из трех слоев:
На схеме ниже показано, как взаимодействуют эти модули:
Остальная часть этой статьи будет посвящена мосту Eclipse для Ethereum, как показано на схеме. Blobstream будет передавать аттестаты, подписанные набором валидаторов Celestia, чтобы подтвердить Ethereum, что данные для партии слотов Eclipse были опубликованы правильно. Это позволяет мосту Eclipse сверять данные, предоставленные для доказательства мошенничества, с подписанными корнями данных из Celestia. В оставшейся части этого раздела мы расскажем о процессах, с помощью которых:
Поток, когда пользователь пополняет счет в Eclipse через собственный мост Ethereum, вкратце выглядит следующим образом:
На схеме ниже показано взаимодействие между Ethereum, Celestia и исполнителем SVM во время потока вкладов, описанного выше:
Ниже приводится схема публикации партий слотов Eclipse в Celestia в виде блоков данных:
Приведенная ниже диаграмма от Celestia объясняет, как обязательства по данным в данном блоке Celestia хранятся в заголовке блока:
Подобно другим L2, использующим доказательства мошенничества (Arbitrum, Fuel и многие другие), вывод средств из Eclipse требует периода испытания, в течение которого верификаторы могут представить доказательства мошенничества в случае недействительного перехода состояния:
В этом заключительном разделе мы подробно расскажем о дизайне системы доказательства мошенничества в Eclipse, вдохновленной Анатолием Яковенко и Джоном Адлером. Как правило, для любого доказательства мошенничества верификатор должен:
В случае Eclipse, (1) Celestia мерклизирует блобы партий блоков, которые размещает SVM-исполнитель Eclipse, что позволяет доказать включение транзакций с помощью свидетелей Меркла. Что касается (2), то в отличие от EVM-ориентированных L2, которые размещают корень Меркла в глобальном дереве состояний, по соображениям производительности Eclipse не обновляет глобальное дерево состояний от транзакции к транзакции, но ниже мы более подробно объясним, как мы обеспечиваем корректность вводимых данных. Наконец, в случае (3) верификатор Eclipse генерирует zk-доказательство вывода(ов) для данной транзакции, в отличие от интерактивного игрового подхода к верификации, распространенного в L2 на базе EVM.
Все транзакции Eclipse можно представить как получение списка входных счетов, выполнение транзакции и получение списка выходных счетов:
Критическое наблюдение для нашего проекта доказательства мошенничества заключается в том, что при выполнении транзакции всегда так, что любой S_InputAccount должен был быть S_OutputAccount какой-то предыдущей транзакции. Это позволяет нам ссылаться на последнюю транзакцию в цепочке, которая произвела данный входной счет, вместо того, чтобы предоставлять свидетеля Меркла к глобальному дереву состояний. В результате нашей разработки мы ввели дополнительные типы обвинений в мошенничестве, такие как ссылка на то, что предыдущая транзакция не была действительной или входной счет уже был "потрачен" какой-то более поздней транзакцией. Ниже мы описываем этот процесс более подробно:
Кроме того, партии данных о транзакциях, размещенные в Celestia, передают свои обязательства в контракт Ethereum. Обязательства состоят из:
Как объяснялось выше, существует несколько способов, с помощью которых партия может быть признана неправильной:
Если какая-либо партия обязательств окажется неверной, мостовой контракт Eclipse откатит мост до уровня последней доказанно верной партии обязательств. Обратите внимание, что транзакции никогда не удаляются из цепочки, даже в случае мошенничества, так что только обязательства должны быть вычислены заново.
Цель этой статьи - дать высокоуровневое руководство по мосту Eclipse с минимальным уровнем доверия на Ethereum и рассказать о некоторых деталях нашей конструкции доказательства мошенничества. Учитывая модульную природу нашего L2 и зарождение нашего технологического стека, мы продолжим выпускать статьи и документацию по различным аспектам Eclipse в ближайшие недели.
Чтобы принять участие в работе Eclipse Testnet, следуйте нашим инструкциям здесь. Вы можете связаться с нами в Twitter или Discord, чтобы задать конкретные вопросы о нашем Testnet, мосте или технические вопросы.
[1]: Узел, который вычисляет результаты транзакций SVM и применяет конечный результат к новому состоянию Eclipse
[2]: Оператор, который передает события в цепи между Ethereum и Eclipse.
[3]: Обратите внимание, что это пишет исполнитель, а не секвенсор. Если бы она была включена в данные, публикуемые секвенсором, это усложнило бы задачу: секвенсор мог бы пропустить счет, что сделало бы невозможным правильное выполнение работы исполнителем. Это можно компенсировать в конструкции, защищающей от мошенничества, но это добавит дополнительные сложности. Второе преимущество того, чтобы только исполнитель публиковал счетчик, заключается в том, что это позволяет легко разрешить транзакциям переопределения публиковаться в Celestia, если это необходимо.
[4]: Учетные записи SVM могут быть представлены уникальным хэшем. Единственный способ изменения этого хэша - транзакция.
[5]: Чтобы сделать это без чрезмерного хэширования, мы будем отслеживать каждую выполненную программу, чтобы увидеть, какие части каждой используемой sysvar были на самом деле доступны. Это возможно, но потребует изменения BPF-интерпретатора Solana.
[6]: Сюда входят данные о попытках транзакций, которые не удалось выполнить.