ARKS:万字详解zkEVM:以太坊可扩展性的未来

原文作者:ChristineKim

原文编译:aididiaojp.eth、0x11,ForesightNews

简介

零知识以太坊虚拟机zkEVM是一项备受关注且可能改变游戏规则的技术,它可在短期和长期内提高以太坊的可扩展性。今年三个主要的以太坊扩容项目zkSync、Polygon和Scroll都各自宣布了其zkEVM实施的重大进展,其中许多项目已在今年的早期启动alpha阶段,如今已作为L2区块链独立运行。随着时间的推移,zkEVM有可能直接在以太坊的基础层运行。

zkEVM是可以执行与以太坊虚拟机(EVM)相同的高级编程语言或低级字节码的虚拟机,并使用零知识证明ZKP证明此代码,另外加密证明可在不泄露的情况下验证有关数据本身的任何信息,例如其属性或内容。早在1982年,计算机科学家Goldwasser、Micali和Rackoff首次引入ZKP概念。ZKP经常与密码学的另一个分支同态加密混淆。同态加密允许对加密数据执行操作而无需解密数据,由Rivest、Adleman和Dertouzos于1978年首次提出,并已成为实现云计算和存储的关键技术之一。值得注意的是,同态加密也被用于一些公共区块链协议利用,如隐私币Grin用它来混淆交易金额。

在过去的40年里,计算机科学家发明了多种算法来安全高效地生成ZKP,其中许多算法属于两大类:可扩展的透明知识论证(STARKs)或简洁的非交互式知识论证(SNARKs)。这些算法是为大范围用例开发的,包括核裁军、身份认证系统,以及最近可扩展的公共区块链和加密货币。特别是在以太坊上,许多开发人员认为ZKP是扩展的「圣杯」,因为与其他加密方案相比,ZKP具有简洁和易于验证的特点。难以构建或破解但易于验证是密码协议开发人员的共同目标,因为这样它就可以被广泛而有效地使用。

零知识系统很难被推广和应用于证明任意复杂性的代码,构建ZKP以本地支持和证明以太坊区块链上所有类型的交易活动一直是开发人员在过去几年中进行的一项持续研究计划。直到2021年11月,Starkware才推出了第一个用于证明基于以太坊交易的通用ZK系统,这是通过Starkware团队创建的自定义编程语言Cairo实现的。然而在2022年7月,三种不同基于以太坊的L2协议包括zkSync、Polygon和Scroll宣布在利用ZKP以zkEVM的形式扩展以太坊方面取得了突破。

注意:虽然通俗地称为zkEVM,但这些虚拟机并没有利用ZKP的隐私优势,而是完全受益于ZKP的安全和效率优势。因此,这些类型的虚拟机更准确的名称是有效性证明生成EVM,但在本报告中,它们将使用更流行的名称zkEVM。

本报告旨在让读者熟悉zkEVM的一般概念,并了解其在以太坊开发中的各种实现方式。由于zkEVM是一个比较抽象的主题,本报告首先简要概述以太坊网络的现状,并通过介绍区块生产、EVM和Rullups等核心概念为理解zkEVM奠定基础。然后,我们将总结以太坊上可以存在的不同类型的zkEVM,并比较目前生产中的5种主要zkEVM实现。我们将重点介绍这项新兴技术在实施中面临的挑战,以及我们对zkEVM随时间推移的竞争格局的展望。总体而言,zkEVM仍处于以太坊开发和采用的早期阶段。

今天的以太坊

在深入研究zkEVM的复杂性之前,首先要从高层次理解交易是如何包含在以太坊区块中的。

区块产生

当用户向以太坊提交新交易时,连接到网络的计算机将交易存储在称为内存池的本地数据结构中。内存池负责维护未确认交易的列表,然后随机选择运行节点和抵押32ETH的验证者,通过它们将内存池中的交易批量处理成块。选择将新区块添加到以太坊区块链的验证者有时被称为「提议者」。为了从最大可提取价值MEV中获得额外奖励,一些提议者在构建区块时将依赖第三方区块构建器而不是本地内存池。

区块按顺序排列,并通过父块链接在一起。每个区块都包含其父块的哈希值,并通过将区块链接在一起形成区块链数据结构。通过父块哈希链接块如下图所示:

在2022年9月15日之前,以太坊依赖工作量证明PoW共识机制,矿工代替验证者负责区块生产,矿工无需抵押大量资本,而是需要消耗大量电力来处理用户交易。

在PoW和PoS共识协议下,以太坊区块链缺乏可扩展性的根源在于有限的区块空间。区块空间在以太坊上以Gas为限制单位。需要更多计算工作才能执行的交易通常以较高的Gas单位定价,而具有较低计算成本的交易具有较低的Gas成本。Gas通过以太坊网络自动设置称为基本费用的动态Gas费率转换为ETH。以太坊协议限制了区块空间,它们最多只能包含3000万单位的Gas。这个最大区块gas限制确保了快速的区块传播时间并降低了硬分叉的风险。

