web3 enthusiast
web3 enthusiast

Subscribe to Ooozo

Subscribe to Ooozo
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers

Scroll — это zkRollup, эквивалентный EVM, для масштабирования Ethereum. С технической точки зрения Scroll состоит из двух основных частей. Основной частью является zkEVM, который используется для подтверждения правильности выполнения EVM на уровне 2. Мы создавали его открыто с группой исследований конфиденциальности и масштабирования в Ethereum Foundation более года. Но чтобы превратить zkEVM в полноценный zkRollup на Ethereum, нам также необходимо построить вокруг него полную архитектуру L2.
В этом посте мы даем обзор общей архитектуры Scroll. В частности, мы рассмотрим начальную версию Scroll, состоящую из централизованного узла секвенирования и децентрализованной сети проверки. Мы намерены децентрализовать набор узлов секвенирования в будущем и поделимся нашим проектом для этого в будущих статьях.
Текущая архитектура состоит из трех компонентов инфраструктуры (см. рис. 1):
Scroll узел: создает блоки L2 из пользовательских транзакций, фиксирует их на базовом уровне Ethereum и передает сообщения между L1 и L2.
Roller сеть: генерирует доказательства достоверности zkEVM, чтобы доказать, что транзакции выполняются правильно.
Контракты Моста и Роллапа: обеспечивает доступность данных для транзакций Scroll, проверяет доказательства достоверности zkEVM и позволяет пользователям перемещать активы между Ethereum и Scroll.
Далее мы подробно остановимся на роли каждого из этих компонентов.

Scroll узел — это основной способ взаимодействия приложений и пользователей с Scroll. Он состоит из трех модулей: Sequencer, Coordinator и Relayer.
Sequencer предоставляет интерфейс JSON-RPC и принимает транзакции L2. Каждые несколько секунд он извлекает пакет транзакций из мемпула L2 и выполняет их для создания нового блока L2 и нового корня состояния. Наша реализация секвенсора основана на Go-Ethereum (Geth), одной из самых популярных реализаций узлов Ethereum. Разветвляя Geth, мы можем добиться наилучшей совместимости и унаследовать безопасность, выдержавшую испытание временем.
Как только новый блок сгенерирован, Координатор уведомляется и получает трассировку выполнения этого блока от Sequencer. Затем он отправляет трассировку выполнения случайно выбранному роллеру из пула роллеров для создания доказательства.
Relayer наблюдает за мостовыми и роллап контрактами, развернутыми как на Ethereum, так и на Scroll. У него две основные обязанности. Во-первых, он отслеживает роллап контракт, чтобы отслеживать состояние блоков L2, включая доступность их данных и подтверждение достоверности. Во-вторых, он отслеживает события депозита и вывода из мостовых контрактов, развернутых как на Ethereum, так и на Scroll, и передает сообщения с одной стороны на другую.
Роллеры служат в качестве доказывающих в сети, которые отвечают за создание доказательств достоверности для zkRollup. Ожидается, что ролееры будут использовать ускорители, такие как графические процессоры, FPGA и ASIC, чтобы сократить время и стоимость доказаний. На рис. 2 показано, как роллер генерирует подтверждение достоверности для каждого блока. Процесс состоит из следующих шагов:
Роллер сначала преобразует трассировку выполнения, полученную от Координатора, в свидетелей цепи.
Он генерирует доказательства для каждой из схем zkEVM.
Наконец, он использует агрегацию доказательств для объединения доказательств из нескольких цепей zkEVM в доказательство одного блока.

Scroll подключается к базовому уровню Ethereum через смарт-контракты Rollup и Bridge. Вместе они обеспечивают доступность данных для транзакций L2 и позволяют пользователям передавать активы и сообщения между L1 и L2.
Контракт Rollup получает корни состояния L2 и блоки от Sequencer. Он хранит корни состояния в состоянии Ethereum и данные блока L2 как данные вызовов Ethereum. Это обеспечивает доступность данных для Scroll блоков и использует безопасность Ethereum, чтобы индексаторы, включая Scroll Relayer, могли реконструировать блоки L2. Как только доказательство блока, устанавливающее действительность блока L2, подтверждено контрактом Rollup, соответствующий блок считается завершенным в Scroll.
Bridge контракты, развернутые в Ethereum и Scroll, позволяют пользователям передавать произвольные сообщения между уровнями L1 и L2. В дополнение к этому протоколу передачи сообщений мы также создали не требующий доверия протокол моста, позволяющий пользователям соединять активы ERC-20 в обоих направлениях. Чтобы отправить сообщение или средства из Ethereum в Scroll, пользователи вызывают транзакцию sendMessage в контракте Bridge. Relayer проиндексирует эту транзакцию на L1 и отправит ее в Sequencer для включения в блок L2. Для отправки сообщений из Scroll обратно в Ethereum используется аналогичный процесс в контракте L2 Bridge.
Объединив эти три архитектурных элемента, мы теперь можем объяснить рабочий процесс zkRollup в Scroll, показанный на рис. 3 ниже.

