Автор | Каллум@Web3CN.Pro

ZK Rollup — это метод масштабирования для Ethereum, который позволяет обрабатывать транзакции вне цепочки и объединять их в одну сжатую транзакцию в основной цепочке. Этот процесс повышает пропускную способность транзакций, снижает транзакционные издержки, обеспечивает достоверность состояния посредством доказательства с нулевым разглашением и улучшает конфиденциальность и безопасность основной цепочки. Таким образом, ZK Rollup считается идеальным решением для расширения Ethereum.

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

В этой статье будут рассмотрены пять распространенных типов zkEVM и ход реализации каждого типа проекта, а также указаны проблемы проектирования каждого типа zkEVM.

Что такое zkEVM

zkEVM — это виртуальная машина, совместимая с EVM, которая поддерживает вычисления с доказательством нулевого разглашения. Это платформа разработки приложений, основанная на технологии блокчейна Ethereum. Контракт EVM можно развернуть и запустить напрямую, без изменений, а правильность расчетов программы можно доказать с помощью доказательства с нулевым разглашением.

Преимущества zkEVM

1. zkEVM улучшает совместимость. zkEVM обладает высокой совместимостью со смарт-контрактами, написанными для работы в EVM, и может быть легко интегрирован с инфраструктурой EVM. Разработчики могут переносить существующие приложения Ethereum на L2 без переделки приложения. Безопасность сети Ethereum.

2. zkEVM улучшает масштабируемость. zkEVM использует неинтерактивные доказательства, что повышает пропускную способность и сокращает задержку, поскольку проверка доказательства блока L2 выполняется быстрее, чем повторное выполнение каждой транзакции в новом предложенном блоке.

3. zkEVM снижает затраты на хранение. zkEVM Rollup может публиковать обязательства по своему конечному состоянию только на Ethereum L1, что снижает затраты на хранение в цепочке. Доказательство действительности гарантирует правильность нового состояния zkEVM, поэтому заказчику не нужно публиковать все данные, необходимые для повторного выполнения изменений перехода состояний.

Именно благодаря постоянному совершенствованию zkEVM ограничения ZK Rollup устраняются. Используя безопасность и эффективность ZK Rollup и совместимость EVM, приложения могут взаимодействовать со смарт-контрактами и улучшать опыт использования приложений.

Пять различных типов zkEVM и связанных с ними проектов

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

Основатель Ethereum Виталик Бутерин также опубликовал статью, в которой объясняются компромиссы между различными типами zkEVM. Виталик Бутерин считает, что основные цели этих проектов одинаковы: использовать технологию ZK-SNARK для предоставления криптографического доказательства выполнения Ethereum- как транзакции, так что проще проверить саму цепочку Ethereum или создать ZK Rollups, эквивалентные тому, что предоставляет Ethereum, но более масштабируемые, чем Ethereum.

Тип 1 (эквивалентность на уровне консенсуса — полный эквивалент Ethereum)

ZkEVM типа 1 стремится стать полностью эквивалентным Ethereum. Он не изменяет никакую часть системы Ethereum для упрощения генерации доказательств и не заменяет хеширование, попытки состояний, попытки транзакций, предварительную компиляцию или любую другую логику консенсуса.

Преимущество zkEVM Type 1 в том, что он полностью совместим с Ethereum. В долгосрочной перспективе модификации Ethereum, протестированные в ZK-EVM Type 2 или Type 3, потенциально могут быть внедрены в сам Ethereum, но такая перестройка архитектуры имеет свои сложности, поэтому в конечном итоге для создания Ethereum Fang L1 необходим Type 1. это нечто более масштабируемое. В то же время zkEVM типа 1 также идеально подходят для накопительных пакетов, поскольку они позволяют накопительным пакетам повторно использовать значительную часть инфраструктуры.

Недостатком zkEVM типа 1 является проблема времени проверки. Изначально Ethereum не был разработан с учетом дружественности ZK, поэтому многие части протокола Ethereum требуют большого объема вычислений для выполнения доказательств ZK. ZkEVM Type 1 разработан как точная копия Ethereum, поэтому он не может устранить эти недостатки. Тип 1 zkEVM — это самый идеальный zkEVM, и существует множество проектов, создающих или исследующих этот тип.

В настоящее время проекты, связанные с zkEVM типа 1, включают Taiko и Kakarot.

Taiko создает zkEVM типа 1, которая позволяет разработчикам и пользователям безопасно работать с Ethereum, с более низкими комиссиями за транзакции и без необходимости вносить какие-либо изменения. Компания привлекла 22 миллиона долларов США в ходе двух раундов начального финансирования, первый из которых составил 10 миллионов долларов США под руководством Sequoia China, а второй — 12 миллионов долларов США под руководством Generative Ventures. 7 июня Taiko запустила стимулированную тестовую сеть Alpha-3. Согласно официальному представлению Taiko, тестовая сеть фокусируется на децентрализованной части ZK-EVM, эквивалентной Ethereum.