以太坊虚拟机

一旦交易被包含在以太坊上的一个区块中,它们就会通过称为以太坊虚拟机(EVM)的自定义运行环境执行。EVM旨在在以太坊上部署任意复杂度的代码,这是使以太坊成为通用区块链的根本,有时也称为图灵完备系统。

EVM执行交易的方式存在一定规则。首先,EVM将人类可读的编程语言编译为面向机器或「低级」语言,称为EVM字节码。然后,EVM将字节码解析为称为「操作码」的顺序指令列表。每个操作码命令EVM执行不同的任务,并以十六进制形式在EVM字节码中表示。例如,在链上执行智能合约时命令EVM保留瞬态数据的操作码以助记符表示为「MSTORE」,或以十六进制形式表示为「0x52」。为了帮助读者概念化操作码,以下是以太坊黄皮书中定义的简单操作码:

多年来,以太坊开发人员向EVM不断添加新的操作码,他们还添加了预编译,使用户能够在网络上执行更高级的操作,例如哈希函数和标量乘法。作为同类中的第一个运行环境,EVM已被广泛用作通用公共区块链上智能合约部署的标准。然而,作为同类技术中的第一项,EVM确实存在设计限制,其中与本报告最相关的是EVM缺乏与ZKP的兼容性。

Rollups

为了提高以太坊的可扩展性,有一些L2网络将交易执行从基础层抽象到Rollups。Rollups压缩交易数据,使得将一批交易提交到基础层所需的区块空间量明显低于通过链上的内存池单独确认这些交易所需要的区块空间。Rollups由被称为「排序器」的网络运营商运营,而不是验证者或矿工。排序器负责验证Rollups的状态转换。它们是将用户交易打包成一个Rollups批次,然后将这批交易的证明提交给以太坊基础层的实体。下图说明了排序器在Rollups中的作用:

Rollups不同于以太坊上的其他扩展解决方案,例如Plasma和状态通道。在以太坊的历史进程中,核心开发人员已经研究并废弃了以太坊的可扩展性路线图。Rollups有两种主要类型:OptimisticRollups和ZKRollups。OptimisticRollups依赖于欺诈证明,这意味着L2网络状态的更改会在没有直接证明其有效性的情况下部署到以太坊。只要至少有一个诚实参与者在观察OptimisticRollup的状态转换,就可以检测并取消无效的状态转换。就Arbitrum和Optimism而言,可以提交欺诈证明的「挑战窗口」持续一周。一旦挑战窗口结束,optimisticRollup的状态转换就被认为是最终的和有效的。

另一方面,ZKRollups依赖于ZKP,每次在L2上处理交易批次时,ZKP都会生成有效性证明,并发布到以太坊。自动生成所有交易批次的有效性证明同时也增加了ZKRollup的安全保障。这也意味着每次向以太坊提交新的有效性证明时都可以从ZKRollups中提取资金,而对于optimisticRollups来说,为了允许争议和欺诈证明的生成,通常需要大约7天的等待期。ZKRollups还提供了比optimisticRollups更好用的数据压缩功能。下表总结了optimistic和ZKRollup之间的差异:

OptimisticRollup相对于ZKRollups的主要优势是OptimisticRollup的虚拟机与EVM的虚拟机几乎相同。目前在以太坊上运行的OptimisticRollup实现,如Optimism和Arbitrum,模拟了与以太坊相同的交易执行环境,分别称为OVM和AVM。大多数ZKRollups都是为某些应用程序特定的,这意味着它们不支持所有类型的基于以太坊的交易和DApp。Loopring、StarkExRollups和zkSync1.0是特定应用程序ZKRollups的示例,它们支持特定类型的支付、代币交易和NFT铸币。

StarkNet等某些ZKRollups是通用的,这意味着它们支持所有类型的交易和DApp。然而,这些ZKRollup要求DApp开发人员学习如何在新的自定义执行环境中执行他们的智能合约代码,通常该环境针对生成ZKP而优化,而不是EVM兼容性。鉴于现有的去中心化应用程序和用户难以加入新的执行环境,这对在以太坊上采用ZKRollups提出了挑战。为了克服这个问题,PolygonHermez、zkSync和Scroll等ZKRollups项目正在致力于实现与EVM兼容的ZKRollups,另外,EVM是以太坊上所有智能合约代码的原生执行环境。

STARKs、SNARKs、VolitionsandValidiums

在实践中,Rollups不仅根据链上发布的证明类型进行区分,还根据Rollups的数据可用性策略和证明算法进行区分。

目前存在两大类有效性证明,称为SNARKs和STARKs。

