- 2024 年 6 月 13 日
- 发布者: ChainEpic
- 类别: 名词解释和科普
摘要
- 零知识以太坊虚拟机(zkEVM)是一种以太坊状态机,可通过与零知识证明(ZKP)技术兼容的方式执行智能合约。
- zkEVM扩展了以太坊中的零知识汇总(zk-rollups)功能,以支持去中心化应用程序(DApp)。
- zkEVM可采用零知识证明轻松部署现有的和新的以太坊项目,以此增强以太坊生态系统。
导语
早期的以太坊开发人员在2014年首次提出该网络时并未考虑零知识证明技术。但近年来,零知识证明备受关注,并有望在区块链领域发挥更为突出的作用。因此,零知识证明技术与以太坊虚拟机的结合力度得以加大。
要了解什么是zkEVM,我们需要简要回顾一下与之相关的两大基础概念:零知识汇总和以太坊虚拟机。
什么是零知识汇总?
汇总是一种扩展解决方案,在主链之外编译大量交易执行,并将数据作为单笔数据发送回主网络。这个过程增加了吞吐量,同时降低了执行这些交易的成本。
在以太坊中,汇总内的交易经过压缩后提交至以太坊主网,用于支付验证单笔交易的费用。以太坊主网提供结算并验证包含在汇总内的交易数据。
零知识汇总即采用零知识证明技术的汇总,而零知识证明技术是一种密码学技术,可在不泄露信息本身的情况下验证某条信息的有效性。零知识汇总无需所有交易数据发布到以太坊主网,只需发布状态差异(即用户账户状态变更等)和有效性证明,从而降低此过程中的燃料费。
零知识证明密码学保障零知识汇总的安全性,即采用密码学手段验证证明并实现去信任化。这与乐观汇总等其他汇总有所不同。乐观汇总的安全性基于经济博弈论。按照该理论,不法分子会因潜在损失而失去动力,挑战者则因激励而产生动力。
什么是以太坊虚拟机?
以太坊虚拟机是运行以太坊账户系统和智能合约的状态机。每次执行智能合约都会触发以太坊虚拟机从旧状态转换至新状态。以太坊虚拟机定义了计算从一个区块到另一个区块新状态和有效状态的规则。
“状态”是以太坊中的重要概念。状态是默克尔帕特里夏字典树(Merkle Patricia Trie)数据结构,代表以太坊的当前状态,所有人均可从当前区块追踪回创世区块的交易信息。
参与维护以太坊的所有节点都有助于确保连续性和共识,因此每个节点都能了解当前的确切状态。以太坊虚拟机在维持这种一致性方面发挥着至关重要的作用。
ZkEVM如何运作?
以太坊虚拟机默认不支持零知识证明。zkEVM旨在确保以太坊状态的连续性,同时提供所有信息正确的证明。通过这种方式,在保持安全和隐私的前提下,验证参与这些计算过程的各种因素。
zkEVM通过将以太坊环境复制为零知识汇总来实现这一目标。zkEVM读取初始状态,计算所有交易,然后输出新的更新状态及其所附的零知识证明。该证明提交给验证者智能合约,由智能合约验证初始状态和新状态输出的正确性,而无需单独验证所有交易。
由于zkEVM基于以太坊虚拟机构建,开发者无需开发零知识证明,即可轻松将以太坊DApp和智能合约移植到zkEVM。换言之,zkEVM允许零知识汇总执行智能合约,还包括此前未受zkEVM支持的代币交换和支付。
由于以太坊虚拟机的兼容性特性,开发者可以利用现有的以太坊虚拟机工具和编程语言Solidity来打造新产品,同时享有zkEVM带来的增强安全性。用户同样能从中受益。他们可以继续使用相同的DApp和熟悉的工具,并且安全隐私加倍。
以太坊虚拟机的兼容性与等效性
如某个区块链称与以太坊虚拟机兼容,则该区块链提供可部署Solidity编程语言编写的DApp环境。Solidity专为开发在以太坊网络中运行的智能合约而设计。
事实上,以太坊开发者可从以太坊复制粘贴现有DApp的代码,并只需微小改动即可部署到其他与以太坊虚拟机兼容的各种链上。对于用户而言,任何与以太坊虚拟机兼容的地址均与他们的以太坊地址相同。
这意味着,这些地址与Metamask和Trust Wallet等主流钱包兼容。目前,与以太坊虚拟机兼容的主流链包括BNB Chain、Avalanche合约链(C链)以及Polygon。
以太坊虚拟机兼容性与等效性不能混为一谈。也就是说,在DApp开发者看来,Layer 2汇总与Layer 1以太坊几乎相同。
按照操作系统类比,假设用户新旧计算机都运行在Apple操作系统中,以太坊虚拟机等效性类似于通过Apple Cloud恢复文件和设置。
相比之下,以太坊虚拟机则等同于新计算机切换到Windows系统,需要通过云存储下载并转换初始文件,以恢复首选设置和旧文件。
不同类型的ZkEVM
由于以太坊最初设计不支持零知识证明技术,直接使用以太坊虚拟机生成和验证零知识证明极其缓慢。在某些情况下,可能需要长达几个小时。然而,当务之急是在以太坊虚拟机兼容性和零知识证明效率之间取得平衡。
以太坊创始人Vitalik Buterin将zkEVM分为以下四个类型。与区块链三元悖论类似,四种类型均需在零知识证明性能效率与以太坊虚拟机兼容性之间进行权衡取舍。
第1类:共识级别等效性,即完全等效于以太坊的zkEVM
从共识层面来看,第1类zkEVM(也称“神圣汇总(enshrined rollup)”)等效于以太坊,zkEVM链状态和交易与以太坊相同。此类zkEVM可以相互验证区块,并直接与以太坊执行客户端共同使用。
第1类zkEVM使以太坊本身更具可扩展性,可以直接引入到以太坊主网。缺点在于零知识证明效率极低,需要大量计算进行验证,而解决方案是未来使用zk-SNARK的大规模并行验证者或专用集成电路。
零知识效率高的第1类zkEVM将是最理想的zkEVM形式。目前有许多项目正在构建或探索此类zkEVM。
第2类:字节码级别等效性——完全等效于以太坊虚拟机
第2类完全等效于以太坊虚拟机而非以太坊。与以太坊的区别在于数据结构(即区块结构和状态树),且删除了不便于零知识的某些堆栈操作。
第2类与以太坊的现有DApp、调试工具和开发者基础架构完全兼容。虽然不是很明显,但字节码级别等效性可节省证明者的时间。第2类的明显劣势在于费用昂贵,与零知识无协同作用,效率低且成本高。
第2.5类:与第2类类似,但燃料费有所调整。
第2.5类具有第2类的优缺点,但燃料费略低。
第3类:字节码级别等效性——几乎等效于以太坊虚拟机
在第2类的基础上,第3类进一步舍弃了兼容性来提升零知识效率。这类zkEVM删除了其中难以实施的功能,例如预编译。因此,某些需要此功能的DApp必须重新编写代码。
第4类:开发语言级等效性——高级语言等效于以太坊虚拟机
第4类以太坊虚拟机的零知识性能最高,但兼容性相对较差。
结语
实施zkEVM的主要目的在于将零知识证明计算支持扩展到智能合约执行中,并在此过程中将DApp扩展到所有兼容以太坊虚拟机的协议中。但是,零知识证明的应用并不止于此。
零知识证明技术有望与Web2用例兼容。各种Web2用例与零知识证明相结合可以使Web3应用程序更流畅且便于用户使用。如此一来,已经习惯使用传统互联网浏览器的用户也会访问Web3,进而推动Web3的普及。