Kakarot zkEVM — это EVM, развернутая с использованием языка Cario, которая повышает надежность экосистемы Starknet за счет улучшения совместимости EVM. Kakarot zkEVM может существовать в разных формах. На первом этапе EVM будет перенесен в Starknet. На втором этапе Kakarot и Madara будут объединены в единый стек для поддержки L3 zkEVM. На третьем этапе Kakarot и Madara также могут быть объединены в Вместе, включите Тип 1 zkEVM. 2 июня Kakarot zkEVM завершил предварительный раунд финансирования при участии таких учреждений, как StarkWare, LambdaClass, а также бизнес-ангелов, таких как Виталик Бутерин, Николас Бакка и Рэнд Хинди.

Тип 2 (эквивалентность на уровне байт-кода — полностью эквивалентно EVM)

Type2 zkEVM стремится быть полностью эквивалентным EVM, но не полностью эквивалентным Ethereum. То есть изнутри они выглядят точно так же, как Ethereum, но снаружи у них есть некоторые отличия, особенно в плане структур данных, таких как структура блока и дерево состояний. Цель — обеспечить полную совместимость с существующими приложениями, но с некоторыми незначительными изменениями в Ethereum, чтобы упростить разработку и ускорить генерацию доказательств.

Преимуществом zkEVM типа 2 является идеальная эквивалентность на уровне ВМ. Тип 2 zkEVM вносит изменения в структуры данных, которые содержат такие вещи, как состояние Ethereum. Это структуры, которые не имеют прямого доступа к самой EVM, поэтому приложения, работающие на Ethereum, почти всегда будут работать на накопительном пакете zkEVM Type 2. Этот тип не может использовать клиенты выполнения Ethereum как есть, но может использовать их с некоторыми изменениями и по-прежнему использовать инструменты отладки EVM и другую инфраструктуру.

Недостатком zkEVM типа 2 является то, что время проверки по-прежнему велико. ZkEVM типа 2 обеспечивает более быструю проверку, чем zkEVM типа 1, в первую очередь за счет удаления частей стека Ethereum, которые полагаются на неоправданно сложную и недружественную к ZK криптографию. Например, они могут изменить деревья Keccak и Merkle-Patricia на базе RLP в Ethereum, а также, возможно, изменить структуры блоков и квитанций. Эти изменения значительно сокращают время проверки, но не решают всех проблем. Доказательство того, что EVM все еще медленный процесс из-за всей неэффективности и недружелюбности ZK, присущей EVM.

В настоящее время проекты, связанные с zkEVM типа 2, включают Linea и Polygon.

Linea — это zkEVM Type-2 на базе Consensys. Интеграция ZKP с полной совместимостью с EVM позволяет разработчикам создавать масштабируемые DApps или переносить существующие DApps на новые платформы без изменения кода или переписывания смарт-контрактов. Публичная тестовая сеть была запущена 28 марта этого года и добавлена ​​в сетевые параметры по умолчанию расширения Metamask. Linea выпустила Alpha v0.2 в 12:00 13 июня. Эта версия ориентирована на тестирование существенных обновлений архитектуры в рамках подготовки к запуску основной сети.

Polygon zkEVM имеет открытый исходный код и использует zkEVM Type 2. Он использует доказательства ZK для снижения комиссий за транзакции и увеличения пропускной способности, сохраняя при этом безопасность Ethereum L1. Polygon заявил 14 февраля этого года, что Polygon zkEVM прошел 100% тестовых векторов Ethereum, применимых к zkEVM. Разработчикам не нужно изменять или переписывать какой-либо код, и все инструменты Ethereum могут работать без проблем с Polygon zkEVM. Это означает, что ZK Rollup Совместимость с EVM сделала еще один большой шаг вперед и достигла уровня Type 2, который полностью эквивалентен EVM. Бета-версия основной сети Polygon zkEVM была официально запущена 27 марта 2023 года.

Тип 2.5 (эквивалент EVM, за исключением стоимости газа)

Одним из способов сокращения времени проверки является значительное увеличение стоимости газа для определенных операций в EVM, которые трудно защитить от ZK. Это может включать в себя предварительную компиляцию, коды операций Keccak и, возможно, специальные шаблоны для вызова контрактов или доступа к памяти, хранилищу или восстановлению.

Изменение стоимости газа может снизить совместимость инструментов разработчика и нарушить работу некоторых приложений, но, как правило, считается менее рискованным, чем «более глубокие» изменения EVM. Разработчикам следует быть осторожными и не требовать больше газа, чем на блок, за одну транзакцию, и не совершать вызовы с жестко заданными суммами газа.

Конкретного проекта по разработке ЭВМ типа 2.5 пока нет, он только вступает в стадию Типа 2.

Тип 3 (эквивалент на уровне байт-кода — почти эквивалент EVM)