SNARKs依靠椭圆曲线密码学,一种在比特币和以太坊中最常用的数据加密技术。SNARKs通常还依赖于可信设置,这意味着该算法需要由可信实体提前生成一段数据。可信设置并不是重复的事件,而是一个人或一群人生成核心数据的一次性过程。此数据称为公共参考字符串(CRS),它是一个在zk-SNARK算法中用于生成可信赖的证明的数值。如果生成CRS所需的输入受到损害,那么可能会导致错误的证明生成。因此,重要的是所有可信设置参与者需销毁用于生成CRS/SRS的输入,或者在仪式完成后使其无法恢复。

STARKs不依赖于椭圆曲线或可信设置。STARKs依赖哈希函数,一些开发人员认为哈希函数有利于对抗量子加密。然而,STARKs更复杂,它需要更多的计算资源才能运行。它在2018年被推出,晚于SNARKs,而SNARKs自2012年以来一直存在。由于这些原因,SNARKs比STARKs被更广泛地使用。基于STARKs的算法的一些示例包括Fractal、SuperSonic、Fri-STARKs和genSTARK。

除了生成有效性证明的不同方法外,ZKRollups的数据可用性策略也不同。数据可用性策略将决定交易批次的哪些组件最终发布在链上。Rollups,包括Optimistic和ZK,通常在每次处理一批交易时将三份数据提交到主网以太坊。首先,Rollups的验证者将新网络状态的根哈希提交给以太坊。状态记录在一个Merkle树数据结构中,如下图:

根哈希是整个Merkle树的密码承诺,有时也称为状态承诺。虽然并不要求所有ZKRollup都将根哈希提交给以太坊,但为了使发布在以太坊上的数据能够轻松重建和验证在Rollup上执行的交易,他们通常会这么做。

除了用于确认L2区块链新状态的高级根哈希之外,以太坊上还记录了加密证明。在如果是OptimisticRollup的情况下,此证明可以是ZKP或欺诈证明。它可以通过STARKs或SNARKs算法生成。最后,除了这两条数据之外,ZKRollups还向以太坊发布了处理交易批次的压缩版本,也称为Statedelta。Statedelta是一种将大量交易数据以经济高效的特点提交到以太坊的方式,这是ZKRollups独有的。OptimisticRollups是使用其他数据压缩技术来批量处理事务并将它们提交到链上。

此外,某些ZKRollups项目,例如Scroll团队,实际上并不依赖于将Statedelta发布到以太坊来获得额外的数据压缩收益。Scroll开发人员认为即将到来的代码更改,例如以太坊改进提案EIP-4844和danksharding将显著降低将交易数据提交给以太坊的成本,这样Statedelta相对于其他数据压缩技巧的效率提升可以忽略不计。

Rollups使用来自Merkle树最低层的数据,并将其与来自Merkle树最高层的根分布式相结合,能够允许任何人重建和验证在链上提交的交易批次的内容。大多数Rollups的一个决定性特征是能够使用链上提交给以太坊的数据重新创建在L2网络上执行的交易。然而,某些Rollups避免将Statedelta或其他压缩交易数据提交给以太坊,而是将数据发布到其他地方以降低运营成本并提高网络可扩展性。某些开发人员会争辩说,避免将交易数据提交给以太坊并因此破坏交易重建保证的L2网络不应归类为Rollups。

Rollup处理Statedelta的方式决定了网络是可以归类为Validium还是Volition。

Validium可以被理解为Rollups,它仅在链上提交有效性证明和根哈希,同时将Statedelta存储在链下的单独网络上。因为Rollups不再依赖以太坊的数据可用性和受网络块空间的限制,这在理论上可以将Rollups的交易吞吐量提高到9,000TPS。Validiums的缺点是安全性,用于发布链下数据的独立网络不具有与以太坊相同的安全保证。

Volitions是将在链下或链上发布Statedelta的决定留给用户,由以太坊扩展初创公司Starkware开创。这是一种新颖的方式,通过直接在链上向以太坊或Starkware可信数据可用性委员会(DAC)等链下网络确认,让用户决定他们的交易是否需要增强的安全性,但成本可能更高。

EVM等效的4个主要级别

上述内容帮助理解以太坊上交易执行的整体框架、EVM和ZKRollups,现在讨论zkEVMs。

zkEVM是一种ZKRollup,它可以模仿与主网以太坊相同的交易执行环境。zkEVM的实现在证明算法和数据可用性策略上有所不同,另外zkEVM的EVM等效级别也不同。EVM等效性有四个主要级别。以下是不同级别的摘要:

语言水平等效

为了实现语言级别的EVM等效性,zkEVM必须能够理解并本地编译EVM友好的语言。换句话说,这些类型的zkEVM可以将EVM友好编程语言翻译成一种为生成ZKP而优化的定制语言。这被认为是在ZK-Rollups中实现EVM兼容性的最简单和最有效的方法之一。然而,这些类型的zkEVM在为用户和智能合约开发人员提供与EVM交互相同的体验方面最受限制。

