Что такое zkEVM?

Что такое виртуальная машина zkEVM, как она работает и какие имеет преимущества?

zkEVM — виртуальная машина Ethereum (EVM) с нулевым разглашением (zk-Proof). Как и обычная виртуальная машина Ethereum, она предназначена для выполнения смарт-контрактов, но с использованием криптографической технологии доказательства с нулевым разглашением (Zero-Knowledge Proof).

zkEVM является одним из типов решений второго уровня (Layer 2) для масштабирования Ethereum, которые призваны повысить пропускную способность сети за счет вынесения вычислений за пределы основной сети. Накопительный пакет с нулевым разглашением (zk-Rollup) отправляет объединенные данные транзакций в сеть Ethereum вместе с доказательством, подтверждающим достоверность пакетов транзакций, произведенных за пределами основной сети.

Как работает zkEVM?

zkEVM генерирует доказательства с нулевым разглашением (zkProof) для проверки различных элементов в каждом вычислении:

  • Доступ по байт-коду. Был ли правильно загружен соответствующий программный код с правильного адреса? 
  • Операции чтения/записи. Извлекала ли программа правильные значения из стека/памяти/хранилища перед вычислением? Записала ли программа правильные выходные значения в стек/память/хранилище после завершения выполнения?
  • Вычисление. Правильно ли выполнялись коды операций?

zkEVM разделен на три части: среда выполнения, схема проверки и контракт верификатора (Verifier Contract). Каждый компонент способствует выполнению программы zkEVM, генерации доказательств и проверке доказательств. 

1. Среда выполнения — это место, где смарт-контракты запускаются в zkEVM. Среда выполнения zkEVM во многом похожа на EVM, она принимает начальное состояние и текущую транзакцию для вывода нового состояния.

2. Схема проверки создает доказательства с нулевым разглашением (ZKP), проверяющие достоверности транзакций, вычисленных в среде выполнения. После этого доказывающая сторона получает краткое доказательство действительности этого конкретного перехода состояния.

Схема проверки виртуальной машины Ethereum с нулевыми разглашением (zkEVM)

3. Контракт с верификатором. Накопительные пакеты ZK отправляют доказательства достоверности смарт-контракту, развернутому в основной сети L1 (Ethereum), для проверки. Входные данные и выходные данные также передаются в контракт верификатора. Затем верификатор запускает вычисления на основе предоставленного доказательства и подтверждает, что представленные выходные данные были правильно вычислены на основе входных данных.

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

Среди основных преимуществ zkEVM можно выделить следующие:

1. Безопасная масштабируемость

EVM-совместимые накопительные пакеты с нулевым разглашением могут исправить проблемы с пропускной способностью Ethereum, не жертвуя безопасностью сети. Как и другие протоколы масштабирования, они не обременены правилами протокола консенсуса Ethereum и могут быть оптимизированы для скорости выполнения. По некоторым оценкам, ZK накопители могут обрабатывать около 2000 транзакций в секунду. 

При этом ZK-накопители имеют более высокие гарантии безопасности по сравнению с другими проектами масштабирования, такими как Omtimism, работающими на основе оптимистичных накопительных пакетов (Optimistic Rollup). Они проверяют правильность вычислений вне сети с помощью доказательств достоверности. Это означает, что транзакции, выполняемые смарт-контрактами на втором уровне (Layer2), могут быть надежно проверены на Layer1 (Ethereum) без необходимости повторного выполнения операций узлами. Это может значительно увеличить скорость обработки транзакций в Ethereum без снижения безопасности.

2. Быстрая финализация

Еще одним преимуществом ZK-накопителей перед оптимистичными накопителями является быстрая финализация. Финализация в блокчейне — это процесс, после которого транзакции становятся не обратимыми. Транзакции в блокчейне могут быть завершены только в том случае, если все участники сети имеют неопровержимые доказательства достоверности.

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

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

3. Более низкие комиссии

Накопительные пакеты используют безопасность основной сети Ethereum, записывая данные транзакций в Ethereum как CALLDATA. Однако оптимистичные накопители и ZK-накопители различаются тем, сколько данных они должны публиковать в Ethereum.

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

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

Примеры блокчейнов на основе zkEVM

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

Polygon zkEVM

Polygon zkEVM (ранее известный как Polygon Hermez) — решение второго уровня, разрабатываемое Polygon Labs на основе накопительного пакета с нулевым разглашением (zkRollup). Для этого байт-код EVM компилируется в микрокоды операций и выполняется в uVM — виртуальной машине, которая использует доказательства SNARK и STARK для проверки действительности выполнения программы.

zkSync Era

zkSync — это EVM-совместимый накопительный пакет ZK, разработанный компанией Matter Labs и работающий на собственном zkEVM. ZkSync обеспечивает полную совместимость с Ethereum, компилируя код контракта, написанный на Solidity, в Yul, промежуточный язык, который можно компилировать в байт-код для разных виртуальных машин. Затем он компилирует байт-код Yul в пользовательский, совместимый со схемами набор байт-кодов, специально разработанный для zkEVM от zkSync.

StarkNet

Подобно другим решениям 2 уровня на базе накопительных пакетов ZK, таким как zkSync и Polygon, блокчейн StarkNet объединяет огромное количество транзакций в пакеты и используя криптографию подтверждает их достоверность. Отличительной чертой StarkNet является использование собственного механизма, доказательства с нулевым разглашением zkSTARK.

Scroll

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