近期,多个 ZKR(zk-rollup)项目密集官宣最新进展和路线规划:
7 月 19 日,基于 zkEVM 的 ZKR 项目 Scroll 宣布发布测试网。
7 月 20 日,Polygon 宣布推出 Polygon(Hermez)——“第一个 EVM 等效的 zkEVM ZKR 项目”。
同日,zkSync 宣布 zkSync 将作为第一个基于 zkEVM 的 ZKR 在 100 天后上线主网。
作为其中的关键词,zkEVM,在推特上引发用户的热烈讨论。有人认为,这些进展标志着”L2 Summer”的来临。
为什么 zkEVM 如此吸引关注?zkEVM 是 ZKR 项目的关键。它能在提高性能的同时,高层次地兼容(甚至等效)EVM,让以太坊 L1 上的应用不需要修改就可以直接迁移到 L2。因此,zkEVM 也被许多人认为是 L2 Rollup 的“终结游戏”与“以太坊杀手的杀手”。
为将 zkEVM 抽丝剥茧阐释清晰,Odaily星球日报将本系列由浅入深拆分为三篇:
一、zkEVM 的基本介绍和细分层次
二、zkEVM 和 zkVM 项目盘点
三、zkEVM 与 zkVM 项目对比分析
此为第一篇。
基本信息
zkEVM 是一种通过零知识证明验证程序正确性的虚拟机,旨在以支持零知识技术的方式执行智能合约,是 ZKR 项目兼容以太坊的关键技术。
图片来源:https://www.cth.group/insights/page/zk/
zkEVM 由两个单词合并而来。ZK 是 Zero Knowledge 零知识的缩写,EVM 是 Ethereum Virtual Machine 以太坊虚拟机的缩写。
ZK 技术能够提高区块链的性能,但发展的主要障碍之一在于缺乏 EVM 兼容,EVM 与以太坊智能合约语言 Solidity 设计之初没考虑到未来会需要适配 ZK ,而让以太坊适配 ZK 难度太大,因此需要新兴的 ZKR 项目来适配 EVM ,zkEVM 作为 ZKR 项目连接 ZK 技术与以太坊生态的桥梁应运而生。
图片来源:Miden ETH Amsterdam 演讲
实现了 zkEVM 的 ZKR 一方面可以利用 ZK 技术的高性能,一方面可以继承以太坊的开发者资源如经过实战测试和审计的代码库、广泛的工具、文档、以及大量的开发者,这可以让以太坊的应用、资产、用户无损、简洁、快速地转移到 TPS 更高、gas 更低的 ZKR L2 上。因此 ZKR 也被包括 V 神在内的诸多专业人士认为是最有前途的 L2 解决方案。
常见误区
zkEVM 有时会和“EVM 兼容”混淆。zkEVM 在专业人士的讨论中往往指的是在字节码或操作码层次实现 EVM 兼容的 ZKR 项目,而 EVM 兼容不仅包括 Solidity 语言层次的兼容,还包括字节码、操作码、共识层次的兼容。
如 StarkNet 在语言层次实现了 EVM 兼容,但它是 zkVM 不是 zkEVM;而Polygon Hermez、Scroll、zkSync 等 ZKR 项目不仅能够兼容 Solidity 语言,还能够兼容以太坊上的大部分开发工具、协议标准、字节码,它们是实现了 zkEVM 的 ZKR。
小结下,兼容 EVM 的项目不一定是 zkEVM ,因为兼容 EVM 有多个层次;实现 zkEVM 的项目一定兼容 EVM ,因为真正的 zkEVM 是等效(高水平的兼容) EVM 。我们将在下面详细解释 zkEVM 以及 EVM 兼容的详细区别。
兼容区别
Suning Yao 在《Foresight Ventures:解读 zk、zkVM、zkEVM 的现状及未来》 提到关于 EVM 兼容的定义。
EVM 兼容性:Solidity 等语言层面的适配。
EVM 等同性:EVM 字节码层面的适配。
EVM Specification 适配:也就是通常所说的真正的 zkEVM,大多情况下甚至是向后兼容的优化后的超集,能提供账户抽象(就是每个账户都是一个智能合约)等 EVM 没有提供的特性。
Fundamental Labs也在 《FL Research | Incomplete Guide to ZK: Why ZK Matters?》 提到 EVM 兼容有三个层次(从低到高):
语言级别: 在这种状态下没有真正的 zkEVM。转译器将 Solidity 转换为与 EVM 完全不同的 ZK 友好型 VM。StarkNet(zkVM) 采用这种方法,目前已经开发出转译器 Warp 可将 Solidity 转译为 StarkNet 的原生语言。
字节码级别: ZK 证明系统在这个 zkEVM 中发挥着重要作用。在这个阶段,zkEVM 生成的状态根与以太坊 EVM 不兼容,但以太坊上的应用可以原封不动移植到 zkEVM。包括 Polygon Hermez 、Scroll 采用了这种方法。zkSync 原定方向为 zkVM ,现改为 zkEVM,根据最新公告支持了以太坊绝大部分操作码,但目前处于闭源状态无法详细审核。
共识层面: zkEVM 相当于以太坊上的 EVM,它为以太坊上的状态根生成证明。 V 神宣称,在以太坊路线图中,未来以太坊将集成一个共识级别的 zkEVM 。
智能合约通过 LLVM IR 的中间代码进行转化,转化成 Bytecode(字节码)。这些 Bytecode 会存储在区块链上,当智能合约被调用的时候,便会将 Bytecode 转化成对应的 Opcode(操作码),再由 EVM 和节点硬件来执行。
图片来源:《Foresight Ventures:解读 zk、zkVM、zkEVM 的现状及未来》
参考文献
1.《ETHEREUM VIRTUAL MACHINE (EVM)》
2.《Zero Knowledge EVMs: What is a zkEVM?》
3.《Foresight Ventures:解读 zk、zkVM、zkEVM 的现状及未来》
4.《Cipholio 深度分析|漫谈ZKVM的方案及未来》
5.《FL Research | Incomplete Guide to ZK: Why ZK Matters?》