Будет ли свиток управлять волной Layer2? И схемы zkEVM и аудит, которые вам нужно знать

СреднийDec 27, 2023
Эта статья содержит подробный анализ архитектуры и технологии Scroll, помогая читателям понять текущее состояние сети и будущие направления развития Scroll. В нем также объясняются схемы и проверки Scroll zkEVM.
Будет ли свиток управлять волной Layer2? И схемы zkEVM и аудит, которые вам нужно знать

10 октября в 14:00 мейннет Scroll, созданный на основе решения Ethereum Layer 2, сгенерировал свой первый блок, ознаменовав успешный запуск мейннета Scroll. По состоянию на 25 октября в сеть Scroll через межцепочечные мосты было подключено более 7600 ETH, и 24 децентрализованные торговые платформы начали работу в мэйннете Scroll, а общий объем TVL составил около $10 млн.

17 октября компания Scroll официально объявила о запуске своего мейннета, продолжая поддерживать свою приверженность открытому исходному коду и децентрализации. На следующем этапе Scroll сосредоточится на создании децентрализованной сети proof-of-stake и сортировщика. В этой статье мы дадим подробный анализ архитектуры и технологии Scroll, чтобы помочь всем понять текущее состояние сети и будущее направление развития Scroll. Мы также расскажем о схеме zkEVM от Scroll и знаниях по аудиту, которые помогут усилить меры безопасности для zk-проектов.

Кто такой Скролл, движущая сила волны Layer2?

Scroll - это решение для масштабирования Ethereum второго уровня, основанное на технологии доказательства нулевого знания и направленное на повышение пропускной способности и скорости транзакций в сети Ethereum. По сравнению с Optimistic Rollup, Scroll достигает масштабируемости за счет доказательств с нулевым знанием и ускоряет генерацию и проверку доказательств с нулевым знанием за счет аппаратного ускорения. Она стремится к достижению совместимости EVM на уровне байткода. Это означает, что разработчики могут напрямую использовать Solidity и связанные с Ethereum инструменты разработки для создания смарт-контрактов и развертывания их на Scroll без каких-либо модификаций.

Согласно официальному сайту Scroll, в настоящее время в команде Scroll 10 основных членов, распределенных по Азии, Америке и Европе. Члены команды имеют богатый опыт разработки zkRollup и работы в промышленности, большинство из них окончили престижные университеты и имеют степени PhD.

В настоящее время экосистема Scroll очень богата, в нее входят инфраструктурные проекты, включая кошельки, инструменты разработки, средства безопасности и многое другое. Цель - обеспечить всестороннюю поддержку проектов на протяжении всего жизненного цикла, от проектирования, разработки, эксплуатации до аудита безопасности. В настоящее время в майнете Scroll существует более 180 экосистемных проектов.

  1. Кошелек
    В настоящее время Scroll поддерживает почти все основные кошельки: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Кроме того, в экосистему кошельков Scroll также входят OKX Wallet, Versa Wallet и т.д.

  2. Межцепочечный мост
    Официальная межцепочечная инфраструктура Scroll включает в себя Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext и др. Кроме того, сюда также входят протокол межцепочечной ликвидности Synapse Protocol, Owlto Finance, специализирующийся на межцепочечных мостах второго уровня, межцепочечные мосты Ethereum первого и второго уровней Pheasant Network, Symbiosis, Catalyst и др.

  3. DeFi
    В экосистеме Scroll существует несколько хорошо зарекомендовавших себя проектов DeFi, включая кредитный протокол Aave, многоцепочечный DEX-агрегатор DODO, DEX SushiSwap, DEX-агрегатор OpenOcean, многоцепочечный DeFi протокол iZUMi Finance, DEX Syncswap, протокол доходности Pendle Finance, кредитный протокол dForce и агрегатор торговли с плечом MUX Protocol. Существуют также инновационные проекты, такие как GMX, которые не получили широкого распространения.

  4. Другие
    Что касается NFT, игр и социальных аспектов, то среди других проектов в экосистеме Scroll можно назвать NFTScan, платформу для решения задач Web3 QuestN, TaskOn, платформу для подписания электронных протоколов EthSign, Galaxy Blitz, OmniKingdoms и другие онлайн-игры на основе блокчейна.

Что отличает технологию Scroll от других?

1. Общая архитектура

Архитектура Scroll состоит из трех компонентов:

Узел Scroll: Он генерирует блоки в сети Scroll на основе пользовательских транзакций, отправляет эти транзакции на базовый уровень Ethereum и обрабатывает передачу сообщений между Ethereum и Scroll.