Тип 3 zkEVM почти эквивалентен EVM, но ради точной эквивалентности пришлось пойти на некоторые жертвы, чтобы еще больше сократить время доказательства и упростить разработку с помощью EVM.

Преимущества zkEVM типа 3 заключаются в том, что его проще построить и он имеет более короткое время проверки. В zkEVM типа 3 могут отсутствовать некоторые функции, которые особенно сложно реализовать в реализации zkEVM. Кроме того, zkEVM типа 3 иногда имеет тонкие различия в том, как он обрабатывает код контракта, память или стек.

Недостатком zkEVM типа 3 является худшая совместимость. Целью zkEVM Type 3 является обеспечение совместимости с большинством приложений, при этом для остальных приложений требуются минимальные усилия по переписыванию. Тем не менее, некоторые приложения придется переписать, поскольку они используют предварительные компиляции, которые zkEVM Type 3 удаляет, или из-за тонких зависимостей от пограничных случаев, которые виртуальная машина обрабатывает по-другому.

В настоящее время проекты, связанные с zkEVM Type 3, включают Scroll.

Scroll — это эквивалент EVM zk-rollup, разработанный командой Scroll в сотрудничестве с группой PSE (Privacy and Scaling Explorations) Ethereum Foundation. В настоящее время он находится на стадии Pre-Alpha testnet и нацелен на полную совместимость с EVM на уровень байт-кода. Это означает, что разработчики могут создавать смарт-контракты на любом языке, совместимом с EVM, и развертывать их на Scroll. Хотя в настоящее время Scroll создает EVM типа 2, многие из более сложных предварительных компиляций еще не реализованы, поэтому она считается EVM типа 3. По данным Scroll, запуск основной сети запланирован на июль или август этого года, а также может быть запущена партнерская программа по поощрению экологического развития.

В настоящее время EVM типа 3 представляет собой лишь переходную фазу, пока не будет завершена сложная работа по добавлению прекомпиляторов и проекты не смогут перейти на zkEVM типа 2.5. Однако в будущем EVM типов 1 и 3 могут добавить новые предварительные компиляции, совместимые с ZK-SNARK, чтобы предоставить разработчикам такие функции, как малое время проверки и низкие затраты на газ.

Тип 4 (эквивалентность уровня языка разработки — эквивалент языка высокого уровня EVM)

EVM типа 4 работает путем компиляции исходного кода смарт-контракта, написанного на языке высокого уровня (например, Solidity, Vyper или промежуточном языке), в язык, который явно разработан для поддержки ZK-SNARK.

Преимуществом zkEVM типа 4 является более высокая скорость проверки. Поскольку этот тип кода не выполняет zk-доказательства на всех различных частях каждого шага выполнения EVM, а вместо этого начинается непосредственно с высокоуровневого кода, можно избежать многих затрат.

Недостатком zkEVM типа 4 является его меньшая совместимость. Во-первых, адреса контрактов в системах типа 4 могут отличаться от их адресов в EVM. Во-вторых, многие приложения используют рукописный байт-код EVM в некоторых частях для повышения эффективности, что может не поддерживаться системами типа 4. Многие отладочные инфраструктурные объекты не могут быть унаследовано либо.

В настоящее время проекты, связанные с zkEVM Type 4, включают zkSync Era и StarkNet.

zkSync Era был создан Matters Lab. zkSync Era — первая EVM, запущенная в основной сети и полностью доступная для общественности, которая может перевести свои средства в систему или развернуть свой код в сети. zkSync Era использует другой формат байт-кода и поддерживает Solidity, предоставляя компилятор. Он поддерживает Solidity, но не сам байт-код EVM. Такие инструменты, как Hardhat, нельзя использовать напрямую, хотя доступны плагины для zkSync.

StarkNet, созданный StarkWare, представляет собой zk-rollup L2, который использует доказательства с нулевым разглашением для создания уровня выполнения вне цепочки для Ethereum. На самом деле EVM не является собственной функцией Starknet. Starknet использует конвертер Warp (предоставленный Nethermind) для преобразования кода Solidity в Cairo для поддержки развертывания смарт-контрактов.

Проблемы и будущее zkEVM

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

Среди пяти типов zkEVM нет явного победителя. Типы с меньшим номером более совместимы с существующей инфраструктурой, но медленнее, тогда как типы с большим номером менее совместимы с существующей инфраструктурой, но быстрее. Более высокая скорость. В целом, для разработки zkEVM и Ethereum полезно исследовать разные типы различных проектов.

В будущем появится несколько реализаций zkEVM, которые можно будет использовать как для ZK Rollup, так и для проверки самой цепочки Ethereum. Теоретически Ethereum не обязательно использовать единый стандарт zkEVM для L1, и разные клиенты могут использовать разные доказательства. Однако потребуется немало времени, чтобы такое будущее стало реальностью. В то же время мы увидим больше инноваций на различных путях масштабирования Ethereum и ZK-rollups на Ethereum.