Scroll — это zkRollup, эквивалентный EVM, для масштабирования Ethereum. С технической точки зрения Scroll состоит из двух основных частей. Основной частью является zkEVM , который используется для подтверждения правильности выполнения EVM на уровне 2. Мы создавали его открыто с группой исследований конфиденциальности и масштабирования в Ethereum Foundation более года. Но чтобы превратить zkEVM в полноценный zkRollup на Ethereum, нам также необходимо построить вокруг него полную архитектуру L2.
В этом посте мы даем обзор общей архитектуры Scroll. В частности, мы рассмотрим начальную версию Scroll, состоящую из централизованного узла секвенирования и децентрализованной сети проверки. Мы намерены децентрализовать набор узлов секвенирования в будущем и поделимся нашим проектом для этого в будущих статьях.
Текущая архитектура состоит из трех составляющих (см. рис. 1):
Узел прокрутки: создает блоки L2 из явных транзакций, фиксирует их на базовом уровне Ethereum и передает сообщения между L1 и L2.
Роликовая оценка: обнаружение выявления zkEVM, чтобы выяснить, что измерение измерения правильно.
Сводные и промежуточные контракты: требуется доступность данных для транзакций Scroll, есть вероятность обнаружения zkEVM и возможности использования мобильных устройств между Ethereum и Scroll.
Далее мы подробно останавливаемся на роликах каждого из компонентов.
Рисунок 1. Архитектура прокрутки
Узел прокрутки — это основной способ взаимодействия приложений и пользователей с прокруткой. Он состоит из трех модулей: Sequencer , Coordinator и Relayer .
Секвенсор предоставляет интерфейс JSON-RPC и захват L2. Каждый несколько секунд он получает пакет транзакций из мемпула L2 и выполняет их для создания нового блока L2 и нового состояния сердца. Наша реализация секвенсора права на Go-Ethereum (Geth), одна из самых популярных реализаций узлов Ethereum. Разветвляя Geth, мы проводим испытания на лучшей имплантации и не следуем безопасности, выдержав испытание временем.
Как только новый блок сгенерирован, Координатор уведомляется и получает трассировку выполнения блока от Sequencer. Затем он отправляет трассировку случайного выполнения выбранному ролику из пула роликов для создания защиты.
Relayer наблюдает за мостовыми и накопительными контрактами, как на Ethereum, так и на Scroll. У него две основные обязанности. Во-первых, он отслеживает накопительный контракт, чтобы обеспечить состояние блоков L2, включая доступность их данных и подтверждение наличия. Во-вторых, он отслеживает события депозита и вывод из мостовых контрактов, доступных как на Ethereum, так и на Scroll, и передает сообщения с одной стороны на чужие.
Роллеры встречаются в качестве доказывающих в сети, которые проверяют создание подлинности для zkRollup . Ожидается, что ролики будут использовать ускорители, такие как графические процессоры, FPGA и ASIC, чтобы сократить время и стоимость испытаний. На рис. 2 показывают, как Roller подтверждает наличие для каждого блока. Процесс состоит из следующих шагов:
Роллер сначала преобразует трассировку выполнения, полученную от координатора , в свидетелях цепи.
Он требует проверки для каждой схемы zkEVM .
Наконец, он использует агрегацию доказательств для объединения нескольких цепей zkEVM в доказательство одного блока.
Рисунок 2. Рабочий процесс ролика
Scroll подключается к базовой скорости Ethereum через смарт-контракты Rollup и Bridge. Вместе они требуют доступа к данным для транзакций L2 и передают активы и сообщения между L1 и L2.
Контракт Rollup получает состояние L2 и блоки от Sequencer. Он хранит исходное состояние в состоянии Ethereum и данные блока L2, как данные вызывают Ethereum. Это требует доступа к массивам данных для прокрутки блоков и использует безопасность Ethereum, чтобы собирать, что включает в себя Scroll Relayer, реконструировать блоки L2. Как только наличие доказательство блока, устанавливающее блок L2, подтверждено контрактом Rollup, блок считается завершенным при прокрутке.
Контракты Bridge, бесплатные в Ethereum и Scroll, переносимые платежные сообщения между уровнями L1 и L2. Дополнены к этому протоколу передачи сообщений, которые также не требуют доверия к протоколу моста, который должен подключать активные соединения ERC-20 в соединениях. Отправить сообщение или сообщение от Ethereum в Scroll, используемом для sendMessageоценки по контракту Bridge. Relayer проиндексирует эту транзакцию на L1 и отправляет ее Sequencer для включения в блок L2. Для отправки сообщений из Scroll обратно в Ethereum используется аналогичный процесс в контракте L2 Bridge.
Объединив эти триархитектурные элементы, мы теперь организуем применение рабочего процесса zkRollup в Scroll, нашел на рис. 3 ниже.
Рисунок 3. Рабочий процесс прокрутки
Блоки L2 в прокрутке заражения фиксируются на базовом уровне Ethereum и завершаются в следующих шагах:
Секвенсор использует последовательность блоков. Для i -го блока Секвенсор требует трассу выполнения T и отправляет ее Координатору. Контракт тем, он также отправляет данные по счетчикам в качестве данных о вызовах в сводке на Ethereum для доступности данных и результирующих данных о состоянии сети и достижениях по вычисленным числам в сводке контрактов в качестве состояния.
Координатор случайным образом выбирает ролик для проверки блокировки для каждой трассировки. Чтобы увеличить процесс генерации проб, пробы для разных блоков заражения разъемами на разных роликах.
После подтверждения блокировки P для i -го блока ролик отправляет его обратно координатору. Через несколько k блоков координатор отправляет массивы агрегирования другого ролика для объединения k блоков проверки в одно агрегированное доказательство A .
Наконец, координатор отправляет совокупное доказательство A в свертки контракта, чтобы подтвердить блоки L2 с i+1 по i+k , сверяет совокупное доказательство с основами состояния и обязательствами по данным транзакциям, ранее отправленными в свертки контракта.
На рисунке 3 показано, что блоки прокрутки будут завершены на L1 в многоэтапном процессе. Каждый блок L2 будет проходить три этапа, пока не будет завершен.
Precommittedо том, что блок был предложен секвенсором и отправлен роликам. Несмотря на то, что блоки Precommitted еще не являются канонической частью цепочки Scroll L2, потому что они не были размещены на базовом уровне Ethereum, приложения, объекты доверяют Sequencer, могут принять меры в отношении их в ожидании.Committedданные об этом блоке были опубликованы в накопительном контракте на Ethereum. Это означает, что данные блокировки изменились, но не доказывают, что они выполнялись корректирующим образом.Finalizedо том, что правильное выполнение транзакций в этом блоке было подтверждено наличием в сети Ethereum. Завершенные блоки учитывают канонические части цепей Scroll L2.
Собрав все это вместе, Scroll может реализовать байт-код EVM на L2, наследуя гарантии безопасности от базового уровня Ethereum. В дальнейшем мы объясним рабочий процесс для развертывания по развертыванию децентрализованных приложений на прокрутке и то, как серии приложений в играх с ними.
Мы разработали архитектуру Scroll в соответствии с общепринятыми видами и ценностями, а также с учетом технических принципов . В последующих статьях мы объясним, как Scroll будет использовать эту архитектуру, чтобы использовать более масштабируемых опытных пользователей и использовать их в Ethereum. Оставайтесь с нами, чтобы узнать больше, и зарегистрируйтесь, чтобы проверить предварительную альфа-тестовую сеть на signup.scroll.io !
Если наше видение масштабирования Эфириум использует и использует для масштабирования Эфириум, то мы используем его как единое целое.
Если вы исследователь ZK, ZKP, Go или Solidity или инженер GPU, мы работаем над исполнением сложных технических задач на грани возможного. Приходите создавать передовые решения проблем вместе с нами под американским небом!
Если вам нравится развивать и развивать экосистемы или сообщества, мы ищем защитников охвата и организаторов сообществ, чтобы быть уверенными, что мы строим ориентированным на сообщество и используем для пользователей способ.
Чтобы узнать больше об этих ролях и о Scroll, посетите наш веб-сайт , Twitter , Discord или страницу вакансий . Если вы хотите сразу перейти к коду и построить вместе с нами, вы можете найти наши репозитории на github.com/scroll-tech и github.com/privacy-scaling-explorations/zkevm-circuits .