Роллер: Роллер отвечает за преобразование смарт-контрактов в схемы zkEVM, а затем генерирует доказательства для подтверждения правильности транзакций. В сети Scroll есть несколько роллеров, которые обрабатывают транзакции параллельно и ускоряют генерацию доказательств с помощью аппаратного обеспечения. Scroll достигает совместимости с EVM на уровне байткода, напрямую доказывая корректность обработки байткода EVM.

Контракты Rollup и Bridge: Эти контракты обеспечивают доступность данных для транзакций с прокруткой и проверяют доказательства валидности, генерируемые zkEVM. Можно сказать, что Scroll связан с базовым уровнем Ethereum через контракты Rollup и Bridge. С помощью этих контрактов пользователи могут обмениваться произвольными сообщениями между Ethereum и Scroll, а также передавать активы ERC-20 в любом направлении с помощью шлюзовых контрактов.


источник: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

Свиток - это основной контракт, развернутый на блокчейне Ethereum:.

Контракт прокси-маршрутизатора шлюза (обеспечивает правильное отображение токенов в межцепочечных операциях):0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

Контракт прокси-сообщения (передача сообщений между L1 и L2):0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

Стоит отметить, что эти контракты могут быть изменены администратором и владельцем прокси. Кроме того, в Scroll встроена функция "белого списка", которая позволяет регулировать плату за газ для определенных адресов в Scroll. В настоящее время секвенсор Scroll работает централизованно, что позволяет просматривать сообщения и транзакции в сети Scroll. Более того, есть возможность обойти любое сообщение в очереди сообщений и напрямую подтвердить конкретное сообщение.

2. Прокрутите рабочий процесс zkEVM

После того, как Scroll сгенерирует блок, он проходит через координатора и несколько проверяющих (Rollers) для создания агрегированных доказательств. Затем эти доказательства передаются на проверку контракту Ethereum Rollup. Подробный процесс выглядит следующим образом:

1、 Секвенсор получает новые транзакции. Виртуальная машина считывает байт-код, связанный с каждой транзакцией, генерирует трассировку выполнения и отправляет ее координатору. Одновременно секвенсор отправляет данные о транзакциях в контракт Rollup.

2、 Роллеры преобразуют трассы выполнения, полученные от координатора, в схемы zkEVM. Каждый шаг в трассировке выполнения соответствует схеме zkEVM. Для функций, которые не являются zk-дружественными (например, хэш и Keccak), Scroll строит таблицы поиска, чтобы сопоставить входы и выходы этих функций в трассировке выполнения с таблицей поиска. Для проверки правильности таблицы поиска используются дополнительные схемы. Затем роллеры генерируют доказательства для этих схем zkEVM.

3、 После создания пробных оттисков роллеры отправляют их обратно координатору. Каждые несколько блоков координатор случайным образом распределяет задания по агрегированию между роллерами. Затем назначенный роллер объединяет доказательства для нескольких блоков в одно доказательство.

4、 И наконец, координатор отправляет агрегированное доказательство в контракт Rollup. Контракт Rollup использует это доказательство для проверки корректности ранее представленных данных о состоянии и транзакциях, тем самым подтверждая корректность блока.

Прокрутка zkEVM Схемы и аудит

1. Основные цепи

zkEVM состоит из нескольких схем, каждой из которых поручено проверять определенный аспект EVM (виртуальной машины Ethereum). Эти схемы в конечном итоге объединяются или агрегируются для создания доказательств выполнения транзакций. Приведенная ниже схема иллюстрирует связь между этими схемами и таблицами.

Существуют более мелкие подсхемы, такие как схема ECDSA и подсхемы, связанные с опкодами, которые не взаимодействуют с другими таблицами и схемами таким образом, чтобы повлиять на комбинацию схемы. Эти подсхемы опущены на схеме для наглядности.

Схема EVM

Виртуальная машина Ethereum (EVM) - это машина состояний, которая устанавливает правила допустимых переходов между состояниями в протоколе Ethereum. Он выполняет инструкции (опкоды) для достижения этих переходов и генерирует трассировку выполнения. Цель схемы EVM - создать систему ограничений, которая представляет собой трассировку выполнения и может быть проверена с помощью системы доказательств с нулевым знанием.

Высокоуровневый дизайн схемы EVM в некоторой степени похож на дизайн самого EVM, например, go-ethereum. В go-ethereum интерпретатор перебирает все опкоды инструкций на трассе выполнения. Для каждой инструкции интерпретатор проверяет соответствующую контекстную информацию, такую как газ, стек и память, а затем отправляет опкод в JumpTable, которая предоставляет подробные инструкции по выполнению опкода.