与EVM的语言级兼容性意味着需要通过编译器运行Solidity,该编译器将EVM的高级编程语言翻译成定制的低级语言,由专为生成ZKP而设计的虚拟机解释。对于大多数只关心通过Solidity代码与EVM交互的以太坊用户和智能合约开发人员来说,zkEVM的底层行为可能并不重要,只要可以通过zkEVM执行与以太坊主网上相同类型的代码即可。另一方面,为EVM构建的复杂开发工具、框架和测试环境可能需要修改才能在仅具有语言级EVM兼容性的zkEVM上使用。

字节码级等效

EVM等价的第二个和第三个级别是字节码级别,这需要ZKRollups才能解释从更高级语言编译下来的EVM字节码。zkEVM可以模仿与EVM相同的高级编程语言和低级字节码,从而实现与EVM更深层次的兼容性。这些类型的zkEVM构建起来更复杂,需要更高级的工程设计。

虚拟机执行EVM字节码的方式是通过称为操作码的特定指令列表,每个操作码命令EVM执行不同的任务。字节码兼容的zkEVM的目标是创建一个ZK系统,该系统可以证明EVM字节码并解析字节码包含的各种操作码。这些类型zkEVM的优势在于它们与基于EVM的应用程序和工具相互兼容。完全字节码兼容的zkEVM将能够支持与基于以太坊的原生应用程序相同的调试工具和开发人员基础设施。然而,实现完全的字节码兼容性通常会导致创建低效且昂贵的ZK系统,而降低成本,提高效率是不得不考虑的问题。

目前,有两种字节码兼容的zkEVM,包括PolygonzkEVM和ScrollzkEVM。在他们当前的设计中,这两个仅实现部分兼容EVM字节码,但是,随着时间的推移,这些实现正朝着完全兼容的方向努力。

共识水平等效

EVM等价的第四个也是最后一个级别是共识级别。这是ZKRollups可以实现的对EVM的最高原生兼容性。它有时被称为「enshrinedRollups」,尽管并非所有「enshrinedRollups」都需要基于ZK,也可以是OptimisticRollups。这个想法是由zkEVM生成的加密证明不需要以任何身份在以太坊上重新执行,证明本身可用于验证主网以太坊上生成的区块。从某种意义上说,实现共识级别兼容性的zkEVM是zkEVM的最真实形式。

对于一些开发者来说,能够实现共识级别兼容性的ZKRollups是唯一一种应该称为zkEVM的ZKRollups,而其他具有语言和字节码兼容性的ZKRollup应该分别被认为是EVM兼容的和EVM等效的,但不是一个zkEVM。关于zkEVM的精确定义及其不同级别的EVM等价性,以太坊开发人员之间存在大量争议。事实上,EVM等效是一个范围,上面描述的每个层次都不是严格的类别。zkEVM开发的早期性质意味着为语言级别兼容性而构建的项目也可能提供某种类型的字节码级别兼容性,而字节码级别兼容的zkEVM最终可能会发展成为具有大量共识级别等价性的混合Rollups。

以太坊上的zkEVM项目概览

目前,还没有实用性的zkEVM可以实现共识级别的兼容性,开发者仍在不断的研究和开发,以太坊核心开发人员将其描述为「多年工程努力」。有些zkEVM已经实现在语言和字节码级别上的等效,为以太坊上当前主要以应用程序为中心的ZKRollupLayer2生态系统提供了改进思路。构建ZKRollup来执行一般的智能合约和用户交易而不是以应用程序为中心的交易是一项艰巨的任务,到目前为止,只有少数项目在主网上成功启动。

以下是以太坊上五个zkEVM项目的概述:

zkSync2.0

区块链开发团队MatterLabs成立于2018年12月,2020年6月曾在以太坊上推出了他们自己的ZKRollups协议,称为zkSync。按总锁仓价值,zkSync是以太坊上第6大L2网络,支持有限范围的智能合约操作,包括ETH、ERC20代币和原生NFT的低Gas传输,以及原子互换和限价订单。该公司最近通过由AndreessenHorowitz牵头的B轮融资筹集了5000万美元,并宣布了一项2亿美元的国库基金,致力于在未来几年扩展zkSync生态系统。

