简介
零知识以太坊虚拟机是一项雄心勃勃、改变游戏规则的技术,可以在短期和长期内提高以太坊的可扩展性。今年,三个主要的以太坊扩展项目——zkSync、Polygon和Scroll——分别宣布了其zkEVM实现的重大发展,其中许多项目在今年的早期alpha阶段推出,而如今则作为自己独立的L2区块链运作。随着时间的推移,zkEVM有可能直接从以太坊的基础层中操作。
作为背景,zkEVM是可以执行与以太坊虚拟机相同的高级编程语言或低级字节码的虚拟机,并使用零知识证明来证明这段代码。零知识证明是在不透露数据本身的任何信息,如其属性或内容的情况下验证数据的加密证明。早在1982年,计算机科学家Goldwasser、Micali和Rackoff就将ZKP作为一个概念首次引入。ZKP经常与同态加密相混淆,同态加密是密码学的另一个分支,允许对加密数据进行操作而不需要解密。同态加密方案于1978年由Rivest、Adleman和Dertouzos首次提出,并一直是实现云计算和存储的关键技术之一。值得注意的是,同态加密也被用于一些公共区块链协议,如隐私币Grin,以混淆交易金额。
在过去的40年里,计算机科学家已经发明了几种安全有效地生成ZKP的算法,算法大致可分成两类:可扩展的透明知识论证或简洁的非交互式知识论证。这些算法已被开发用于大量的用例,包括核裁军、身份认证系统,以及最近通过公共区块链和加密货币的出现实现区块链的可扩展性。具体到以太坊,许多开发者认为ZKP是扩展的“圣杯”,因为与验证交易数据的其他加密方案相比,ZKP具有简洁和容易验证的特点。难以构建或破解但简单验证是加密协议开发者的共同目标,因为允许广泛和有效的分发。
对于零知识系统的所有好处,它们是出了名的难以归纳和应用于证明任意复杂度的代码。构建ZKP以原生支持和证明以太坊区块链上的所有类型的交易活动,在过去几年中一直是开发人员的一项持续研究计划。直到2021年11月,Starkware才推出第一个通用的ZK系统,用于证明基于以太坊的交易。这是通过Starkware团队创建一个被称为Cairo的定制编程语言实现的。然而,最近,在2022年7月,三个不同的基于以太坊的L2协议——zkSync、Polygon和Scroll——宣布在利用ZKP扩展以太坊方面取得突破,其形式是zkEVMs.
注:虽然俗称zkEVM,但这些虚拟机并不利用ZKP的隐私优势,而完全受益于ZKP的安全和效率优势。因此,这些类型的虚拟机更准确的名称是有效性证明生成的EVM,但为了本报告的目的,本文将继续使用其更流行的名称zkEVM来说明。
本报告旨在让读者熟悉zkEVM的一般概念,以及检查在以太坊上开发的各种实现。由于zkEVM是一个高级话题,本报告首先简要介绍了以太坊网络的现状,并通过介绍区块生产、EVM和rollup等核心概念,为理解zkEVM奠定了基础。然后,我们将总结以太坊上可能存在的不同类型的zkEVM,并比较目前生产中的5种主要zkEVM实现方式。然后,我们将强调这一新生技术在实施中面临的挑战,以及我们对zkEVM在一段时间内的竞争格局的展望。总的来说,zkEVM仍然处于以太坊发展和采用的早期阶段,尽管它们成为L2区块链和最终以太坊协议本身的首选扩展技术的潜力很大。
以太坊的现状
在深入了解zkEVM的复杂性之前,首先要高屋建瓴地了解以太坊上的交易是如何被纳入区块的。
区块链生产
当用户向以太坊提交新的交易时,连接到网络的计算机,也称为节点,将交易存储在一个称为mempool的本地数据结构中,负责维护一个未确认交易的列表。然后,操作节点并将32ETH的增量作为抵押品押给网络的验证者被随机选中,将mempool中的交易批量化并处理成块。被选来向以太坊区块链添加新区块的验证者有时被称为“提议者”。一些提议者在构建区块时,会依靠第三方区块构建者,而不是他们的本地mempool,以获得最大可提取价值的额外奖励。关于MEV的更多信息,请阅读这份Galaxy研究报告。
区块是按顺序组织的,并通过父哈希值,即前一个区块的头哈希值连接在一起。每个区块都包含其父区块的前一个哈希值,将区块链在一起,形成区块链的数据结构。区块通过父哈希值的链接显示在下图中:
直到2022年9月15日,以太坊依靠工作证明共识机制,矿工不是验证者,而是负责区块生产,矿工不是消耗大量资本,而是需要消耗大量电力来处理用户交易。关于PoS对以太坊的影响的全面分析,请在这里阅读Galaxy的Merge研究汇编。
谈到以太坊区块链在PoW和PoS共识协议下缺乏可扩展性,其根源在于区块空间有限的问题。区块空间在以太坊上是以gas为单位衡量的。需要更多计算努力才能执行的交易通常以较高的gas单位定价,而计算成本较低的交易的gas成本较低。gas通过以太坊网络自动设置的动态gas费率转换成ETH.以太坊协议限制了区块,因此它们最多只能包含3000万单位的gas.这种最大的区块gas限制保留了快速的区块传播时间,并减少了链分裂的风险。关于以太坊的收费动态的更多信息,请阅读这份Galaxy研究报告。
ConsenSys推出其zkEVM测试网Linea:4月26日消息,ConsenSys推出其zkEVM测试网Linea,该网络旨在为基于以太坊构建的dApp提供支持,并将与MetaMask和Truffle进行原生集成。[2023/4/27 14:29:09]
以太坊虚拟机
一旦交易被包含在以太坊的区块中,这些交易就会通过一个被称为以太坊虚拟机的自定义运行环境来执行。EVM被设计用来在以太坊上部署任意复杂度的代码。这基本上是使以太坊成为通用区块链的原因,有时也被称为(https://en.wikipedia.org/wiki/Turing_completeness#:~:text=Incolloquialusage%2Ctheterms,purposecomputerorcomputerlanguage.)系统。
EVM执行事务的方式是有规则的。首先,EVM将人类可读的编程语言如Solidity和Yul编译成面向机器的或“低级”的语言,称为EVM字节码。然后,EVM将字节码解析成一系列被称为“操作码”的连续指令。每个操作码命令EVM执行一个不同的任务,在EVM字节码中以十六进制的形式表示。例如,当智能合约在链上执行时,命令EVM保持瞬时数据的操作码在记忆上表示为“MSTORE”,在十六进制形式中表示为“0x52”。为了帮助读者了解操作码的概念,以下是以太坊黄皮书中定义的简单操作码的快照:
多年来,以太坊的开发人员已经为EVM增加了新的操作代码。他们还增加了预编译,为用户提供了在网络上执行更高级操作的能力,如散列函数和标量乘法。作为同类的第一个运行环境,EVM已被广泛采用,成为通用公共区块链上智能合约部署的标准。然而,作为同类的第一个技术,EVM确实拥有设计上的局限性,其中与本报告最相关的是EVM与ZKP缺乏兼容性。
一路滚动
为了提高以太坊的可扩展性,有几个L2网络将交易执行从基础层抽象到rollup.Rollup压缩交易数据,使得向基础层提交一批交易所需的区块空间大大低于通过链上的mempool单独确认这些交易。相较于验证者或矿工,rollup由被称为“排序者”的网络运营商操作。排序器负责验证rollup的状态转换。他们是将用户交易捆绑成一个rollup批次的实体,然后将这批交易的证明提交给以太坊的基础层。下面这张图说明了排序器在rollup中的作用:
关于以太坊二级生态系统的全面概述,请阅读这份Galaxy研究报告。
Rollup不同于以太坊上的其他扩展解决方案,如等离子体和状态通道,在以太坊的历史过程中,核心开发人员对以太坊的可扩展性路线图进行了研究和废除。主要有两种类型的rollup:optimistic和零知识。optimisticrollup依赖于欺诈证明,这意味着对L2网络状态的改变被发布到以太坊,而不需要直接证明其有效性。只要至少有一个诚实的行为者在观察optimisticrollup的状态转换,无效的状态转换就可以被发现并取消。在Arbitrum和Optimism的情况下,可以提交欺诈证明的”挑战窗口"持续一个星期。一旦挑战窗口结束,optimisticrollup的状态转换被认为是最终和有效的。
另一方面,ZKrollup依靠ZKP,每次在L2上处理一个交易批次时,ZKP都会生成有效性证明并发布到以太坊。所有交易批次的有效性证明的自动生成增加了ZKrollup的安全保障。这也意味着每次新的有效性证明被提交到以太坊时,ZKrollup的资金就可以被提取,而对于optimisticrollup,通常有7天左右的等待期,以允许争议和欺诈证明的生成。ZKrollup还提供比optimisticrollup更优越的数据压缩。下面的表格总结了optimisticrollup和ZKrollup之间的高层区别:
与ZKrollup相比,optimisticrollup的主要优势在于,optimisticrollup的虚拟机与EVM的虚拟机几乎相同。今天在以太坊上上线的optimisticrollup实现,如Optimism和Arbitrum,模拟了与以太坊相同的交易执行环境,并分别被称为OVM和AVM.大多数ZKrollup是特定的应用,这意味着它们不支持所有类型的基于以太坊的交易和DApp.Loopring、StarkExrollups和zkSync1.0是特定应用的ZKrollup的例子,支持特定类型的支付、代币交换和/或NFT铸币。
某些ZKrollup,如StarkNet,是通用的,意味着它们支持所有类型的交易和dapp.然而,这些ZKrollup需要dapp开发者学习如何在一个新的自定义执行环境中执行他们的智能合约代码,该环境为生成ZKP而优化,而不是EVM兼容性。鉴于现有的去中心化应用程序和用户难以加入到新的执行环境中,这对以太坊上的ZKrollup的采用提出了挑战。为了克服这个问题,ZKrollup项目,如PolygonHermez、zkSync和Scroll正在研究ZKrollup,以实现与EVM的兼容,EVM是以太坊上所有智能合约代码的原生执行环境。
ConsenSys zkEVM上线测试网并更名为Linea:金色财经报道,ConsenSys宣布将Layer 2解决方案ConsenSys zkEVM更名为Linea,目前向所有开发人员、用户或协议开放测试。Linea使开发人员能够不受限制地构建可扩展的DApp。
另外,通过MetaMask和Truffle等原生集成,Linea将零知识证明与EVM等效性相结合,为开发人员提供灵活性和可扩展性,而无需ZK技术专业知识。[2023/3/28 13:30:56]
STARK、SNARK、volitions和validiums
在实践中,rollup不仅由链上发布的证明类型来区分,而且由rollup的数据可用性策略和证明算法来区分。
正如本报告前面提到的,有两大类有效性证明,称为SNARK和STARK.
SNARK依靠椭圆曲线加密技术,这是一种在比特币和以太坊中最普遍使用的数据加密技术。SNARK通常也依赖于一个受信任的设置,这意味着该算法需要由一个受信任的实体事先生成一段数据。可信设置仪式不是一个重复的事件,而是一个一次性的程序,由一个人或一群人生成核心数据。这个数据被称为共同参考字符串,它是一个值,然后被用于zk-SNARK算法,以生成可信的证明。如果生成CRS所需的输入被破坏,这可能导致错误的证明生成。因此,重要的是,用于生成CRS/SRS的输入被所有仪式参与者销毁,或者在仪式结束后变得不可恢复。基于SNARK的算法的一些例子包括Sonic、Plonk、Redshift和Marlin.STARK不依赖于椭圆曲线或可信设置。STARKS依靠哈希函数,一些开发者认为这是抗量子密码学的优势。然而,STARK更加复杂,需要更多的计算资源来运行。它们也是在2018年比SNARK晚推出的,而SNARK自2012年以来一直存在。由于这些原因,SNARK作为一种证明算法比STARKs使用得更广泛。基于STARK的算法的一些例子包括Fractal、SuperSonic、Fri-STARKs和genSTARK.除了生成有效性证明的不同方法外,ZKrollup还可以通过其数据可用性策略而有所不同,这意味着它们对交易批次的哪些部分最终被发布到链上的策略。无论是optimisticrollup还是ZKrollup,每次处理一批交易时,通常会向主网以太坊提交三块数据。首先,滚动的验证者将向以太坊提交新网络状态的根哈希值。状态被记录在一个Merkletree数据结构中,如下图所示:
根哈希是整个Merkletree的加密承诺,有时被称为状态承诺。并不要求所有的ZKrollup向以太坊提交根哈希值,但为了方便使用以太坊上发布的数据重建和验证rollup上执行的交易,他们通常会这样做。
高级根哈希值除了确认第二层区块链的新状态外,还在以太坊上记录了一个加密证明。这个证明可以是ZKP,或者在optimisticrollup的情况下是一个欺诈证明。它可以通过STARK或SNARK算法生成。最后,除了这两个数据之外,ZKrollup还向以太坊发布了一个压缩版的分批交易,也称为状态delta.状态delta是一种具有成本效益的方式,将大量的交易数据提交给以太坊,这是ZKrollup所特有的。Optimisticrollup代替了状态三角洲,使用其他数据压缩技术来批量交易并在链上提交。
使用Merkletree最低层的数据,也就是树上的叶子,并将其与Merkletree最高层的根部哈希值相结合,任何人都可以重建和验证在链上提交的交易批次的内容。大多数滚动的一个决定性特征是能够使用在链上提交给以太坊的数据重新创建在第二层网络上执行的交易。然而,某些rollup避免向以太坊提交状态delta或其他压缩的交易数据,而是将数据发布到其他地方,以减少运营成本并提高网络可扩展性。某些开发者会认为,避免向以太坊提交交易数据,从而破坏交易重建的保证的Layer2网络不应该被归类为rollup.
Rollup处理状态delta的方式决定了网络是否可以被归类为有效的或自愿的。
Validium最好理解为只在链上提交有效性证明和根哈希,而在链外的独立网络上存储状态delta的rollup.这在理论上增加了rollup的交易吞吐量至9000TPS,因为rollup不再依赖以太坊的数据可用性和受网络的块空间限制。Validium的缺点是安全性。发布链外数据的独立网络并没有继承与以太坊相同的安全保障。Volition将在链外或链上发布状态delta的决定权交给了用户。它们首先是由以太坊扩展创业公司Starkware开创的。这是一种新颖的方式,让用户决定他们的交易是否需要通过直接在链上确认到以太坊或到链外网络来加强安全,也许成本更高。EVM等效性的4个主要层
给出上述理解以太坊上的交易执行、EVM和ZKrollup的框架,我们现在可以讨论zkEVM.zkEVM是ZKrollup的一种类型,模拟与主网以太坊相同的交易执行环境。zkEVM的实施在其证明算法以及数据可用性策略方面有所不同。zkEVM在其EVM等价水平方面也有所不同。有四个主要的EVM等价水平。以下是对不同级别的高层次总结:
Aave社区发起在Polygon zkEVM主网上部署Aave V3 MVP版本的温度检查讨论:3月3日消息,Aave社区发起关于在Polygon zkEVM主网上部署Aave V3 MVP版本的温度检查治理讨论。目前,社区希望通过该提案讨论,在zkEVML2上部署Aave V3.0.1(MVP V3),将使Aave Governance在该网络上尽早建立战略地位。部署AaveV3开发工作量较小,但为了减少风险,该提案建议限制流入资产,并设置保守的风险参数,使开发和风险服务提供商对zkEVM网络进行更深入的分析。该提案建议只加入三个抵押品(WETH、WMATIC和USDC)和一个可借贷资产(USDC),以减少风险。[2023/3/3 12:40:50]
语言层面的等效性
为了实现语言层面的EVM等效性,zkEVM必须能够理解和原生编译EVM友好语言。换句话说,这些类型的zkEVM可以将EVM友好的编程语言翻译成为生成ZKP而优化的定制语言。这被认为是在ZKrollup内实现EVM兼容性的最简单和最有效的方法之一。然而,这些类型的zkEVM在为用户和智能合约开发者提供与EVM互动的体验方面是最有限的。
与EVM的语言级兼容性意味着通过编译器运行Solidity,该编译器将EVM的高级编程语言翻译成定制的低级语言,可由为生产ZKP设计的虚拟机解释。对于以太坊上的大多数用户和智能合约开发者来说,他们只关心通过Solidity代码与EVM的互动,只要通过zkEVM可以执行与以太坊主网相同类型的代码,zkEVM的底层行为可能并不重要。另一方面,为EVM构建的复杂的开发者工具、框架和测试环境可能需要修改,以便在只有语言级EVM兼容性的zkEVM上使用。
字节码层面的等价性
EVM等效性的第二和第三层级是字节码级,这要求ZKrollup能够解释从高级语言编译下来的EVM字节码。能够模仿EVM的同一高级编程语言和低级字节码的zkEVM实现了与EVM更深层次的兼容。这些类型的zkEVM的构建更为复杂,因为它们需要更先进的工程。
正如本报告前面所讨论的,EVM字节码被虚拟机执行的方式是通过一个特定的指令列表,称为操作码。每个操作码命令EVM执行一个不同的任务。兼容字节码的zkEVM的目标是创建一个能够证明EVM字节码的ZK系统,并通过字节码包含的各种操作码进行解析。这些类型的zkEVM的优势在于它们与基于EVM的应用程序和工具的兼容性。一个完全兼容字节码的zkEVM将能够支持与基于以太坊的本地应用程序相同的调试工具和开发人员基础设施。然而,实现完全字节码兼容往往会产生负面的结果,即创建一个低效和昂贵的ZK系统。为了降低成本和提高效率,部分字节码兼容的zkEVM可能会删除EVM的某些功能,如使用ZK数学和密码学更难证明的预编译。
目前,有两个字节码兼容的zkEVM:PolygonzkEVM和ScrollzkEVM.在本报告的后面,我们将更详细地讨论这两者。在他们目前的设计中,这两个实现只与EVM字节码部分兼容。然而,随着时间的推移,这些实现正在努力实现完全兼容。
共识层面的等效性
第四也是最后一级的EVM等效性是在共识层面。这是ZKrollup能够达到的对EVM的最高本地兼容性。它有时被称为“奉行rollup”,尽管并非所有奉行rollup都需要基于ZK,而是可以是optimisticrollup.这个想法是,由zkEVM生成的加密证明不需要以任何方式在以太坊上重新执行。这些证明本身可以用来验证主网以太坊上产生的区块。从某种意义上说,实现共识级别兼容的zkEVM是zkEVM的最真实形式。
在一些开发者看来,能够实现共识级别兼容的ZKrollup是唯一一种应该被称为zkEVM的ZKrollup,而其他具有语言和字节码兼容性的ZKrollup应该分别被视为EVM兼容和EVM等效,但不是zkEVM.对于zkEVM的精确定义和它们不同程度的EVM等同性,以太坊开发者之间存在着大量的争议。事实上,EVM等价性是一个频谱,上面描述的每一个级别都不是僵硬的分类。zkEVM开发的早期性质意味着,为语言级兼容性而构建的项目也可能提供某种类型的字节码级兼容性,而字节码级兼容的zkEVM最终可能发展为具有来量共识级等效的混合rollup.
在本报告的下一节,我们将深入研究目前在以太坊上生产的五个zkEVM实施方案。
以太坊上的zkEVM项目概述
目前,没有一个接近生产就绪的zkEVM实现可以实现共识级别的兼容性。这是一个正在进行的研究和开发领域,被以太坊核心开发人员描述为“多年的工程努力”。然而,有一些实现在语言和字节码层面上实现了等价,这仍然为以太坊上目前的ZKrollupL2层生态系统提供了改进,该系统主要以应用为重点。构建一个ZKrollup来执行一般的智能合约和用户交易,而不是以应用为重点的交易,这是一项艰巨的任务,到目前为止,只有少数几个项目在主网上成功推出。
Polygon Hermez正在开发zkEVM,计划2022年Q2上线主网:据官方消息,Polygon Hermez宣布Hermez零知识以太坊虚拟机(zkEVM)正在开发中,并计划2022年Q2上线主网。
据悉,目前,Hermez只代币传输,不支持EVM兼容。根据Hermez的路线图,一个完全兼容EVM的V2版本将支持现有智能合约的透明部署,而无需对其进行调整或编译。[2022/1/9 8:36:19]
以下是以太坊上的五个zkEVM项目的高级概述:
zkSync2.0
MatterLab是一个区块链工程团队,成立于2018年12月。该团队于2020年6月在以太坊上推出了他们自己的ZKrollup协议,称为zkSync。zkSync是以太坊上按总价值锁定的第六大L2网络,支持有限的智能合约操作,包括ETH、ERC20代币和原生NFT的低gas转移,以及原子互换和限价订单。该公司最近通过AndreessenHorowitz领导的B轮融资筹集了5000万美元,并宣布了一个2亿美元的财政基金,专门用于在未来几年扩大zkSync的生态系统。
zkSync2.0是一个语言级兼容的zkEVM,旨在支持所有类型的智能合约操作。zkSync2.0依赖于一个基于SNARK的证明算法,称为UltraPLONK.它还依赖于被称为LLVM的开源编译器基础设施,将Solidity和其他类型的编程语言编译成zkEVM字节码。该项目于2022年10月启动了“babyalpha”阶段,预计将于2022年底向外部用户全面开放,尽管MatterLabs团队仍未披露关于zkSync2.0上证明生成的全部细节。一旦推出,zkSync2.0将是一个volition,让用户可以选择在链外将其交易的状态delta发布到一个被称为zkPorter的独立协议,而不是在链上发布到以太坊。这一策略理论上会将zkSync2.0的每秒交易吞吐量从2000TPS提高到超过20000TPS.
StarkNet
和zkSync一样,StarkNet是一个通用的ZKrollup,已经在以太坊上运行,由Starkware团队建立。Starknet的交易执行环境被称为StarkNetOS,其本地智能合约编程语言被称为Cairo.与其他ZKrollup相比,Starknet是功能最全面的一个。StarkNet为用户提供了一个可选的链外数据解决方案,以实现比非volition型rollup低得多的交易费用。StarkNet操作系统依靠的是基于STARK的证明算法。与zkSync2.0一样,StarkNetOS上生成证明的过程没有开源。与zkSync等竞争对手类似,随着时间的推移,将围绕证明生成的细节开源,以便任何人都可以连接到网络,运行专门的硬件,并通过生成证明获得奖励,这是rollup积的长期发展路线图的一部分。
StarkNet并不支持与EVM的语言级兼容。然而,有一个名为Warp的Solidity到Cairo语言编译器正在由以太坊执行层软件客户端Nethermind背后的团队积极构建。使用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.一些值得注意的DeFi应用程序使用StarkEx在以太坊上获得更大的可扩展性,包括soRare、Immutable和DeversiFi.
PolygonzkEVM
由Polygon团队构建的zkEVM实现,以前被称为MaticNetwork,实现了与EVM的字节码级兼容。Polygon的zkEVM预计将在2023年初的某个时候在以太坊上推出,并在最近向公众开放资源供其审查。(值得注意的是,虽然代码可以公开查看,但不能使用、修改或分享,因为它没有在开源代码许可证下发布)。Polygon的zkEVM实现依赖于基于SNARK和STARK的证明。具体来说,zk-SNARK被用来证明zk-STARK的正确性。这样做的好处是可以利用与zk-STARK相关的快速证明时间,以及生成zk-SNARK所需的相对较少的计算资源。关于数据可用性的问题,Polygon的zkEVM实施将不会立即支持链外数据解决方案。然而,Polygon正在积极努力,通过开发PolygonAvail,使他们的zkEVM实施成为一种volition.
以太坊Layer2网络zkEVM已接入UniswapV2端口:10月13日消息,以太坊Layer2网络zkEVM发文宣布已完成带有额外的Layer2特定功能的Web3API的开发,并已在UniswapV2上展示了智能合约和前端端口。据官方介绍,这是首个EVM全兼容的zkRollup。用户现在通过uni.zksync.io页面链接钱包,领取部分测试token。UniSync是由MatterLabs推出的UniswapV2的一个端口的代码和前端,并不是隶属于UniswapLabs。[2021/10/13 20:24:35]
Polygon成立于2017年,是一家主要专注于以太坊的不同扩展解决方案的公司。它在2020年6月推出了一个基于股权证明的以太坊侧链,称为PolygonPoS.那时起,Polygon的产品套件已经大幅增长和多样化。除了该公司的zkEVM实现,它还在积极开发其他两个ZKrollup实现,即PolygonMiden和PolygonZero,以及一个混合rollup实现,将optimisticrollup和ZKrollup结合起来,称为PolygonNightfall.今年早些时候,Polygon团队完成了他们自首次发行MATIC代币以来的第一轮主要融资,并从40家风险投资公司筹集了4.5亿美元。该轮融资由红杉资本印度公司牵头。
Scroll
Scroll是另一个字节码级别兼容的zkEVM实现。Scroll由SandyPeng、YeZhang和HaichenShen于2021年创立,他们在2022年宣布为白名单用户推出了他们的pre-alpha版本测试网。值得注意的是,围绕他们的zkEVM实现的所有代码都是公开的,并以开源许可的方式发布。Scroll将依靠一种基于SNARK的证明算法,不支持链外数据可用性解决方案。此外,Scroll团队正在设计一个去中心化的证明生成市场,以支持其zkEVM.为此,他们还专注于建立专门的硬件,可以由世界各地的用户运行,以无许可和抗审查的方式生成ZKP.
Scroll团队与以太坊基金会的扩展解决方案研发团队密切合作,该团队被称为隐私扩展以太坊团队。PSE在zkEVM方面的工作将在本报告的下一节中讨论。与其他团队如zkSync、StarkWare和Polygon相比,Scroll的规模较小,而且更注重研究。他们也只专注于他们的zkEVM实现,而其他竞争团队则有一套其他与ZK相关的产品和服务。Scroll在今年的A轮融资中筹集了3000万美元,来自包括PolychainCapital和BainCapitalCrypto在内的领先加密货币风险投资公司,以及包括EthereumFoundation的YingTong和CarlosAria在内的几个天使投资者。
隐私与扩展探索
PSE是以太坊基金会的一个研究部门,专注于探索ZKP的前沿研究及其在以太坊的应用。他们以前被称为“AppliedZKP”小组。与本报告中强调的其他zkEVM实现相比,PSE的zkEVM并不专注于在不久的将来成为生产就绪。PSE正在研究的zkEVM专注于根据一个奉行rollup模型实现与EVM的共识级兼容性。
PSE研究中使用的证明算法是被称为Halo2的zk-SNARK,它是由Zcash加密货币的核心开发团队ElectricCoinCompany开发的。由PSE团队构建的zkEVM的开发是开源的,任何人都可以参与。除了zkEVM,PSE团队还在推进其他几个项目,包括防混淆去中心化应用基础设施的研究,增强用户交易的隐私,以及替代的加密签名方案。关于PSE正在进行的项目的完整列表,请点击这里。
构建zkEVM的挑战
在以太坊上构建生产就绪的zkEVM实施方案时,有几个持续的挑战。实施像zkEVM这样的新技术是未经证实和测试的,分散zkEVM的操作,以及建立专门的硬件来生产zkEVM证明,这些都是开发者面临的障碍。本节对这些挑战做了一些深入的分析。
Novelty
zkEVM是以太坊上的一个新概念,2022年才开始认真工作。这项技术的一个简单挑战是它在规模上未经证实和测试的性质。大多数zkEVM实现之间在证明的产生方式、产生证明的硬件要求以及围绕分散排序器的细节方面仍然存在大量的秘密。对于像Scroll、Polygon、StarkNet和zkSync这样的团队来说,建立对zkEVM作为一个可靠的可扩展性解决方案的信任是一个重要的关注领域。
去中心化挑战
围绕zkEVM的运营去中心化的问题广泛适用于所有的rollup,因为有效性和欺诈证明的生成都严重依赖于中心化的排序器。如上所述,定序者是负责对用户交易进行批处理并将这些批处理的证明提交给以太坊L1的L2利益相关者。
目前在以太坊上运行的每个rollup都是由一个中心化的排序器操作的,并依赖于由一个实体管理的可升级的智能合约。今天,rollup的中心化性质的一个主要原因是由于技术的新生,以及在代码中出现意外错误时需要快速修复。此外,特别是zkEVM背后的技术还在不断变化,因此很难自信地激励用户在他们自己的设备上运行这种新生技术。去中心化测序器的rollup通常意味着推出一个代币,并充实一个共识协议,以无权限的方式组织多个测序器和证明者。虽然推出代币和创建共识协议的挑战对公共区块链来说并不新鲜,但它们需要时间和相当多的考虑才能负责任地推出。StarkWare宣布的代币计划由于设计和最初的供应分配而引起了争议,而Polygon在推出他们的zkEVM后,预计将修改其现有的MATIC代币的代币学。zkSync也预计将在未来几个月为他们的rollup推出专用代币,而Scroll推出代币的计划仍不清楚。
在zkEVM去中心化的背景下,重要的第一步是开放项目软件,在写这篇文章的时候,很少有人做到这一点。当涉及到zkEVM操作的去中心化时,能够依靠大量预先存在的用户社区的zkEVM实现可能会有优势。
zkEVM硬件挑战
虽然zkEVM证明的验证是微不足道的,但它们的生成是计算密集型的,部分原因是ZKP背后的数学依赖于线性计算序列。这使得在机器上生成证明的工作难以并行化。最近,随着递归证明的使用,在这方面取得了进展。递归证明是一种减少证明生成延迟的技术。它指的是重复生成一个证明的证明,以进一步压缩交易,从而使在ZK-rollup上并行处理小批量的交易成为可能。这是StarkNetVM和Polygon的zkEVM用来生成有效性证明的技术。
由于生成ZKP所需计算的密集性质,zkEVM可能必须依靠先进的硬件,如图形处理单元、现场可编程门阵列,甚至特定应用集成电路。需要专门的硬件来运行证明生成的必要计算,这与需要专门的硬件在工作证明共识协议下有效挖掘区块并无不同。这两个硬件行业发展的不同之处在于证明者与矿工的选择过程。
证明者是负责生成有效性证明的网络利益相关者。另一方面,排序者负责将用户交易排序和打包成批,并将数据提交给第一层区块链。从技术上讲,排序者和证明者的职责可以合并为一个角色。然而,由于证明生成和交易排序都需要高度专业化的技能才能很好地执行,分割这些职责可以防止在rollup功能中出现不必要的集中。
如果证明者和排序者的选择过程与矿工的选择过程一样,即依靠实现中本聪的共识并奖励拥有最有效硬件的参与者,那么ZKP“挖矿”行业就有可能沿着与比特币的PoW挖矿行业相同的轨迹发展。然而,有几个原因表明,具体的证明人选择过程更有可能是一个类似于股权证明设计的确定性过程,而不是中本聪式的PoW共识。
首先,对证明者使用中本聪式的选择过程意味着拥有最高效硬件的证明者将主导证明市场。为了避免证明者市场的垄断,以及证明者的重复用电,像Scroll这样的项目正在研究证明者选择的替代设计,要求证明者用资产作抵押,这与以太坊验证者被要求用32ETH的余额作抵押的方式不一样。注模式的实施确保了验证者在游戏中的地位,可以对破坏网络安全和有效性的行为进行惩罚,例如未能为指定的交易批次计算出有效性证明。重要的是,奖励和惩罚证明者的激励措施与在ZKrollup上选择排序者的模式相平衡,以便网络利益相关者有足够的参与来履行这两项责任。
确定性地选举证明人生成证明而不是让所有证明人在竞争中生成证明的另一个好处是可能增加交易吞吐量和网络可扩展性。选举证明人意味着几个人可以并行地为不同批次的交易生成证明,而不是所有证明人都为同一批交易生成证明。然而,依赖于某种形式的质押和slashing的领导者选举系统的一个弱点是复杂性。与中本聪式的PoW系统相比,PoS系统依靠更复杂的检查和平衡设计来保持参与者的诚实。例如,中本聪式的共识通常只要求参与者,也就是矿工,生成他们工作的证明以获得奖励。确定性的PoS系统可以要求参与者做更多的事情,例如存入资产、委托资产、对交易和区块进行投票、提出区块,以及监督其他验证者的行为。
大多数zkEVM可能会试图通过选择一个无权限的证明者选择过程,即确定性的而不是概率性的,来尽量减少他们的滚动的电力使用。以太坊联合创始人VitalikButerin估计,在PoW共识协议下,计算zkEVM的有效性证明将需要不到1%的电力用于开采乙醚。zkEVM设计者的目标是尽可能地减少证明时间,同时也让尽可能多的用户能够经济地使用证明生成。实现共识级兼容的zkEVM的要求之一是将证明生成时间减少到与以太坊第一层区块时间相当。
只有当zkEVM背后的规范变得清晰和标准化时,ZKP硬件制造商才能认真地成长和成熟。最后,预测有效性证明计算行业的用电情况仍然是困难的,直到rollup公司采用并实施无许可选择证明者和排序者的模式。
对zkEVM竞争的展望
在短期内,zkEVM正在竞争成为第一个在主网上推出的产品。然而,从长远来看,它们将在EVM的兼容性和虚拟机效率方面进行竞争。一旦启用zkEVM的技术得到更广泛的测试、使用和理解,很可能zkEVM也将不得不与optimisticrollup和其他二级可扩展性解决方案竞争,以获得用户的采用。
先发和后发优势
zkSync、Polygon和Scroll团队的zkEVM实现正在争先恐后地在主网上推出。在主网上率先推出的优势在于,在吸引应用开发者方面,比其他zkEVM实现者更有优势。鉴于rollup之间的互操作性和应用程序的兼容性是困难的,这可能是一个特别重要的领先优势。Dapp的可组合性是指像积木一样在Dapp之上构建Dapp的能力,是以太坊的去中心化金融生态系统的一个特别重要的特征,使Dapp开发者更有可能倾向于已经拥有最多采用量的L1或L2.
另一方面,由于zkEVM作为一种技术的新颖性,第一批推出的zkEVM实现不太可能是对以太坊dapp开发者最优化的。正如本报告所述,在字节码层面和共识层面与EVM完全兼容的zkEVM实现还没有准备好投入生产。能够更原生地支持以太坊dapp部署的zkEVM实现可能不会首先推出,而是具有与EVM更等效的后发优势。等同程度越深,开发者对zkEVM的入职体验越容易。换句话说,自2015年以来,EVM一直是主要dapp的执行环境,从EVM转移过来的工具越多,对zkEVM的dapp开发者来说就越好。
通过EVM等价吸引dapp开发者是zkEVM实现之间的第一个明显的竞争领域,虽然dapp开发者采用的先发优势很强,但该技术是如此的新生,以至于在建立一个生产就绪的zkEVM时,仍有大幅迭代和改进的空间。归根结底,这个游戏类似于创新者的困境——是做第一个并试图建立分销和社区,还是做第二个并以更好的功能推翻第一个推动者?
虚拟机设计
随着时间的推移,zkEVM的其他竞争和改进领域之一是效率。正如所讨论的,EVM并没有针对ZK系统进行优化,建立一个通用的ZKrollup,可以证明基于以太坊的智能合约和DApp,这需要大量的开销。其他为SNARK或STARK证明优化的虚拟机设计有可能使EVM的兼容性随着时间的推移而变得不那么理想,Starkware的团队强烈持有这一观点。将Solidity编译为Cairo的Warp工具以及其他类似的工具都是由社区驱动的,因为StarkWare的内部团队只专注于使StarkNet的虚拟机尽可能高效,而不是简单的EVM兼容。
在以太坊上,值得注意的是,EVM不能在不破坏向后的应用程序兼容性的情况下进行重大改变或升级。自EVM在2015年发布以来,开发人员对EVM及其高级编程语言Solidity进行了修补,以改善可用性和安全性的小方法。例如,在2019年以太坊的伊斯坦布尔硬分叉升级期间,核心开发人员为EVM添加了一个名为“CHAINID”的新操作码,它将返回典型链的唯一识别号。这是为了防止升级后的节点连接到未升级的节点,允许节点检查CHAINID,这是一个特别有用的升级,有助于防止“重放攻击”,在这种情况下,恶意行为者可以利用不良节点发现。
以太坊核心开发人员一直坚称,在以太坊的发展路线图中,对EVM的进一步修改仍将到来。新的操作码和预编译可能会继续被添加到EVM中,这表明现有的zkEVM实现必须灵活适应EVM的变化。然而,即使有了这些改进,Mina、Sui和Aptos等其他第1层区块链仍有机会尝试不同的虚拟机设计和智能合约语言设计,从长远来看,这可能会使EVM过时。
Optimisticrollup过渡到ZKrollup
最后,本报告中讨论的五个zkEVM实施方案击败了Optimism或Arbitrum等optimisticrollup,这并不是一个必然的结论。在技术层面上,ZKrollup比optimisticrollup更安全、更有效,并且有可能更有成本效益。然而,它们在证明为EVM设计的一般计算方面的灵活性还没有经过测试和广泛的规模部署。一旦zkEVM被推出,并且其背后的技术更加成熟和强大,那么由欺诈驱动的optimisticrollup就有可能升级并过渡到生成有效性证明。此外,混合rollup和多验证器系统,使用欺诈证明优化验证用户交易,并间歇性地发布有效性证明,随着zkEVM背后技术成熟,逐渐加快有效性证明的生成时间,这是一个活跃的研究领域,今天,像VitalikButerin这样的以太坊核心开发者和KelvinFichter这样的L2开发者正在认真地讨论。
已经在以太坊上推出的rollup具有预先存在的用户群的优势,理论上可以很容易地移植到新的升级版本的rollup上,类似于ArbitrumNitro在2022年推出的方式。这种可能性可能是zkEVM背后的团队对完全开放他们项目的代码犹豫不决的原因之一,直到他们的rollup已经建立了相当大的用户群,与其他预先存在的rollup的网络护城河竞争。随着时间的推移,optimisticrollup到ZKrollup的可升级性表明,zkEVM的实现不仅在彼此之间竞争,而且在更广泛的以太坊L2生态的背景下竞争。
结论
行业最近对zkEVM的兴趣大增,引发了一些关于以太坊可扩展性路线图的终局问题。在最真实的意义上,zkEVM代表了对EVM主导地位的长期押注,并通过关联,将以太坊作为智能合约执行的主要平台。zkEVM也是对以太坊可扩展性路线图的长期质押,因为它以rollup和交易执行的抽象化为中心,而不是与共识和数据可用性相联系。
尽管今年宣布了几个接近生产的zkEVM,但该技术仍处于极其初级的阶段。实现与EVM的共识级兼容的zkEVM仍然是一项研究计划,可能需要几年时间才能投入生产。然而,就在一年前,实现与EVM的字节码级兼容性的zkEVM也是如此。Polygon、zkSync、StarkWare和Scroll对zkEVM实现的快速开发,继续推动着计算机科学和数学的发展,并打破了人们的预期。PolygonzkEVM和zkSync2.0在以太坊主网上的推出,将成为用真实用户和应用程序活动测试zkEVM的重要起点。
两个生产就绪的zkEVM的可用性和可扩展性可能不仅会扰乱zkEVM协议的竞争格局,也会扰乱optimisticrollup和替代L1区块链的竞争格局。如果zkEVM获得成功,optimisticrollup将不得不转换为ZKrollup设计,以保持长期的竞争力。替代的L1区块链也将不得不在其虚拟机设计上进行创新,以与可扩展的EVM竞争。关于ZKP在以太坊上的准备情况和适用性,还有很多东西需要证明,而推出生产就绪的zkEVM应该被认为只是这种新技术的竞争格局的开始。
zkEVM继续关注和发展的几个领域包括其硬件设计和代币经济。生成ZKP的硬件环境和哪家公司能成功实现证明生成的去中心化,都还有待观察。这在很大程度上将取决于各个团队的社区建设,以及任何这些推出的产品能够在多大程度上成功地引发大规模的dapp迁移,尤其是DeFi的dapp迁移到其网络上。这些领域的发展将需要时间和迭代来完成。然而,鉴于zkEVM试图在以太坊上完成的先进性,以及它们对公共区块链未来广泛的潜在影响,以太坊的利益相关者、研究人员、密码学家和学术界都将密切关注这一进展。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。