Аналогично, в EVM-схемах Scroll строит шаги выполнения на основе трассировки выполнения и предоставляет доказательства для опкодов и контекстов выполнения. Для каждого шага выполнения применяется набор ограничений для проверки контекстной информации. Для каждого опкода применяется набор ограничений, чтобы проверить его поведение. В пределах трассировки выполнения один и тот же опкод должен иметь одинаковые ограничения. Scroll использует селекторы для "открытия" всех шагов с одинаковым опкодом в трассировке выполнения и использует систему доказательств бэкэнда для подтверждения их поведения.

Государственный округ

Во время выполнения все операции чтения и записи EVM записываются в таблицу rw_table и упорядочиваются переменной rw_counter. Цель схемы состояния - продемонстрировать точную генерацию таблицы rw_table.

Цепь MPT

Дерево Меркла Патриция (MPT) - это ключевая структура данных, используемая в слое хранения Ethereum. В программе zkevm-Circuits компании Scroll MPT модифицируется в zkTrie, которая, по сути, является разреженной двоичной тройкой Меркле-Патрика. В zkevm-Circuits свиток использует таблицу MPT, чтобы шаг за шагом отслеживать переходы состояний операций MPT. Таблица MPT имеет следующую схему:

Цель схемы MPT - проверить точность таблицы MPT, о которой говорилось выше. Это гарантирует, что каждое обновление, записанное в таблице MPT, приводит к корректному изменению. Это означает, что для каждого обновления схема MPT гарантирует, что существует только один возможный способ внести изменения. Это предотвращает случайные или несанкционированные изменения и обеспечивает целостность и точность MPT. В частности, когда MPT претерпевает изменения из-за обновлений в счетах или хранилищах, схема MPT должна доказать, что эти обновления выполняются в соответствии с заданными правилами. Кроме того, он должен продемонстрировать, что корневой хэш точно отражает результаты всех изменений.

Цикл Кекчак

Компания Scroll реализовала свою собственную версию Keccak256, следуя спецификации NIST Keccak и спецификации команды Keccak.

А схема Keccak используется для доказательства правильности работы Keccak256. Реализация этой схемы сложна, главным образом потому, что сам алгоритм keccak256 является zk-дружественным.

Цепь Tx

Схема Tx обеспечивает ограничения для проверки правильности транзакции. В первую очередь он проверяет следующие аспекты транзакции:

  1. Правильность CallDataLength и кумулятивной CallDataGasCost: Определите пользовательские ворота и найдите последнюю строку байтов данных вызова в таблице tx;

  2. Корректность данных, связанных с TxSign и TxHash: Выполните поиск по таблице RLP и таблице Keccak;

  3. Докажите правильность утверждения "если tx_type - L1Msg, то msg_hash": Проверьте, выполнив поиск в таблице RLP;

  4. Правильно выполните подпись tx с помощью ECDSA и правильно восстановите адрес вызывающего абонента из подписи ECDSA: Проверьте это, выполнив поиск в таблице sig;

  5. Правильное переходное поведение tx id, cum_num_txs и call_data_length;

  6. Некоторые базовые ограничения, например, булевы значения определенных индикаторных переменных.

Схема байткода

Схемам EVM необходимо найти таблицу байткода, которая содержит правильную информацию о байткоде. Это гарантирует, что байты, хранящиеся в контракте, совпадут с байтами, загруженными из таблицы. Цель схемы байткода - обеспечить корректность таблицы байткода. Сюда входят:

  1. Ограничения, связанные с поведением границ с тегами (tag): Ограничения на первую и последнюю строки, преобразование из тега == байт в заголовок и наоборот, преобразование из заголовка в заголовок;

  2. Ограничения на размер кода: Включая вычисление длины байткода через ограничение на индекс последнего байта байткода;

  3. Ограничения на кодовый хэш: Правильное ограничение RLC-поведения байтов в кодовом хэше и проверка кодового хэша путем просмотра таблицы Keccak;

  4. Убедитесь в правильности поведения PUSH: is_code = push_data_left == 0 (должно быть булевым значением) и проверьте размер проталкиваемых данных для PUSH1-PUSH32, просмотрев таблицу push_table;

  5. Обеспечение правильного распространения в каждой строке байткода.

2. Аудит безопасности