zkSync2.0是一种语言级兼容的zkEVM,旨在支持所有类型的智能合约操作。zkSync2.0依赖于称为UltraPLONK的基于SNARKs的证明算法。此外它还依赖于称为LLVM的开源编译器基础架构,通过LLVM可以将Solidity和其他类型的编程语言编译成zkEVM字节码。该项目将于2022年10月开始「babyalpha」阶段,预计到2022年底将对外部用户完全开放,但MatterLabs团队仍未披露zkSync2.0证明生成的全部细节。由于L2网络之间的激烈竞争,以及由于Rollup技术的初期阶段导致了更大的技术漏洞风险,大多数Rollups项目都在高度保密的情况下运行,并不支持开源。一旦成功启动,zkSync2.0将是一种可以让用户可以选择将Statedelta从他们的链下交易发布到一个称为zkPorter的单独协议,而不再需要在链上发布到以太坊。该策略理论上会将zkSync2.0的每秒交易吞吐量从2,000TPS提高到超过20,000TPS。

StarkNet

与zkSync一样,StarkNet是Starkware团队构建的已经在以太坊上运行的通用ZKRollup。Starknet的交易执行环境称为StarkNetOS,其原生智能合约编程语言称为Cairo。与其他ZKRollups相比,Starknet是功能最全面的区块链网络之一。StarkNet为用户提供了一个可选的链下数据解决方案,以实现比非Volitions类型的Rollups成倍降低的交易费用。StarkNet操作系统依赖于基于STARKs的证明算法。与zkSync2.0一样,在StarkNetOS上生成证明的过程不是开源的。与其竞争对手zkSync类似,随着时间的推移,围绕证明生成的细节将会逐渐开源,以便任何人都可以通过专用线路连接到网络。

StarkNet本身不支持与EVM的语言级兼容性,但是以太坊执行层软件客户端Nethermind背后的团队正在积极构建名为Warp的SoliditytoCairo语言编译器。使用Warp编译器,StarkNet用户可以部署基于以太坊的智能合约,而无需再用Cairo重写代码。此外,还有一个名为Kakarot的社区驱动项目,用于构建另一个Solidity到Cairo语言的编译器,以帮助支持StarkNet与EVM的兼容性。

Starkware团队在7月公布了原生StarkNet代币和新基金会计划。在透露初始100亿供应量的三分之一将分配给StarkNet核心贡献者后,代币的分配方案成为争议的根源。今年Starkware以80亿美元的估值筹集了1亿美元。该轮融资由投资公司GreenoaksCapital、Coatue和TigerGlobal领投。除了StarkNet之外,StarkWare还为用户提供了一种可定制的区块链可扩展性解决方案,称为StarkEx。该解决方案利用了基于STARK的ZK新技术。与StarkNet不同,StarkEx是一个以应用程序为中心的ZKRollup。使用StarkEx在以太坊上实现更大可扩展性的一些值得注意的DeFi应用程序包括soRare、Immutable和DeversiFi。

PolygonzkEVM

Polygon团队构建的zkEVM实现了与EVM的字节码级别兼容性。Polygon的zkEVM预计将于2023年初的某个时候在以太坊上推出,并且最近已开源,供公众审查。当然虽然代码可以公开查看,但不能使用、修改或共享,因为它不是在开源代码许可下发布的。Polygon的zkEVM实现依赖于基于SNARKs和STARKs的证明,具体来说,zk-SNARKs用于证明zk-STARKs的正确性,这具有利用与zk-STARK相关的快速证明时间以及生成zk-SNARK所需的相对较轻的计算资源的优势。关于数据可用性问题,Polygon的zkEVM实现不会立即支持链下数据解决方案,然而,Polygon正积极致力于通过开发可用性更高的应用程序。

Polygon成立于2017年,是一家主要专注于以太坊扩展解决方案的公司。它于2020年6月推出了基于权益证明的以太坊侧链,称为PolygonPoS。之后,Polygon的产品插件得到了显着发展,变得更加多样化。除了zkEVM实现方式之外,Polygon还在积极开发另外两个ZKRollups实施,即PolygonMiden和PolygonZero。它们是结合了OptimisticRollup和ZKRollup的混合Rollups实施,称为PolygonNightfall。今年早些时候,Polygon团队完成了自首次代币发行以来的第一轮重大融资,并从40家风险投资公司筹集了4.5亿美元,由红杉资本印度领投。

Scroll

Scroll是另一个字节码级别兼容的zkEVM实现。Scroll由SandyPeng、YeZhang和HaichenShen于2021年创立,2022年宣布为白名单用户推出他们的pre-alpha版本测试网。值得注意的是,围绕其zkEVM实现的所有代码都是公开的,并在开源许可下发布。Scroll将依赖于一种基于SNARKs的证明算法,并且不支持链下数据可用性解决方案。此外,Scroll团队正在设计一个用于证明生成的去中心化市场,以支持他们的zkEVM。为了无需许可和抗审查的方式生成ZKP,他们还专注于构建可以由世界各地的用户运行的专用硬件设施。

