买币
行情
现货
合约
理财
活动
更多
reward-center新手专区
报告分析详情
项目调研

ZK-EVM:ZK-Rollup的圣杯

  • ZEC0%
  • ETH0%
  • ZK0%
  • DYDX0%
  • GTC0%
CoinEx logo
发布于 2022-10-31

以太坊扩容一直是一个热门话题,备受众多用户期待。一个普遍的误解是2022年9月的以太坊合并(将共识机制从PoW转变为PoS)会提升以太坊的性能。实际上,合并并未改变区块大小,区块时间仅从平均13秒减少到12秒,这意味着性能提升有限。以太坊短期的扩容希望仍然寄托在二层网络(Rollups)上。在两种主要的Rollup方案——乐观卷叠(Optimistic Rollup)和零知识卷叠(ZK-Rollup)中,许多人更青睐后者。ZK-Rollup不仅通过批量处理链下交易降低网络费用,还通过零知识证明继承了以太坊的安全性,无需像Optimistic Rollup那样设置挑战期。

仅支付功能的ZK-Rollups

早期的ZK-Rollups因缺乏EVM兼容性而受到批评,因此无法支持智能合约功能。例如,Gitcoin的主要捐赠支付方式zkSync 1.0只能支持基本转账。目前的ZK应用,如dYdX,都是定制开发且不可互操作的,这使得开发变得困难。此外,不同的ZK应用使用不同的定制电路,限制了可组合性。因此,市场迫切需要一个与以太坊智能合约兼容的ZK-Rollup,其中主要障碍是实现一个支持零知识证明的虚拟机。本文将介绍EVM、ZK-EVM以及主要的ZK-EVM项目及其差异。

什么是EVM?

以太坊虚拟机(EVM)作为以太坊的执行引擎,是智能合约的运行环境。开发者用Solidity等高级语言编写业务逻辑,然后编译成字节码。EVM将这些字节码解释为机器可读的操作码,执行相应指令以更新系统状态。EVM是一个基于堆栈的虚拟机,与堆栈、内存和存储交互。对于以太坊及各种扩容方案或竞争链而言,EVM已成为以太坊生态系统的代名词,代表着其开发者、应用程序和工具。非EVM兼容的区块链必须建立自己的生态系统,需要开发者重新创建应用程序和工具。与EVM兼容允许开发者无缝迁移现有的以太坊合约并使用以太坊的工具。

ZK-EVM:ZK-Rollup的圣杯


新兴的ZK-EVM

尽管EVM在以太坊生态系统中发挥着关键作用,但开发ZK-EVM具有挑战性。ZK-EVM在保持EVM兼容性的同时生成零知识证明,允许以太坊智能合约无需修改即可部署,并通过零知识证明验证计算。EVM在设计时并未考虑ZK兼容性,因为零知识证明算法(如zk-SNARKs)直到2016年才被Zcash广泛采用。某些EVM操作对ZK不友好,使得证明生成变得困难、缓慢或体积庞大。

开发ZK本身就以复杂著称,涉及密码学、数学和硬件专业知识。构建ZK-EVM更具挑战性,因为它既需要EVM兼容性又需要ZK友好性。幸运的是,近年来ZK技术取得了重大突破。ZK-EVM领域的参与者,包括Starkware、zkSync 2.0、Polygon和Scroll,都在加速ZK-EVM的开发,大多数计划从2023年开始启动主网。


ZK-EVM项目比较

ZK-EVM并不遵循统一的设计或标准,每个项目都在EVM兼容性和ZK支持之间寻求自己的平衡。主要有两种方法:

1. 编程语言级支持:定制EVM操作码以优化ZK,重构虚拟机以支持ZK友好的操作,并将Solidity编译成新的VM操作码。

2. 字节码级支持:保持原生EVM操作码兼容性。

第一类项目包括Starkware的StarkNet和zkSync 2.0。StarkNet通过将Solidity编译成StarkNet的语言Cairo,可以在其ZK友好的VM上运行任何以太坊dApp。类似地,zkSync 2.0通过其Yul和Zinc编译器实现ZK-EVM功能,其中Yul是Solidity的中间表示,而Zinc是一种基于Rust的语言,用于智能合约和通用ZK电路。两者都建立在LLVM框架上,以实现高效的ZK-EVM字节码。

这些项目在语言层面提供Solidity兼容性,允许开发者迁移Solidity合约,尽管底层VM架构与EVM不同,技术上是一个zkVM。由于VM指令集的差异,某些现有开发工具可能无法直接使用,但这种方法更加ZK友好,可以更高效地生成证明。

在第二种方法中,像Polygon ZK-EVM和Scroll这样的项目保持原生EVM操作码兼容性。Polygon的uVM是一个经过ZK优化的VM,通过将EVM字节码编译成微操作码来执行,使用自定义操作码来增强EVM操作。Polygon ZK-EVM完全兼容EVM,使现有的智能合约、开发工具和钱包能够无缝运行。Scroll同样为每个字节码设计电路,验证每个EVM执行步骤,包括加载字节码、执行操作码和更新存储。

ZK-EVM:ZK-Rollup的圣杯 - image 2


在Vitalik的博客中,他将ZK-EVM分为几种类型。类型1指直接在以太坊上开发的ZK-EVM,这很复杂且效率低下,以太坊基金会正在进行研究。类型2、2.5和3是EVM等效的ZK-EVM,目前Scroll和Polygon Hermez处于类型3,正在向类型2.5甚至类型2发展。类型4包括与高级语言兼容的ZK-EVM,如Starkware和zkSync。这些类型没有内在的优劣之分,因为没有标准化的ZK-EVM模型。正如Vitalik所说,"理论上,以太坊不需要为L1使用标准化单一的ZK-EVM实现;不同的客户端可以使用不同的证明,这样我们可以继续受益于代码冗余。"

ZK-EVM:ZK-Rollup的圣杯 - image 3


结论

每个ZK-EVM解决方案都有其独特优势,由于大多数项目尚未开源其代码,效率比较尚无法进行。作为最大的智能合约平台,以太坊的生态系统和网络效应很强。ZK-EVM作为ZK-Rollups的圣杯,利用以太坊的生态系统和网络效应继承其安全性,降低费用,并培育充满活力的开发者生态系统。2021年初,Vitalik在其博客中提出,短期内Optimistic Rollup可能在通用EVM计算方面表现更好,而ZK-Rollup可能在更简单的支付、交易和特定应用场景中表现出色。然而,随着zk-SNARK技术的进步,ZK-Rollup可能在中长期内在所有用例中占据优势。随着多个ZK-EVM项目启动主网,以太坊的二层扩容前景在不久的将来将会非常令人期待。

查看完整内容