Различные сети имеют свои собственные пользовательские функции бизнес-модуля, которые обычно изменяют предварительно скомпилированные контракты и опкоды в EVM. Среди них Scroll zkEVM - решение для масштабирования второго уровня, основанное на доказательствах с нулевым знанием. Это решение восстанавливает соответствующие опкоды с помощью схем и генерирует доказательства на основе трасс выполнения. Такая сложная реализация значительно повышает сложность аудита. После оценки экспертами по безопасности Beosin, аудит безопасности zkEVM в основном фокусируется на следующих аспектах:

  1. GAS:При создании доказательств для трассировки выполнения схемы zkEVM также проверяется корректность потребления газа для транзакций. Если в схеме реализации опкодов часто используются неограниченные свободные переменные, это может привести к сбою генерации доказательства или другим неизвестным ошибкам.

  2. Безопасность памяти: Некоторые схемы zkEVM основаны на полиномиальных обязательствах, например, обязательство KZG, используемое в Scroll. Однако полиномиальные вычисления не выравниваются автоматически, поэтому если в схеме отсутствуют ограничения, это может привести к тому, что диапазон значений не будет соответствовать диапазону байтов в компьютерных программах. В некоторых случаях, когда разработчики контрактов включают оптимизацию газа, компактное расположение данных может привести к проблемам с безопасностью памяти, например, постоянный полином BYTE_C4096 в Polygon zkEVM. Полиномы позволяют значениям параметров превышать максимальный диапазон значений байта 255, что потенциально может позволить вредоносным секвенсорам манипулировать параметрами в корыстных целях в некоторых платформах обмена, использующих модель AMM. По сути, эти типы уязвимостей возникают из-за несоответствия между диапазоном числовых значений, представленных схемой, и диапазоном значений переменных в программе. Примером может служить уязвимость CVE-2023-33252, обнаруженная исследователями безопасности Beosin в библиотеке Snarkjs.

  3. Безопасность опкодов: При реализации опкодов zkEVM часто возникают проблемы с безопасностью, особенно в отношении точности. Например, при сравнении двух чисел в базовой схеме, если точность операции сравнения в программе составляет 1 байт, в ограничениях схемы необходимо указать диапазон значений. В противном случае точность операций в схеме будет превышать точность программы, что приведет к неправильным результатам.

  4. Поддержка безопасных ЭИП: Поддержка ориентированных на безопасность EIP, таких как EIP-2 и EIP-155.

  5. Проблема централизации в Sequencer: В настоящее время все доказательства, генерируемые Scroll, зависят от трассировки выполнения, генерируемой Sequencer. Если Sequencer ведет себя недобросовестно, zkEVM не может гарантировать безопасность пользовательских активов.

  6. Проблема совместимости: zkEVM генерирует доказательства схемы на основе трассировки выполнения и проверяет их в контракте. Даже незначительные обновления в Sequencer могут привести к существенным различиям в трассировке выполнения, генерируемой на уровне базового языка.

Перспективы развития компании Scroll

  1. В настоящее время в Scroll используется двухслойная KZG-версия системы доказательств Halo2, использующая аппаратное ускорение GPU для ускорения генерации доказательств. Теперь узкое место переместилось на генерацию свидетелей и репликацию данных. Кроме того, уровень централизации и стоимость эксплуатации оборудования Roller также являются аспектами, которые Scroll необходимо учитывать при разработке многоступенчатых систем доказательства в будущем.

  2. Поскольку трасса выполнения EVM динамически изменяется, существуют различные ограничения и масштабы схемы. В настоящее время, чтобы учесть динамически меняющуюся трассу выполнения, каждый шаг трассы выполнения должен удовлетворять наибольшему масштабу схемы, что приводит к дополнительной трате памяти.

  3. В настоящее время ожидается, что компания Scroll's Roller будет получать прибыль от сборов за транзакции в сети. Однако текущее количество пользователей и плата за транзакции в сети Scroll не могут покрыть операционные расходы Roller и секвенсора. В будущем вопрос о том, как сеть Scroll обеспечивает экономические стимулы для привлечения пользователей и поддержания стабильной работы сети, требует рассмотрения.

В настоящее время Beosin также поддерживает аудит проекта zk. Для более тщательного изучения безопасности zk Вы можете прочитать следующие статьи: 1. Атака на нестабильность транзакций в доказательстве Groth16; 2. Углубленное изучение Tornado Cash с целью выявления атак на нестабильность в проектах ZKP.

Beosin, ведущая компания в области безопасности блокчейна, открыла свои филиалы в более чем 10 странах и регионах по всему миру. Наши услуги включают в себя аудит безопасности кода перед запуском проекта, мониторинг рисков безопасности, раннее предупреждение и профилактику во время работы проекта, возврат активов в случае кражи виртуальных валют, а также услуги по обеспечению соответствия требованиям безопасности, например, KYT/AML. Мы предлагаем универсальное решение для продуктов и услуг в области безопасности блокчейна. В настоящее время мы предоставили услуги в области технологий безопасности более чем 3000 предприятий, работающих с блокчейном, по всему миру и провели аудит более чем 3000 смарт-контрактов. Не стесняйтесь обращаться к нам.

Отказ от ответственности:

  1. Эта статья перепечатана из[Beosin]. Все авторские права принадлежат оригинальному автору[Beosin]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Предупреждение об ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.