Scroll团队与以太坊基金会的扩容解决方案研发团队密切合作,其被称为隐私扩容以太坊(PSE)团队。与zkSync、StarkWare和Polygon等其他团队相比,Scroll规模较小,并且更专注于研究,商业属性较轻。他们只专注于他们的zkEVM实施,而其他竞争团队拥有一套其他与ZK相关的产品和服务。Scroll今年在A轮融资中筹集了3000万美元,投资方包括PolychainCapital和BainCapitalCrypto等领先的加密货币风险投资公司,以及包括以太坊基金会的YingTong和CarlosAria在内的几位天使投资人。

Privacy&ScalingExplorations(PSE)

PSE是以太坊基金会的一个研究机构,专注于探索ZKP的前沿研究及其在以太坊上的应用。他们以前被称为「AppliedZKP」小组。与本报告中强调的其他zkEVM实施相比,PSE的zkEVM并不专注于在不久的将来满足大规模使用。PSE正在研究的zkEVM专注于根据「enshinedRollup」模型,实现与EVM的共识级兼容性。

PSE研究中使用的证明算法是称为Halo2的zk-SNARK,它由Zcash(ZEC)加密货币的核心开发团队ElectricCoinCompany开发。PSE团队构建的zkEVM实施是开源的,任何人都可以参与。除了zkEVM,PSE团队还在推进其他几个项目,包括研究反共谋去中心化应用程序基础设施、增强用户交易隐私以及替代加密签名方案。

构建zkEVM的挑战

在以太坊上构建生产就绪的zkEVM实现还存在一些持续的挑战。实施zkEVM等新技术、zkEVM的去中心化操作以及构建用于生成zkEVM证明的专用硬件,这些未经证实和测试的性质是开发人员面临的主要障碍。本节讨论对这些挑战的一些见解。

新领域

zkEVM是以太坊上的一个新概念,从2022年才正式开始运行。这项技术面临的一个简单挑战是其未经证实和大规模测试的性质。大多数zkEVM实现在生成证明的方式、生成证明的硬件要求以及去中心化定序器的细节方面仍然存在大量未知因素。建立对zkEVM作为可靠的扩展性解决方案的信任是Scroll、Polygon、StarkNet和zkSync等团队关注的一个重要领域。

去中心化的挑战

围绕去zkEVM操作去中心化路径的问题适用于所有Rollup,因为有效性和欺诈证明的生成在很大程度上取决于中心化排序器。如上所述,定序器是L2利益相关者,负责批处理用户交易并将这些批次的证明提交给以太坊L1。

目前以太坊上运行的每个Rollup都由中心化排序器操作,并依赖于由单个实体管理的可升级智能合约。今天Rollup中心化性质的一个主要原因是:在技术初期,代码中出现意外错误时需要快速修复。此外,尤其是zkEVM背后的技术在不断变化,因此很难自信地激励用户在自己的设备上运行这项新兴技术。为Rollup实现去中心化排序器通常意味着要启动一个代币,并创建一个共识协议,以一种无需许可的方式组织多个排序器和证明者。虽然启动代币和创建共识协议对公共区块链来说并不新鲜,但也需要时间和深思熟虑才能负责任地启动。StarkWare的代币计划就因供应设计和初始分配引起了争议,Polygon也预计将在其zkEVM推出后改进当前的代币经济学。zkSync有望在未来几个月为其Rollup推出代币,而Scroll的代币计划仍不明朗。

当前zkEVM的背景下,排序器去中心化重要的第一步是开源项目软件,在撰写本文时很少有人这样做。在去中心化zkEVM操作方面,已经拥有大量用户的RollupzkEVM实现可能具有优势。

zkEVM硬件挑战

虽然zkEVM证明验证起来很简单,但生成它们需要大量计算,部分原因是ZKP背后的数学依赖于线性计算序列。这使得并行化工作在机器上生成证明变得困难。最近使用递归证明在这方面取得了进展。递归证明是一种减少证明生成延迟的技术,它指的是重复生成证明的证明以进一步压缩交易,从而可以并行处理ZKRollup上的小批量交易。这是StarkNetVM和Polygon的zkEVM用于生成有效性证明的技术。

由于生成ZKP需要密集计算,zkEVM可能不得不依赖高级硬件,例如图形处理单元(GPU)、现场可编程门阵列(FPGA),甚至专用集成电路(ASIC)。需要专门的硬件来运行必要的计算来生成证明,这与需要专门的硬件来根据工作量证明(PoW)共识协议有效地挖掘区块没有什么不同。这两个硬件行业的增长差异在于证明者与矿工的选择过程。

证明者是负责生成有效性证明的网络利益相关者。另一方面,定序器负责将用户交易排序和打包成批次,并将数据提交到第1层区块链。从技术上讲,排序者和证明者的职责可以合并为一个角色。然而,因为证明生成和交易排序都需要高度专业化的技能才能有效执行,所以拆分这些职责可以防止Rollup功能中不必要的中心化。