Блоки L2 в Scroll генерируются, фиксируются на базовом уровне Ethereum и завершаются в следующей последовательности шагов:
Sequencer генерирует последовательность блоков. Для i-го блока Sequencer генерирует трассу выполнения T и отправляет ее Координатору. Между тем, он также отправляет данные транзакции D в качестве данных вызова в контракт Rollup на Ethereum для доступности данных и результирующих корней состояния и обязательств по данным транзакции в контракт Rollup в качестве состояния.
Координатор случайным образом выбирает роллера для создания доказательства достоверности для каждой трассировки блока. Чтобы ускорить процесс генерации доказательвств, доказательства для разных блоков могут создаваться параллельно на разных роллерах.
После создания доказательства блока P для i-го блока роллер отправляет его обратно координатору. Каждые k блоков координатор отправляет задачу агрегирования другому роллеру для объединения k блоков доказательств в одно совокупное доказательство A.
Наконец, координатор отправляет совокупное доказательство A в контракт Scroll, чтобы завершить блоки L2 с i+1 по i+k, сверив совокупное доказательство с корнями состояния и обязательствами по данным транзакций, ранее отправленными в rollup контракт.
На рисунке 3 показано, что блоки Scroll будут завершены на L1 в многоэтапном процессе. Каждый блок L2 будет проходить следующие три этапа, пока не будет завершен.
Предварительно зафиксированый (Precommitted) статус указывает, что блок был предложен Sequencer и отправлен Rollers. Хотя предварительно зафиксрованые блоки еще не являются канонической частью цепочки Scroll L2, потому что они не были размещены на базовом уровне Ethereum, пользователи, которые доверяют Sequencer, могут принять меры в отношении них.
Зафиксированый (Committed) указывает, что данные транзакции этого блока были опубликованы в накопительном контракте на Ethereum. Это гарантирует, что данные блока доступны, но не доказывает, что они были выполнены корректным образом.
Завершенный (Finalized) указывает на то, что правильное выполнение транзакций в этом блоке было подтверждено проверкой подтверждения достоверности в сети Ethereum. Завершенные блоки считаются каноническими частями цепочки Scroll L2.
Собрав все это вместе, Scroll может выполнять собственный байт-код EVM на L2, наследуя надежные гарантии безопасности от базового уровня Ethereum. В следующем посте этой серии мы объясним рабочий процесс для разработчиков по развертыванию децентрализованных приложений на Scroll и то, как пользователи могут взаимодействовать с ними.
Мы разработали архитектуру Scroll в соответствии с нашим видением и ценностями, а также нашими техническими принципами. В следующих статьях мы объясним, как Scroll будет использовать эту архитектуру, чтобы обеспечить более масштабируемый опыт пользователей и разработчиков в Ethereum. Оставайтесь с нами, чтобы узнать больше, и зарегистрируйтесь, чтобы попробовать нашу предварительную альфа-тестовую сеть на signup.scroll.io!
Если наше видение масштабирования Ethereum управляемым сообществом и открытым способом находит отклик у вас, мы ищем единомышленников, которые помогут Scroll стать самым удобным для разработчиков и пользователей решением для масштабирования Ethereum.
Если вы исследователь ZK, разработчик ZKP, Go или Solidity или инженер GPU, мы работаем над множеством интересных технических задач на грани возможного. Приходите создавать передовые решения этих проблем вместе с нами под открытым небом!
Если вам нравится взращивать и развивать экосистемы или сообщества, мы ищем защитников разработчиков и организаторов сообществ, чтобы убедиться, что мы строим способом ориентированого на сообщество и удобно го для пользователя.
Чтобы узнать больше об этих ролях и о Scroll, посетите наш веб-сайт, Twitter, Discord или страницу вакансий. Если вы хотите сразу перейти к коду и строить вместе с нами, вы можете найти наши репозитории на github.com/scroll-tech и github.com/privacy-scaling-explorations/zkevm-circuits.