Будет ли свиток управлять волной Layer2? И схемы zkEVM и аудит, которые вам нужно знать

СреднийDec 27, 2023
Эта статья содержит подробный анализ архитектуры и технологии Scroll, помогая читателям понять текущее состояние сети и будущие направления развития Scroll. В нем также объясняются схемы и проверки Scroll zkEVM.
Будет ли свиток управлять волной Layer2? И схемы zkEVM и аудит, которые вам нужно знать

10 октября в 14:00 мейннет Scroll, созданный на основе решения Ethereum Layer 2, сгенерировал свой первый блок, ознаменовав успешный запуск мейннета Scroll. По состоянию на 25 октября в сеть Scroll через межцепочечные мосты было подключено более 7600 ETH, и 24 децентрализованные торговые платформы начали работу в мэйннете Scroll, а общий объем TVL составил около $10 млн.

17 октября компания Scroll официально объявила о запуске своего мейннета, продолжая поддерживать свою приверженность открытому исходному коду и децентрализации. На следующем этапе Scroll сосредоточится на создании децентрализованной сети proof-of-stake и сортировщика. В этой статье мы дадим подробный анализ архитектуры и технологии Scroll, чтобы помочь всем понять текущее состояние сети и будущее направление развития Scroll. Мы также расскажем о схеме zkEVM от Scroll и знаниях по аудиту, которые помогут усилить меры безопасности для zk-проектов.

Кто такой Скролл, движущая сила волны Layer2?

Scroll - это решение для масштабирования Ethereum второго уровня, основанное на технологии доказательства нулевого знания и направленное на повышение пропускной способности и скорости транзакций в сети Ethereum. По сравнению с Optimistic Rollup, Scroll достигает масштабируемости за счет доказательств с нулевым знанием и ускоряет генерацию и проверку доказательств с нулевым знанием за счет аппаратного ускорения. Она стремится к достижению совместимости EVM на уровне байткода. Это означает, что разработчики могут напрямую использовать Solidity и связанные с Ethereum инструменты разработки для создания смарт-контрактов и развертывания их на Scroll без каких-либо модификаций.

Согласно официальному сайту Scroll, в настоящее время в команде Scroll 10 основных членов, распределенных по Азии, Америке и Европе. Члены команды имеют богатый опыт разработки zkRollup и работы в промышленности, большинство из них окончили престижные университеты и имеют степени PhD.

В настоящее время экосистема Scroll очень богата, в нее входят инфраструктурные проекты, включая кошельки, инструменты разработки, средства безопасности и многое другое. Цель - обеспечить всестороннюю поддержку проектов на протяжении всего жизненного цикла, от проектирования, разработки, эксплуатации до аудита безопасности. В настоящее время в майнете Scroll существует более 180 экосистемных проектов.

  1. Кошелек
    В настоящее время Scroll поддерживает почти все основные кошельки: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Кроме того, в экосистему кошельков Scroll также входят OKX Wallet, Versa Wallet и т.д.

  2. Межцепочечный мост
    Официальная межцепочечная инфраструктура Scroll включает в себя Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext и др. Кроме того, сюда также входят протокол межцепочечной ликвидности Synapse Protocol, Owlto Finance, специализирующийся на межцепочечных мостах второго уровня, межцепочечные мосты Ethereum первого и второго уровней Pheasant Network, Symbiosis, Catalyst и др.

  3. DeFi
    В экосистеме Scroll существует несколько хорошо зарекомендовавших себя проектов DeFi, включая кредитный протокол Aave, многоцепочечный DEX-агрегатор DODO, DEX SushiSwap, DEX-агрегатор OpenOcean, многоцепочечный DeFi протокол iZUMi Finance, DEX Syncswap, протокол доходности Pendle Finance, кредитный протокол dForce и агрегатор торговли с плечом MUX Protocol. Существуют также инновационные проекты, такие как GMX, которые не получили широкого распространения.

  4. Другие
    Что касается NFT, игр и социальных аспектов, то среди других проектов в экосистеме Scroll можно назвать NFTScan, платформу для решения задач Web3 QuestN, TaskOn, платформу для подписания электронных протоколов EthSign, Galaxy Blitz, OmniKingdoms и другие онлайн-игры на основе блокчейна.

Что отличает технологию Scroll от других?

1. Общая архитектура

Архитектура Scroll состоит из трех компонентов:

Узел Scroll: Он генерирует блоки в сети Scroll на основе пользовательских транзакций, отправляет эти транзакции на базовый уровень Ethereum и обрабатывает передачу сообщений между Ethereum и Scroll.