如果证明者和排序器的选择过程类似于矿工的选择过程,依赖于达成中本聪共识并奖励最高效的硬件参与者,那么ZKP“挖矿”行业就有可能沿着与比特币挖矿相同的轨迹发展。然而,有几个原因可以解释为什么特定证明者的选择过程更可能在设计上类似于权益证明(PoS)而不是PoW共识。

首先,中本聪式的选择过程意味着拥有最高效硬件的证明者将主导证明市场。为了避免证明者市场的垄断,同时减少电能消耗,像Scroll这样的项目正在寻找替代设计,这需要证明者将资产作为抵押品,这与以太坊验证者被要求抵押32ETH的方式不同。质押模型的实施确保证明者可能因破坏网络安全性和活跃性的行为而受到惩罚,例如未能为指定的一批交易计算有效性证明。

确定性地选择证明者生成证明,而不是让所有证明者竞争生成证明的另一个好处是可以提高交易吞吐量和网络可扩展性。选择证明者意味着几个证明者可以并行地为不同批次的交易生成证明,而不是所有证明者都为同一批交易生成证明。然而,依赖于某种形式的质押和惩罚的领导人选举系统存在一个弱点:复杂性。与中本聪式的PoW系统相比,PoS系统依靠更复杂的制衡设计来保持参与者的诚实。例如,中本聪式的共识通常只需要参与者,即矿工,产生他们工作的证明来获得奖励。

大多数zkEVM可能会尝试通过选择确定性而不是概率性的无需许可的证明者选择过程来尽量减少Rollup的用电量。以太坊联合创始人VitalikButerin估计,计算zkEVM的有效性证明所需的电能不到用于开采ETH的1%。zkEVM设计人员的目标是尽可能减少证明时间,同时让尽可能多的用户可以经济地访问证明生成。实现共识级别兼容的zkEVM的要求之一是将证明生成时间减少到与以太坊L1的出块时间相当。

只有当zkEVM背后的规范变得清晰和标准化后,ZKP硬件制造商才能真正成长和成熟。最后,预测有效性证明计算行业的用电量仍然很困难,除非Rollups采用并实施一种无需许可地选择证明者和定序器的模型。

zkEVM竞争展望

短期内,zkEVM参与者正在竞争成为第一个在主网上启动的项目。然而,从长远来看,他们将在EVM兼容性水平和VM效率方面展开竞争。一旦支持zkEVM的技术得到更广泛的测试、使用和理解,zkEVM很可能还必须与optimisticRollups和其他L2可扩展性解决方案竞争以获取用户。

先发优势和后发优势

zkSync、Polygon和Scroll团队的zkEVM实现正竞相在主网上推出。更早启动主网可以在可吸引DApp开发人员方面占据先发优势,鉴于Rollup之间互操作性和DApp可组合性的难度,这可能是一个特别重要优势。DApp可组合性是指像积木一样在DApp之上构建DApp的能力,是以太坊去中心化金融(DeFi)生态系统的一个特别重要的特征,它使DApp开发人员更有可能被已经广泛采用的L1或L2所吸引。

另一方面,由于zkEVM作为一项技术的新颖性,首批推出的zkEVM实现不太可能针对以太坊DApp开发人员进行最优化。正如本报告中提到的,在字节码级别和共识级别上与EVM完全兼容的zkEVM实现尚未准备好用于生产。可以更原生地支持以太坊DApp部署的zkEVM实现可能不会首先启动,拥有更多EVM等效的zkEVM具备后发优势。等效程度越深,zkEVM开发人员的进入门槛就越低。换句话说,2015年以来一直是主要DApp执行环境的EVM可以迁移的工具越多,zkEVMDApp开发人员的采用就顺利。

通过EVM等效性吸引DApp开发人员是zkEVM实现之间第一个明显的竞争领域,虽然DApp开发人员采用的先发优势很强,但该技术还处于初期阶段,因此仍有进行重大迭代和改进的空间来构建一个生产就绪的zkEVM。最终,这场游戏类似于从零开始的创新者困境:成为第一个并尝试建立布局和社区更好,还是成为第二个并以更好的功能推翻先行者更好?

虚拟机设计

随着时间的推移,zkEVM的另一个竞争和改进领域是效率。如前所述,EVM并未针对ZK系统进行优化,构建通用的ZKRollup可以证明基于以太坊的智能合约和DApps需要大量开销。随着时间的推移,为SNARK或STARK证明优化的其他虚拟机设计可能会降低EVM兼容性,这是Starkware团队强烈持有的观点。将Solidity编译为Cairo的Warp工具和其他类似工具都是社区驱动的举措,因为内部StarkWare团队专注于使StarkNet的虚拟机尽可能高效,而不是简单地与EVM兼容。