Scroll — это zkRollup, эквивалентный EVM, для масштабирования Ethereum. С технической точки зрения Scroll состоит из двух основных частей. Основной частью является zkEVM, который используется для подтверждения правильности выполнения EVM на уровне 2. Мы создавали его открыто с группой исследований конфиденциальности и масштабирования в Ethereum Foundation более года. Но чтобы превратить zkEVM в полноценный zkRollup на Ethereum, нам также необходимо построить вокруг него полную архитектуру L2.
В этом посте мы даем обзор общей архитектуры Scroll. В частности, мы рассмотрим начальную версию Scroll, состоящую из централизованного узла секвенирования и децентрализованной сети проверки. Мы намерены децентрализовать набор узлов секвенирования в будущем и поделимся нашим проектом для этого в будущих статьях.
Текущая архитектура состоит из трех компонентов инфраструктуры (см. рис. 1):
Scroll узел: создает блоки L2 из пользовательских транзакций, фиксирует их на базовом уровне Ethereum и передает сообщения между L1 и L2.
Roller сеть: генерирует доказательства достоверности zkEVM, чтобы доказать, что транзакции выполняются правильно.
Контракты Моста и Роллапа: обеспечивает доступность данных для транзакций Scroll, проверяет доказательства достоверности zkEVM и позволяет пользователям перемещать активы между Ethereum и Scroll.
Далее мы подробно остановимся на роли каждого из этих компонентов.

Scroll узел — это основной способ взаимодействия приложений и пользователей с Scroll. Он состоит из трех модулей: Sequencer, Coordinator и Relayer.
Sequencer предоставляет интерфейс JSON-RPC и принимает транзакции L2. Каждые несколько секунд он извлекает пакет транзакций из мемпула L2 и выполняет их для создания нового блока L2 и нового корня состояния. Наша реализация секвенсора основана на Go-Ethereum (Geth), одной из самых популярных реализаций узлов Ethereum. Разветвляя Geth, мы можем добиться наилучшей совместимости и унаследовать безопасность, выдержавшую испытание временем.
Как только новый блок сгенерирован, Координатор уведомляется и получает трассировку выполнения этого блока от Sequencer. Затем он отправляет трассировку выполнения случайно выбранному роллеру из пула роллеров для создания доказательства.
Relayer наблюдает за мостовыми и роллап контрактами, развернутыми как на Ethereum, так и на Scroll. У него две основные обязанности. Во-первых, он отслеживает роллап контракт, чтобы отслеживать состояние блоков L2, включая доступность их данных и подтверждение достоверности. Во-вторых, он отслеживает события депозита и вывода из мостовых контрактов, развернутых как на Ethereum, так и на Scroll, и передает сообщения с одной стороны на другую.
Роллеры служат в качестве доказывающих в сети, которые отвечают за создание доказательств достоверности для zkRollup. Ожидается, что ролееры будут использовать ускорители, такие как графические процессоры, FPGA и ASIC, чтобы сократить время и стоимость доказаний. На рис. 2 показано, как роллер генерирует подтверждение достоверности для каждого блока. Процесс состоит из следующих шагов:
Роллер сначала преобразует трассировку выполнения, полученную от Координатора, в свидетелей цепи.
Он генерирует доказательства для каждой из схем zkEVM.
Наконец, он использует агрегацию доказательств для объединения доказательств из нескольких цепей zkEVM в доказательство одного блока.

Scroll подключается к базовому уровню Ethereum через смарт-контракты Rollup и Bridge. Вместе они обеспечивают доступность данных для транзакций L2 и позволяют пользователям передавать активы и сообщения между L1 и L2.
Контракт Rollup получает корни состояния L2 и блоки от Sequencer. Он хранит корни состояния в состоянии Ethereum и данные блока L2 как данные вызовов Ethereum. Это обеспечивает доступность данных для Scroll блоков и использует безопасность Ethereum, чтобы индексаторы, включая Scroll Relayer, могли реконструировать блоки L2. Как только доказательство блока, устанавливающее действительность блока L2, подтверждено контрактом Rollup, соответствующий блок считается завершенным в Scroll.
Bridge контракты, развернутые в Ethereum и Scroll, позволяют пользователям передавать произвольные сообщения между уровнями L1 и L2. В дополнение к этому протоколу передачи сообщений мы также создали не требующий доверия протокол моста, позволяющий пользователям соединять активы ERC-20 в обоих направлениях. Чтобы отправить сообщение или средства из Ethereum в Scroll, пользователи вызывают транзакцию sendMessage в контракте Bridge. Relayer проиндексирует эту транзакцию на L1 и отправит ее в Sequencer для включения в блок L2. Для отправки сообщений из Scroll обратно в Ethereum используется аналогичный процесс в контракте L2 Bridge.
Объединив эти три архитектурных элемента, мы теперь можем объяснить рабочий процесс zkRollup в Scroll, показанный на рис. 3 ниже.