Роллер: Роллер отвечает за преобразование смарт-контрактов в схемы zkEVM, а затем генерирует доказательства для подтверждения правильности транзакций. В сети Scroll есть несколько роллеров, которые обрабатывают транзакции параллельно и ускоряют генерацию доказательств с помощью аппаратного обеспечения. Scroll достигает совместимости с EVM на уровне байткода, напрямую доказывая корректность обработки байткода EVM.

Контракты Rollup и Bridge: Эти контракты обеспечивают доступность данных для транзакций с прокруткой и проверяют доказательства валидности, генерируемые zkEVM. Можно сказать, что Scroll связан с базовым уровнем Ethereum через контракты Rollup и Bridge. С помощью этих контрактов пользователи могут обмениваться произвольными сообщениями между Ethereum и Scroll, а также передавать активы ERC-20 в любом направлении с помощью шлюзовых контрактов.


источник: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

Свиток - это основной контракт, развернутый на блокчейне Ethereum:.

Контракт прокси-маршрутизатора шлюза (обеспечивает правильное отображение токенов в межцепочечных операциях):0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

Контракт прокси-сообщения (передача сообщений между L1 и L2):0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

Стоит отметить, что эти контракты могут быть изменены администратором и владельцем прокси. Кроме того, в Scroll встроена функция "белого списка", которая позволяет регулировать плату за газ для определенных адресов в Scroll. В настоящее время секвенсор Scroll работает централизованно, что позволяет просматривать сообщения и транзакции в сети Scroll. Более того, есть возможность обойти любое сообщение в очереди сообщений и напрямую подтвердить конкретное сообщение.

2. Прокрутите рабочий процесс zkEVM

После того, как Scroll сгенерирует блок, он проходит через координатора и несколько проверяющих (Rollers) для создания агрегированных доказательств. Затем эти доказательства передаются на проверку контракту Ethereum Rollup. Подробный процесс выглядит следующим образом:

1、 Секвенсор получает новые транзакции. Виртуальная машина считывает байт-код, связанный с каждой транзакцией, генерирует трассировку выполнения и отправляет ее координатору. Одновременно секвенсор отправляет данные о транзакциях в контракт Rollup.

2、 Роллеры преобразуют трассы выполнения, полученные от координатора, в схемы zkEVM. Каждый шаг в трассировке выполнения соответствует схеме zkEVM. Для функций, которые не являются zk-дружественными (например, хэш и Keccak), Scroll строит таблицы поиска, чтобы сопоставить входы и выходы этих функций в трассировке выполнения с таблицей поиска. Для проверки правильности таблицы поиска используются дополнительные схемы. Затем роллеры генерируют доказательства для этих схем zkEVM.

3、 После создания пробных оттисков роллеры отправляют их обратно координатору. Каждые несколько блоков координатор случайным образом распределяет задания по агрегированию между роллерами. Затем назначенный роллер объединяет доказательства для нескольких блоков в одно доказательство.

4、 И наконец, координатор отправляет агрегированное доказательство в контракт Rollup. Контракт Rollup использует это доказательство для проверки корректности ранее представленных данных о состоянии и транзакциях, тем самым подтверждая корректность блока.

Прокрутка zkEVM Схемы и аудит

1. Основные цепи

zkEVM состоит из нескольких схем, каждой из которых поручено проверять определенный аспект EVM (виртуальной машины Ethereum). Эти схемы в конечном итоге объединяются или агрегируются для создания доказательств выполнения транзакций. Приведенная ниже схема иллюстрирует связь между этими схемами и таблицами.

Существуют более мелкие подсхемы, такие как схема ECDSA и подсхемы, связанные с опкодами, которые не взаимодействуют с другими таблицами и схемами таким образом, чтобы повлиять на комбинацию схемы. Эти подсхемы опущены на схеме для наглядности.

Схема EVM

Виртуальная машина Ethereum (EVM) - это машина состояний, которая устанавливает правила допустимых переходов между состояниями в протоколе Ethereum. Он выполняет инструкции (опкоды) для достижения этих переходов и генерирует трассировку выполнения. Цель схемы EVM - создать систему ограничений, которая представляет собой трассировку выполнения и может быть проверена с помощью системы доказательств с нулевым знанием.

Высокоуровневый дизайн схемы EVM в некоторой степени похож на дизайн самого EVM, например, go-ethereum. В go-ethereum интерпретатор перебирает все опкоды инструкций на трассе выполнения. Для каждой инструкции интерпретатор проверяет соответствующую контекстную информацию, такую как газ, стек и память, а затем отправляет опкод в JumpTable, которая предоставляет подробные инструкции по выполнению опкода.

