作者:Manta Network 联合创始人Kenny Li 翻译:金色财经0xnaitive
本文要点:
零知识以太坊虚拟机 (zkEVM) 是一种以太坊状态机,可以与零知识证明 (ZKP) 技术兼容的方式执行智能合约。
zkEVM 扩展了以太坊上零知识rollup (zk-rollups) 的功能,以支持去中心化应用程序 (DApp)。
zkEVM 可以轻松部署现有的以太坊项目和使用ZKP的新项目,以增强以太坊生态系统。
前言
以太坊开发人员在 2014 年首次提出以太坊网络时并没有考虑ZKP 技术。然而,近年来,ZKP 受到了关注,并有望在区块链领域发挥更加突出的作用。因此,将 ZKP 技术与以太坊的虚拟机相结合的努力已经加强。
要了解什么是 zkEVM,让我们首先简要回顾一下它的两个基本概念:zk-rollups 和 EVM。
什么是 Zk-Rollup?
Rollup 是一种扩展解决方案,它在主链之外编译大量交易执行,并将数据作为单个交易发送回主网络。这个过程增加了吞吐量,同时降低了执行这些交易的成本。
在以太坊上,一个Rollup中的交易被压缩并提交给以太坊主网,支付验证单笔交易的费用。以太坊主网提供结算并验证汇总中包含的交易数据。
zk-rollup是一种使用 ZKP 技术的rollup,ZKP 技术是一种加密技术,可以在不泄露信息本身的情况下验证一条信息的有效性。zk-rollups 不需要将所有交易数据发布到以太坊主网;他们只需要状态差异(例如用户帐户状态的更改)和有效性证明,从而降低过程中Gas费。
zk-rollups的安全性来自于ZKP密码学,通过密码学的手段来验证证明,实现去信任化。这与optimistic rollups等其他 rollup 不同,后者的安全性来自经济学博弈论,在该理论中,不良行为者会因潜在损失而失去动力,而挑战者会受到激励。
什么是 EVM?
EVM 是运行以太坊账户系统和智能合约的状态机。每次智能合约执行都会触发 EVM 从旧状态转换到新状态。EVM 定义了计算从一个区块到另一个区块的新状态和有效状态的规则。
状态是以太坊中的一个重要概念。它是一个 Merkle Patricia Trie 数据结构,代表以太坊的当前状态,并允许任何人从当前区块一直追踪交易信息回到创世区块。
所有参与维护以太坊的节点都存在以确保连续性和共识,这使得每个节点都可以看到确切的当前状态。EVM 在保持这种一致性方面发挥着关键作用。
ZkEVM 如何工作?
EVM 默认不支持 ZKP。zkEVM 旨在确保以太坊状态的连续性,同时提供所有信息正确的证据。这样,在维护安全性和隐私性的同时,验证了这些过程计算中涉及的各种因素。
zkEVM 通过将以太坊环境复制为 zk-rollups 来做到这一点。它获取初始状态,计算所有交易,然后输出一个新的更新状态以及随附的 ZKP。该证明被提交给验证者智能合约,该合约检查初始状态和新状态输出的正确性,而无需单独验证所有交易。
由于 zkEVM 基于 EVM,开发人员能够轻松地将以太坊 DApp 和智能合约移植到 zkEVM,而无需进行 ZKP 开发工作。换句话说,zkEVM 允许 zk-rollups 执行智能合约,此外还有以前在没有 zkEVM 的情况下支持的代币交换和支付。
由于 EVM 的兼容性特性,开发人员可以使用现有的 EVM 工具和编程语言 Solidity 构建新产品,同时享受 zkEVM 带来的增强安全性。同样的好处也适用于用户——他们可以继续使用相同的 DApps 和熟悉的工具,但具有更高的安全性和隐私性。
EVM 兼容性与 EVM 等效性
当区块链被称为 EVM 兼容时,这意味着它提供了一个可以部署以 Solidity 编程语言编写的 DApp 的环境。Solidity 专为开发在以太坊网络上运行的智能合约而设计。
事实上,以太坊开发人员可以从以太坊复制和粘贴现有 DApp 的代码,并以最少的修改将其部署到其他 EVM 兼容链上。对于用户来说,任何兼容 EVM 的链地址都与他们的以太坊地址相同。
这意味着地址与 Metamask 和 Trust Wallet 等主流钱包兼容。目前,主要的EVM兼容链包括BNB Chain、Avalanche C-Chain和Polygon。
不要将 EVM 兼容性与 EVM 等效性混淆,EVM 等效性意味着从 DApp 开发人员的角度来看,2 层rollup与以太坊第 1 层几乎相同。
如果用操作系统来类比,EVM 等效性类似于通过 Apple Cloud 恢复文件和设置,如果用户之前的计算机和新计算机都运行在 Apple 的操作系统上。
相比之下,EVM 兼容性意味着如果一台新电脑切换到 Windows 系统,则需要通过云存储下载原始文件并转换以恢复首选设置和旧文件。
不同类型的 ZkEVM
直接使用 EVM 生成和验证 ZKP 非常慢,因为以太坊最初设计并不支持 ZKP 技术。在某些情况下,这可能需要长达几个小时。然而,必须在 EVM 兼容性和 ZKP 效率之间取得平衡。
以太坊创始人 Vitalik Buterin 将 zkEVM 分为以下四种类型。类似于区块链不可能三角,它们各自在 ZKP 性能效率和 EVM 兼容性之间有不同的权衡。
类型一:共识级等价——zkEVM完全等价于以太坊
在共识层面,Type 1 zkEVM——也称为 enshrined rollup——相当于以太坊,zkEVM 链状态和交易与以太坊相同。它们可以相互验证块并直接与以太坊执行客户端一起使用。
Type 1 zkEVM 使以太坊本身更具可扩展性,可以直接引入以太坊主网上。缺点是ZKP效率极差,需要大量的计算来验证。解决方案是在未来为zk-SNARKs使用大规模并行验证者或专用集成电路。
具有高 ZK 效率的类型 1 zkEVM 将是最理想的 zkEVM 形式。目前,有许多项目正在构建或探索这种类型的 zkEVM。
类型 2:字节码级等价——完全等价于 EVM
Type 2 完全等价于 EVM 而不是以太坊。它在数据结构(如区块结构和状态树)方面不同于以太坊,并删除了一些对 ZK 不友好的堆栈操作。
它与以太坊现有的 DApp、调试工具和开发者基础设施完全兼容。字节码级等价可以加快证明时间,尽管不是很明显。Type 2 一个明显的缺点是它很昂贵,与 ZK 没有协同作用,效率低且昂贵。
类型2.5:与 Type 2 类似,但修改了 gas 费用
Type 2.5 具有 Type 2 的优点和缺点,但 gas 费用略低。
类型 3:字节码级等价——几乎等同于 EVM
Type 3在Type 2的基础上进一步牺牲了兼容性来提高ZK效率。它删除了一些在 zkEVM 上难以实现的功能,例如预编译,因此一些需要使用此功能的 DApp 代码必须重写。
类型4:开发语言级等价——高级语言等价于EVM
类型 4 EVM 具有最高的 ZK 性能,但兼容性相对较差。
结束语
zkEVM 实现的主要目的是将 ZKP 计算的支持扩展到智能合约执行,并在此过程中将DApps扩展到所有 EVM 兼容协议。但 ZKP 的应用并不止于此。
ZKP 技术可能与Web2用例兼容。将各种 Web2 用例与 ZKP 相结合可以使 Web3 应用程序更加流畅和用户友好。它还会授予已经习惯使用传统互联网浏览器的用户访问Web3 的权限,进而推动 Web3 的采用。