Блоки L2 в Scroll генерируются, фиксируются на базовом уровне Ethereum и завершаются в следующей последовательности шагов:
Sequencer генерирует последовательность блоков. Для i-го блока Sequencer генерирует трассу выполнения T и отправляет ее Координатору. Между тем, он также отправляет данные транзакции D в качестве данных вызова в контракт Rollup на Ethereum для доступности данных и результирующих корней состояния и обязательств по данным транзакции в контракт Rollup в качестве состояния.
Координатор случайным образом выбирает роллера для создания доказательства достоверности для каждой трассировки блока. Чтобы ускорить процесс генерации доказательвств, доказательства для разных блоков могут создаваться параллельно на разных роллерах.
После создания доказательства блока P для i-го блока роллер отправляет его обратно координатору. Каждые k блоков координатор отправляет задачу агрегирования другому роллеру для объединения k блоков доказательств в одно совокупное доказательство A.
Наконец, координатор отправляет совокупное доказательство A в контракт Scroll, чтобы завершить блоки L2 с i+1 по i+k, сверив совокупное доказательство с корнями состояния и обязательствами по данным транзакций, ранее отправленными в rollup контракт.
На рисунке 3 показано, что блоки Scroll будут завершены на L1 в многоэтапном процессе. Каждый блок L2 будет проходить следующие три этапа, пока не будет завершен.
Предварительно зафиксированый (Precommitted) статус указывает, что блок был предложен Sequencer и отправлен Rollers. Хотя предварительно зафиксрованые блоки еще не являются канонической частью цепочки Scroll L2, потому что они не были размещены на базовом уровне Ethereum, пользователи, которые доверяют Sequencer, могут принять меры в отношении них.
Зафиксированый (Committed) указывает, что данные транзакции этого блока были опубликованы в накопительном контракте на Ethereum. Это гарантирует, что данные блока доступны, но не доказывает, что они были выполнены корректным образом.
Завершенный (Finalized) указывает на то, что правильное выполнение транзакций в этом блоке было подтверждено проверкой подтверждения достоверности в сети Ethereum. Завершенные блоки считаются каноническими частями цепочки Scroll L2.
Собрав все это вместе, Scroll может выполнять собственный байт-код EVM на L2, наследуя надежные гарантии безопасности от базового уровня Ethereum. В следующем посте этой серии мы объясним рабочий процесс для разработчиков по развертыванию децентрализованных приложений на Scroll и то, как пользователи могут взаимодействовать с ними.
Мы разработали архитектуру Scroll в соответствии с нашим видением и ценностями, а также нашими техническими принципами. В следующих статьях мы объясним, как Scroll будет использовать эту архитектуру, чтобы обеспечить более масштабируемый опыт пользователей и разработчиков в Ethereum. Оставайтесь с нами, чтобы узнать больше, и зарегистрируйтесь, чтобы попробовать нашу предварительную альфа-тестовую сеть на signup.scroll.io!
Если наше видение масштабирования Ethereum управляемым сообществом и открытым способом находит отклик у вас, мы ищем единомышленников, которые помогут Scroll стать самым удобным для разработчиков и пользователей решением для масштабирования Ethereum.
Если вы исследователь ZK, разработчик ZKP, Go или Solidity или инженер GPU, мы работаем над множеством интересных технических задач на грани возможного. Приходите создавать передовые решения этих проблем вместе с нами под открытым небом!
Если вам нравится взращивать и развивать экосистемы или сообщества, мы ищем защитников разработчиков и организаторов сообществ, чтобы убедиться, что мы строим способом ориентированого на сообщество и удобно го для пользователя.
Чтобы узнать больше об этих ролях и о Scroll, посетите наш веб-сайт, Twitter, Discord или страницу вакансий. Если вы хотите сразу перейти к коду и строить вместе с нами, вы можете найти наши репозитории на github.com/scroll-tech и github.com/privacy-scaling-explorations/zkevm-circuits.
No activity yet