Аналогично, в EVM-схемах Scroll строит шаги выполнения на основе трассировки выполнения и предоставляет доказательства для опкодов и контекстов выполнения. Для каждого шага выполнения применяется набор ограничений для проверки контекстной информации. Для каждого опкода применяется набор ограничений, чтобы проверить его поведение. В пределах трассировки выполнения один и тот же опкод должен иметь одинаковые ограничения. Scroll использует селекторы для "открытия" всех шагов с одинаковым опкодом в трассировке выполнения и использует систему доказательств бэкэнда для подтверждения их поведения.

Государственный округ

Во время выполнения все операции чтения и записи EVM записываются в таблицу rw_table и упорядочиваются переменной rw_counter. Цель схемы состояния - продемонстрировать точную генерацию таблицы rw_table.

Цепь MPT

Дерево Меркла Патриция (MPT) - это ключевая структура данных, используемая в слое хранения Ethereum. В программе zkevm-Circuits компании Scroll MPT модифицируется в zkTrie, которая, по сути, является разреженной двоичной тройкой Меркле-Патрика. В zkevm-Circuits свиток использует таблицу MPT, чтобы шаг за шагом отслеживать переходы состояний операций MPT. Таблица MPT имеет следующую схему:

Цель схемы MPT - проверить точность таблицы MPT, о которой говорилось выше. Это гарантирует, что каждое обновление, записанное в таблице MPT, приводит к корректному изменению. Это означает, что для каждого обновления схема MPT гарантирует, что существует только один возможный способ внести изменения. Это предотвращает случайные или несанкционированные изменения и обеспечивает целостность и точность MPT. В частности, когда MPT претерпевает изменения из-за обновлений в счетах или хранилищах, схема MPT должна доказать, что эти обновления выполняются в соответствии с заданными правилами. Кроме того, он должен продемонстрировать, что корневой хэш точно отражает результаты всех изменений.

Цикл Кекчак

Компания Scroll реализовала свою собственную версию Keccak256, следуя спецификации NIST Keccak и спецификации команды Keccak.

А схема Keccak используется для доказательства правильности работы Keccak256. Реализация этой схемы сложна, главным образом потому, что сам алгоритм keccak256 является zk-дружественным.

Цепь Tx

Схема Tx обеспечивает ограничения для проверки правильности транзакции. В первую очередь он проверяет следующие аспекты транзакции:

  1. Правильность CallDataLength и кумулятивной CallDataGasCost: Определите пользовательские ворота и найдите последнюю строку байтов данных вызова в таблице tx;

  2. Корректность данных, связанных с TxSign и TxHash: Выполните поиск по таблице RLP и таблице Keccak;

  3. Докажите правильность утверждения "если tx_type - L1Msg, то msg_hash": Проверьте, выполнив поиск в таблице RLP;

  4. Правильно выполните подпись tx с помощью ECDSA и правильно восстановите адрес вызывающего абонента из подписи ECDSA: Проверьте это, выполнив поиск в таблице sig;

  5. Правильное переходное поведение tx id, cum_num_txs и call_data_length;

  6. Некоторые базовые ограничения, например, булевы значения определенных индикаторных переменных.

Схема байткода

Схемам EVM необходимо найти таблицу байткода, которая содержит правильную информацию о байткоде. Это гарантирует, что байты, хранящиеся в контракте, совпадут с байтами, загруженными из таблицы. Цель схемы байткода - обеспечить корректность таблицы байткода. Сюда входят:

  1. Ограничения, связанные с поведением границ с тегами (tag): Ограничения на первую и последнюю строки, преобразование из тега == байт в заголовок и наоборот, преобразование из заголовка в заголовок;

  2. Ограничения на размер кода: Включая вычисление длины байткода через ограничение на индекс последнего байта байткода;

  3. Ограничения на кодовый хэш: Правильное ограничение RLC-поведения байтов в кодовом хэше и проверка кодового хэша путем просмотра таблицы Keccak;

  4. Убедитесь в правильности поведения PUSH: is_code = push_data_left == 0 (должно быть булевым значением) и проверьте размер проталкиваемых данных для PUSH1-PUSH32, просмотрев таблицу push_table;

  5. Обеспечение правильного распространения в каждой строке байткода.

2. Аудит безопасности