在以太坊上,值得注意的是,在不破坏DApp向后兼容性的情况下,EVM不能被显着改变或升级。自EVM于2015年发布以来,开发人员对EVM及其高级编程语言Solidity进行了修补,以在较小的方面提高可用性和安全性。例如,在2019年以太坊伊斯坦布尔硬分叉升级期间,核心开发人员向EVM添加了一个名为“CHAINID”的新操作码,它将返回规范链的唯一标识符。这是为了通过允许节点检查CHAINID来防止升级的节点连接到未升级的节点,这是一种特别有用的升级,有助于防止“重放攻击”。

以太坊核心开发人员一直坚称,以太坊的发展路线图中仍将对EVM进行进一步的升级。新的操作码和预编译可能会继续添加到EVM中,这表明现有的zkEVM实现必须灵活地适应EVM中的变化。然而,即使有了这些改进,Mina、Sui和Aptos等L1区块链仍然有机会尝试不同的虚拟机和智能合约语言设计,从长远来看,这可能会使EVM过时。zkEVM实现主要侧重于在字节码和共识级别与EVM的深度兼容性,长期押注EVM在智能合约开发中的相关性和主导地位。

OptimisticRollups到ZKRollups

最后,本报告中讨论的五个zkEVM实现打败了Optimism或Arbitrum等OptimisticRollups,这并不是一个必然的结论。在技术层面上,ZKRollups比optimisticRollups更安全、更高效,并且有可能更具成本效益。但是,它们在证明为EVM设计的通用计算方面的灵活性并未经过测试和大规模部署。一旦zkEVM推出并且其背后的技术更加成熟和稳健,基于欺诈证明的OptimisticRollup就有可能升级并过渡到生成有效性证明。此外,混合Rollup和多证明者系统使用欺诈证明乐观验证用户交易并间歇性地发布有效性证明。

随着zkEVM背后的技术发展,逐渐加快有效性证明生成时间将是一个活跃的研究领域,今天以太坊核心开发人员如VitalikButerin和L2开发人员如Optimism的KelvinFichter正在认真讨论这个问题。

已经在以太坊上推出的Rollup具备用户群优势,理论上可以很容易地移植到Rollup的新升级版本,类似于2022年推出的ArbitrumNitro。这可能是为什么zkEVM团队在他们主网启动和建立庞大的用户群之前,对完全开源他们的项目代币犹豫不决的原因之一。随着时间的推移,optimisticRollups到ZKRollups的可升级性表明:竞争不仅存在于zkEVM实现不之间,也存在于更广泛的以太坊L2生态。

结论

市场近来对zkEVM的兴趣激增引发了几个关于以太坊可扩展性路线图终局的问题。在最真实的意义上,zkEVM代表了对EVM主导地位的长期押注,同时也押注以太坊作为智能合约执行的主要平台。zkEVM也是对以太坊可扩展性路线图的长期押注,因为它以Rollup为中心将交易执行抽象为Rollup,而不是与共识和数据可用性相结合。

尽管今年宣布了几个接近生产就绪的zkEVM,但该技术仍处于起步阶段。实现与EVM具有共识级别兼容性的zkEVM仍然是一项研究计划,距离准备好投入生产可能还需要数年时间。然而,仅在一年前,实现与EVM的字节码级兼容性的zkEVM,情况也是如此。Polygon、zkSync、StarkWare和Scroll对zkEVM实现的快速发展继续推动计算机科学和数学的界限,并且超出了预期。在以太坊主网上推出PolygonzkEVM和zkSync2.0将是使用真实用户和DApp活动测试zkEVM的重要起点。

两个生产就绪的zkEVM的可用性和可扩展性可能不仅会颠覆zkEVM的竞争格局,而且还会颠覆OptimisticRollups和L1竞争链的格局。如果zkEVM成功,OptimisticRollups将不得不转换为ZKRollup设计以保持长期竞争力。L1竞争链还必须在其虚拟机设计上进行创新,以与可扩展的EVM竞争。关于ZKP在以太坊上的就绪性和适用性还有很多待证明,而生产就绪zkEVM的推出应该被视为这项新技术竞争格局的开始。

zkEVM的一些持续关注和发展领域包括它们的硬件设计和代币经济学。用于生成ZKP的硬件环境以及哪种Rollup成功地去中心化证明生成仍有待观察。这在很大程度上将归结为各个团队的社区建设,以及这些Rollup中的任何一个能够在多大程度上成功地吸引DApps,尤其是DeFiDApps向其网络的大规模迁移。这些发展领域需要时间和迭代才能逐渐走上正轨。然而,鉴于zkEVM试图在以太坊上实现的先进性,以及它们对公共区块链未来的广泛潜在影响,这一进展将受到以太坊利益相关者、研究人员、密码学家和学者等的密切关注。

原文链接

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-4:129ms