Что такое zkEVM?
Основы
Обеспечивая совместимость с технологией доказательств с нулевым разглашением (ZKP), zero-knowledge Ethereum Virtual Machine (zkEVM) функционирует как машина состояния Ethereum, облегчающая выполнение смарт‑контрактов. Интеграция zkEVM расширяет возможности zero-knowledge rollups (zk-rollups) в сети Ethereum, включая децентрализованные приложения (DApps). Это упрощает развёртывание проектов на Ethereum, как существующих, так и новых, за счёт использования ZKP для усиления возможностей экосистемы Ethereum.
Когда сеть Ethereum была впервые предложена в 2014 году, изначальные разработчики не учитывали технологию доказательств с нулевым разглашением. Тем не менее за последние годы ZKP привлёк значительное внимание и ожидается, что займёт более важную роль в блокчейн‑области. В результате активизировались усилия по интеграции ZKP с виртуальной машиной Ethereum.
Чтобы понять суть zkEVM, необходимо кратко рассмотреть два его фундаментальных компонента: zk-rollups и EVM.
Что такое zk-rollups?
Rollups выступают как решение для масштабирования: они совмещают выполнение множества транзакций вне основной цепи и передают данные как единый пакет в основную сеть, что увеличивает пропускную способность и снижает затраты на транзакции.
В экосистеме Ethereum транзакции rollup сжимаются и затем отправляются в основной сетевой слой Ethereum для верификации по цене одной транзакции. Главная сеть Ethereum служит для расчётов и подтверждает данные транзакпака, включенные в rollup.
Особый вариант rollup — zk-rollups — использует технологию доказательств с нулевым разглашением. ZKP позволяет проверять корректность данных без их раскрытия. В случае zk-rollups нет необходимости публиковать все данные транзакций в основной сети Ethereum: достаточно передать различия состояния (например, изменения в балансе аккаунтов) вместе с доказательством корректности. Это значительно снижает расходы на газ.
Безопасность zk-rollups базируется на криптографии ZKP, где криптографические механизмы обеспечивают проверку доказательств и взаимную доверенность. Это отличается от других реализаций rollup, таких как optimistic rollups, которые опираются на экономическую теорию игр: злоумышленники сдерживаются возможными потерями, а у участников есть стимул для оспаривания некорректных операций.
Что такое EVM?
Внутри Ethereum Ethereum Virtual Machine (EVM) выступает как машина состояния, которая управляет системой аккаунтов Ethereum и выполняет смарт‑контракты. Каждое выполнение смарт‑контракта заставляет EVM переходить из одного состояния в другое в соответствии с заданными правилами вычисления допустимых состояний между блоками.
Понятие состояния имеет ключевое значение в экосистеме Ethereum. Оно представлено структурой данных Merkle Patricia Trie и служит снимком текущего состояния сети. Эта структура позволяет проследить детали транзакций от текущего блока вплоть до генезис‑блока.
Совместные усилия всех узлов, участвующих в поддержании Ethereum, обеспечивают непрерывность и консенсус, позволяя каждому узлу иметь представление о точном текущем состоянии. EVM играет центральную роль в поддержании этой согласованности и защите целостности сети Ethereum.
Как работает zkEVM?
Обеспечивая непрерывность состояния Ethereum и проверяемую корректность, zkEVM решает проблему отсутствия встроенной поддержки доказательств с нулевым разглашением в EVM. Такой подход гарантирует верификацию всех задействованных вычислений, одновременно сохраняя безопасность и приватность.
В zkEVM среда Ethereum воспроизводится аналогично zk-rollups. Начиная с исходного состояния, обрабатываются все транзакции, в результате чего получается обновлённое состояние и соответствующее ZKP. Это доказательство затем отправляется в смарт‑контракт‑верификатор, который проверяет корректность как начального, так и итогового состояний, исключая необходимость проверки каждой отдельной транзакции.
zkEVM, построенные на основе EVM, позволяют разработчикам без сложностей портировать DApp и смарт‑контракты Ethereum на zkEVM без необходимости самостоятельной разработки ZKP. По сути, zkEVM расширяют функциональность zk-rollups, добавляя возможность выполнения смарт‑контрактов помимо уже поддерживаемых обменов токенов и платежей.
Благодаря совместимости с EVM, разработчики могут создавать новые продукты с использованием привычных инструментов и языка Solidity и при этом получать преимущества повышенной безопасности, которые даёт zkEVM. Пользователи сохраняют доступ к знакомым DApp и инструментам, теперь с улучшенными мерами приватности и защиты.
Отличие совместимости EVM и эквивалентности EVM
Когда блокчейн называют EVM‑совместимым, это означает, что он предоставляет среду, способную размещать DApp, написанные на языке Solidity, используемом для разработки смарт‑контрактов Ethereum.
Фактически разработчики Ethereum могут без особых изменений перенести существующий код DApp из Ethereum в другие EVM‑совместимые сети. Для пользователей адреса в таких сетях выглядят так же, как адреса Ethereum.
Следовательно, эти адреса совместимы с популярными кошельками вроде Metamask и Trust Wallet. Среди заметных EVM‑совместимых сетей сейчас — BNB Chain, Avalanche C‑Chain и Polygon.
Важно не путать совместимость EVM с её эквивалентностью. Эквивалентность EVM означает, что с точки зрения разработчика DApp rollup уровня 2 очень похож на уровень 1 Ethereum. Аналогия с операционной системой: эквивалентность EVM похожа на восстановление файлов и настроек через Apple iCloud при переходе на новый компьютер в той же экосистеме.
В свою очередь совместимость EVM означает, что при переходе на другую систему, например Windows, файлы нужно извлекать из облака и конвертировать, чтобы вернуть прежние настройки и данные.
Классификация zkEVM: баланс между эффективностью и совместимостью
Эффективная генерация и проверка ZKP в контексте EVM представляет собой задачу, поскольку Ethereum изначально не поддерживает ZKP. Процесс может быть чрезвычайно медленным — иногда занимать часы. Тем не менее важно найти компромисс между совместимостью с EVM и эффективностью ZKP.
Виталик Бутерин, основатель Ethereum, выделил четыре типа zkEVM, каждый из которых включает свои компромиссы между эффективностью работы ZKP и совместимостью с EVM. Эти классификации перекликаются с трилеммой блокчейна, которая подчёркивает внутренние компромиссы между децентрализацией, безопасностью и масштабируемостью.
Тип 1: Эквивалентность на уровне консенсуса
Тип 1 zkEVM, также называемый enshrined rollup, достигает полной эквивалентности с Ethereum на уровне консенсуса. Состояние цепочки zkEVM и транзакции совпадают с Ethereum, позволяя взаимную верификацию блоков и прямую интеграцию с execution‑клиентами Ethereum. Хотя этот тип повышает масштабируемость Ethereum, эффективная работа ZKP остаётся серьёзной проблемой: проверка требует значительных вычислительных ресурсов. Возможные решения включают массовое использование параллельных валидаторов или специализированных интегральных схем для zk‑SNARK.
Тип 2: Эквивалентность на уровне байткода
Тип 2 zkEVM полностью эквивалентен EVM, но не Ethereum как сети. Сохраняя совместимость с существующими DApp, средствами отладки и инфраструктурой разработчиков, Type 2 zkEVM в той или иной степени оптимизируют время создания доказательств. Однако их эффективность остаётся ограниченной и затратной, без сильной синергии с ZK‑методами.
Тип 2.5: Изменённые комиссии за газ
Тип 2.5 zkEVM наследует преимущества и недостатки Type 2, но предлагает слегка пониженные комиссии за газ.
Тип 3: Эквивалентность на уровне байткода с повышенной эффективностью
Опираясь на Type 2, Type 3 zkEVM отдаёт приоритет повышенной эффективности ZK над полной совместимостью. Для этого некоторые функции, например precompile, опускаются, что требует переписывания DApp, зависящих от этих возможностей.
Тип 4: Эквивалентность на уровне языка разработки
Тип 4 zkEVM демонстрирует наилучшую ZK‑эффективность, но жертвует совместимостью на уровне высокоуровневых языков. При высокой производительности их совместимость с существующими системами может быть ограниченной.
Заключение
Внедрение zkEVM преследует основную цель — обеспечить поддержку вычислений ZKP для выполнения смарт‑контрактов, расширяя DApp до всех EVM‑совместимых протоколов. Однако области применения ZKP выходят за рамки этой задачи.
Технология ZKP имеет потенциал для интеграции с Web2‑случаями использования. Комбинируя ZKP с различными Web2‑приложениями, можно плавно улучшить взаимодействие с Web3, сделав опыт более удобным для пользователей. Это позволит людям, привыкшим к традиционным интернет‑браузерам, получить преимущества Web3 и способствовать широкому принятию новой парадигмы.