Различные сети имеют свои собственные пользовательские функции бизнес-модуля, которые обычно изменяют предварительно скомпилированные контракты и опкоды в EVM. Среди них Scroll zkEVM - решение для масштабирования второго уровня, основанное на доказательствах с нулевым знанием. Это решение восстанавливает соответствующие опкоды с помощью схем и генерирует доказательства на основе трасс выполнения. Такая сложная реализация значительно повышает сложность аудита. После оценки экспертами по безопасности Beosin, аудит безопасности zkEVM в основном фокусируется на следующих аспектах:

  1. GAS:При создании доказательств для трассировки выполнения схемы zkEVM также проверяется корректность потребления газа для транзакций. Если в схеме реализации опкодов часто используются неограниченные свободные переменные, это может привести к сбою генерации доказательства или другим неизвестным ошибкам.

  2. Безопасность памяти: Некоторые схемы zkEVM основаны на полиномиальных обязательствах, например, обязательство KZG, используемое в Scroll. Однако полиномиальные вычисления не выравниваются автоматически, поэтому если в схеме отсутствуют ограничения, это может привести к тому, что диапазон значений не будет соответствовать диапазону байтов в компьютерных программах. В некоторых случаях, когда разработчики контрактов включают оптимизацию газа, компактное расположение данных может привести к проблемам с безопасностью памяти, например, постоянный полином BYTE_C4096 в Polygon zkEVM. Полиномы позволяют значениям параметров превышать максимальный диапазон значений байта 255, что потенциально может позволить вредоносным секвенсорам манипулировать параметрами в корыстных целях в некоторых платформах обмена, использующих модель AMM. По сути, эти типы уязвимостей возникают из-за несоответствия между диапазоном числовых значений, представленных схемой, и диапазоном значений переменных в программе. Примером может служить уязвимость CVE-2023-33252, обнаруженная исследователями безопасности Beosin в библиотеке Snarkjs.

  3. Безопасность опкодов: При реализации опкодов zkEVM часто возникают проблемы с безопасностью, особенно в отношении точности. Например, при сравнении двух чисел в базовой схеме, если точность операции сравнения в программе составляет 1 байт, в ограничениях схемы необходимо указать диапазон значений. В противном случае точность операций в схеме будет превышать точность программы, что приведет к неправильным результатам.

  4. Поддержка безопасных ЭИП: Поддержка ориентированных на безопасность EIP, таких как EIP-2 и EIP-155.

  5. Проблема централизации в Sequencer: В настоящее время все доказательства, генерируемые Scroll, зависят от трассировки выполнения, генерируемой Sequencer. Если Sequencer ведет себя недобросовестно, zkEVM не может гарантировать безопасность пользовательских активов.

  6. Проблема совместимости: zkEVM генерирует доказательства схемы на основе трассировки выполнения и проверяет их в контракте. Даже незначительные обновления в Sequencer могут привести к существенным различиям в трассировке выполнения, генерируемой на уровне базового языка.

Перспективы развития компании Scroll

  1. В настоящее время в Scroll используется двухслойная KZG-версия системы доказательств Halo2, использующая аппаратное ускорение GPU для ускорения генерации доказательств. Теперь узкое место переместилось на генерацию свидетелей и репликацию данных. Кроме того, уровень централизации и стоимость эксплуатации оборудования Roller также являются аспектами, которые Scroll необходимо учитывать при разработке многоступенчатых систем доказательства в будущем.

  2. Поскольку трасса выполнения EVM динамически изменяется, существуют различные ограничения и масштабы схемы. В настоящее время, чтобы учесть динамически меняющуюся трассу выполнения, каждый шаг трассы выполнения должен удовлетворять наибольшему масштабу схемы, что приводит к дополнительной трате памяти.

  3. В настоящее время ожидается, что компания Scroll's Roller будет получать прибыль от сборов за транзакции в сети. Однако текущее количество пользователей и плата за транзакции в сети Scroll не могут покрыть операционные расходы Roller и секвенсора. В будущем вопрос о том, как сеть Scroll обеспечивает экономические стимулы для привлечения пользователей и поддержания стабильной работы сети, требует рассмотрения.

В настоящее время Beosin также поддерживает аудит проекта zk. Для более тщательного изучения безопасности zk Вы можете прочитать следующие статьи: 1. Атака на нестабильность транзакций в доказательстве Groth16; 2. Углубленное изучение Tornado Cash с целью выявления атак на нестабильность в проектах ZKP.

Beosin, ведущая компания в области безопасности блокчейна, открыла свои филиалы в более чем 10 странах и регионах по всему миру. Наши услуги включают в себя аудит безопасности кода перед запуском проекта, мониторинг рисков безопасности, раннее предупреждение и профилактику во время работы проекта, возврат активов в случае кражи виртуальных валют, а также услуги по обеспечению соответствия требованиям безопасности, например, KYT/AML. Мы предлагаем универсальное решение для продуктов и услуг в области безопасности блокчейна. В настоящее время мы предоставили услуги в области технологий безопасности более чем 3000 предприятий, работающих с блокчейном, по всему миру и провели аудит более чем 3000 смарт-контрактов. Не стесняйтесь обращаться к нам.

Отказ от ответственности:

  1. Эта статья перепечатана из[Beosin]. Все авторские права принадлежат оригинальному автору[Beosin]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Предупреждение об ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!