Foresight Ventures: 从 Polygon zkEVM 出发, 理解 zkEVM Rollup

作者:msfew@ForesightVentures

来源:?ForesightResearch

以太坊的未来路线可谓是为Rollup量身打造,而目前最被寄予厚望的方案就是采用了零知识证明技术的zkRollup.

通常大家的认知中,?zkRollup需要数年的工程开发才可以真正落地,这是由于构建zkEVM的开发难度巨大.为了让开发者能无缝移植和部署以太坊智能合约到zkRollup中,开发团队需要对兼容EVM的zkEVM进行开发与性能优化.

实现zkEVM一直是以太坊基金会和Polygon等其他zkRollup团队的重点任务.在长期视角下,zkEVM的实现不仅能解决以太坊主网共识瓶颈的各个方面:

I/O:通过无状态和enshrinedzkEVMs

存储:通过无状态和enshrinedzkEVMs

计算:通过enshrinedzkEVMs

同时以zkEVM为核心组件,可以构建一个真正完美的通用Rollup网络.

Polygon就在近期带来了这么一个带有zkEVM的alpha版本zkRollup,与Scroll,StarkNet,zkSync,Sin7Y等的方案相比各有千秋.这些zkEVM的存在是Polygon与以太坊生态的一个巨大飞跃,也意味着全新且更好的Rollup用户体验即将到来.

一:zkEVM

a)zkEVM介绍

在了解zkEVMRollup如何颠覆以太坊用户体验之前,我们需要认识zkEVM的概念.如果你想更深入地了解zk,zkVM与zkEVM,欢迎阅读我们之前的研究文章.

zkEVM的概念可以被拆解成两个部分:

zk:零知识证明技术,可以通过一个精简的证明来证明一批次tx的有效性,达成计算可信,从而实现扩容.

EVM:以太坊生态的智能合约执行器.正是EVM的存在才让以太坊具有智能合约运行能力,成为全球计算网络(相比之下比特币的功能可能只能算是计算器),同时EVM也衍生出?EVM兼容,EVM等同,EVM超集的概念.

那么zkEVM就是一个至少在编程语言层面兼容EVM的zk虚拟机.智能合约在zkEVM中运行后,会生成一个zk证明,它可以证明运行状态转换的有效性,保证计算可信.验证者只需对证明验证即可(开销很小),无需重新执行(冗余很大).

b)zkEVM意义

zkEVM在各个层面都具有重大的意义:

对于Rollup扩容:zkEVM可以为批量tx生成证明从而在主网快速验证,以完全可信与无需多轮复杂共识的方式借助主网安全性达成了计算可信.

对于DApp开发者:开发者无需学习任何zk相关的硬核知识或Solidity和Vyper以外的新语言,就可以借助zkEVM来给任意智能合约赋予zk的超能力.

对于zkEVM开发者:无需为网络上的智能合约的功能编写不同的电路,而是只需维护zkEVM即可.

对于Layer3搭建者:可以尝试在zkEVM中搭建Layer3的Verifier,于是Layer3的批量交易可以进一步被同时证明且批量地打包成一条tx在主网验证(L3:1000tx→L2:10tx→L1:1tx),实现App-rollup.

对于以太坊:多个zkEVM方案的存在最终会成为重要的PublicGoods,帮助以太坊实现下一阶段的EnshrinedzkEVM与zkeverything的Roadmap.

c)zkEVM方案与进度对比

近期zkRollup项目非常活跃.StarkNet宣布将在未来发币,Aztec发布了隐私DeFi,zkSync发布了主网上线倒计时,Scroll发布了Pre-Alpha版本的zkEVM,Polygon开源了zkEVM项目的全套代码……

以太坊生态可谓是一场zk与zkEVM的军备竞赛.而正如我们在之前的zkVM与zkEVM文章中所说的,zkEVM的方案各有千秋,各有优势.

首先是技术大方向上的区别,基本分为两个方向:

两个方向上都有不同的选手:

基于原生:Polygon,AppliedZKP,Scroll,Taiko.当然后三者都在同一个Repo中进行开发,基本可以视为是同种方案.

基于编译:StarkNet,zkSync,OlaVM等.这个赛道上选手最多,但不同项目的差别其实也比较大.

按照?Vitalik的分类对比方法的话,分为如下类型:

Type1:完全适配以太坊L1的enshrinedzkEVM.如AppliedZKP.

Type2:完全EVM等同的zkEVM,内部结构略有区别.如未来的Scroll和Hermez.

Type2.5:EVM等同,仅gascost不同(可能会导致细微的兼容性差别)的zkEVM.如加上复杂操作的precompiles后的Scroll和Hermez.

Type3:几乎EVM等同的zkEVM.如现阶段的Scroll和Hermez.

Type4:语言层面兼容EVM的zkEVM,特性和开发者设施会不同,同时开发者也无法直接手写EVMBytecode.如zkSync和StarkNet.

在方案的取舍上,实际上有非常多的变量.就像游戏初始人物加点一样,只有一定量的天赋点可以分配给每个变量,可以说又是一个三难选择:

性能(zkProver,Verifier,开销,硬件加速)

适配性(DApp开发者,基础设施,开发工具,矿工)

开发难度(维护难度,开发进度,系统复杂度,工程实现复杂度)

其中典型方案的区别为:

StarkNet:完全实现一个全新的zkVM(CairoVM),性能好,开发难度不高,但适配性不足(需要Warp转译器实现EVM),最大的亮点是已经形成生态,同时具有?storageproof?和?fractalscaling?等创新.

zkSync:IR层面的zkEVM(LLVM-IR部分).适配性好(语言层面适配),性能和开发难度都中等,?更加灵活,最大的亮点是可以在编译器迭代过程中,可以通过LLVM支持除了Solidity外的其他语言.

Hermez和Scroll:都算是Bytecode层面的zkEVM(不代表完全复用EVMBytecode,但两者的差别很细微).适配性极好,性能有所牺牲(原始的EVM并不zk友好,电路化之后有很多性能上的挑战需要攻克),开发难度很高,最大的亮点是架构安全性与最原生.

二:PolygonzkEVMRollup

PolygonHermez此次开源的zkEVMRollup网络的核心组件就是zkEVM.它的整体技术方案与其他方案的对比和我们前文中所述的基本一致.

a)PolygonzkEVMRollup架构

PolygonzkEVMRollup的整体架构如下:

架构中的核心就是zkEVM本身.zkEVM会执行L2的tx,并且链下证明网络会为zkEVM中tx的执行生成有效性证明,最终状态改变和证明会被提交上以太坊主网.

PolygonzkEVMRollup的关键组件为:PoE共识算法,zkNode,zkProver,STARK与SNARK的ProofBuilder,Rollup跨链桥:

PoE共识算法:为了安全性,效率,与去中心化的提升,PoE算法替换了Hermez1.0的PoD算法.PoE能与PoS相结合,保证PolygonzkEVMRollup出块的去中心化与高效.任何运行zkNode的矿工都可以成为Sequencer,而任何运行zkNode与zkProver的矿工可以成为Aggregator.其中矿工出块权利的gasfee将使用$MATIC进行交易.

zkNode:zkNode是任何想参与PolygonzkEVMRollup网络的矿工所需要运行的软件.zkNode会进行tx的同步,排序,与验证.除此之外,如果仅仅是想了解网络的运行状态,而非参与,就只需要运行一个read-only节点,无需运行zkNode.

zkProver:zkProver是任何想作为Aggregator角色参与PolygonzkEVMRollup网络的矿工所需要运行的软件.zkProver顾名思义是一个生成zk证明的证明器.本质上,zkEVM是多项式表示下的状态转换,zkProver中包含了一个MainSMExecutor和多个SecondaryStateMachines,来达到对状态转换的证明.

STARK与SNARKProofBuilder:两个ProofBuilder会生成STARK与SNARK两类不同证明.STARK(PILSTARK)为状态转换批次的多项式约束的满足生成证明,而SNARK(SnarkJS)会对STARK证明的构建生成constantsize的证明,从而以更低的成本发布在链上.

Rollup跨链桥:PolygonzkEVMRollup除了是一个传统的Burn/Mint跨链桥以外,还可以作为与其他L2进行跨链的桥梁.

b)PolygonzkEVMRollup设计

PolygonzkEVMRollup的设计核心思路就是:

去中心化(任何人都可以通过DA来重建整个Rollup的状态,没有任何Censorship和中心化控制的存在)

无需准入(任何人都可以参与到网络中,作为Sequencer或Aggregator)

安全性(继承以太坊的安全性,通过以太坊网络来帮助Rollup状态更新与证明的验证)

性能与高效(通过PoE,链下计算,跨链桥合约的UTXO模式结算,以及各种密码学优化方案进行性能提升)

c)PolygonzkEVMRollup特色

真正让Polygon方案脱颖而出的优势有很多.

首先,Polygon开发团队间的协作天然地形成了合力.Polygon的zk宇宙中包含了PolygonHermez(也就是我们所说的PolygonzkEVM的主力开发团队),PolygonZero,PolygonMiden,与PolygonNightfall,模块化方案中更是包括了其他的很多团队.虽然三支zk队伍的方向略有不同,但都是zkVM领域的顶尖团队,在技术方案与架构上能直接地进行协作与互相帮助.?比如PolygonHermez选择64-bit的smallfield的STARK证明生成就是采取了PolygonZero的建议.

此外,PolygonzkEVMRollup在zk技术上有很多创新.比如两门DSLzkASM和PIL的创造,可以用于解释EVM字节码与编码多项式承诺;STARK与SNARK的结合,发挥了STARK的Scalable和SNARK的Succinct,让证明整体更快的同时最终链上空间消耗更小;?优化上,采用了非常高效的Goldilocks?作为basefield,实现了Keccek电路的并行计算,使用Poseidon-hashMerkletree作为数据结构进行系统的存储.

在证明生成去中心化与EVM等同性上,PolygonHermez与Scroll都以各自的方式做出了很大的努力.要实现EVM等同性,就必须要将EVM的操作码通过zk电路的形式来编写,Polygon通过?zkASM来解释,然后在zkExecutor中执行?(Geth本质上一样是解释),而Scroll是直接可以对Geth客户端的ExecutionTrace生成证明.

两者在兼容性上实际没有区别(runtime的解释或者转译不会对适配性有影响),?对比下,Polygon的方案在EVM等同性上做到了对证明节点更友好,更高效,对比之下,Scroll侧重于完全复用Geth的安全基础,?更方便审计.

我认为PolygonHermez的zkEVM的方案在原生EVM支持与性能之间击中了SweetSpot,不仅通过zkASM对EVM进行解释,避免了EVM底层开发复杂度极高的问题,同时也通过不同角度的创新与优化让性能不再是zkEVM的致命问题.

三:zkEVMRollup方案的优势

a)Layer1与Rollup

用户苦Layer1gas已久也,在我们之前MEV的研究里,讨论到了一个理想的网络的形态.

在一个理想的网络里:

任何人都可以发送交易(nocensorship)

没有垃圾信息(nospam)

费率非常低(lowfees)

同时在Crypto与区块链的语境中,网络还需要是去中心化与性能可拓展的.这就是一个理想区块链网络的三难格局:

lowfeeswithnospam

decentralizedwithnopermissionandnocensorship

scalablewithgeneralcomputation

Layer1的单体区块链不可能同时做到以上几点,而Rollup通过中心化出块,去中心化验证做到了能最终实现性能高,去中心化,低费率的终局.

这也是我们在?Rollup文章中得出的结论.

b)OptimisticRollup与zkRollup

在长远的角度和实际的理论性能上限下,zkRollup相比OPRollup更具有可拓展性,安全假设更加强.

OptimisticRollup所带有的挑战期让一个tx被真正finalized的时间特别长,而zkRollup的证明一经生成与验证,则可以直接让tx完全finalized.

Rollup的OP就像Layer1的PoW与最长链原则,zk像PoS与其相关共识.对于Layer1来说,PoW与PoS的机制都是可以的,但追求性能的Rollup在终局中更需要更强保证(通过质押或者密码学)的zk机制来实现.

这也是我们在模块化区块链文章中得出的结论.

c)zkRollup与zkEVMRollup

既然zkRollup,那么为什么现在火热的都是OptimisticRollup呢?

因为目前运行的zkRollup并没有通用计算能力,如Loopring等,仅仅是停留在单一操作的阶段,开发者无法部署与移植智能合约到Rollup中.

zk证明主要用于证明操作的正确性,一个zkEVMRollup的出现能培养像OptimisticRollup一样的智能合约生态,远远比普通的zkRollup转账扩容网络灵活,同时会比OptimisticRollup更具有安全性,用户体验更好.

四:zkEVMRollup的用户体验

a)天时地利人和

zkEVMRollup的出现是天时地利人和:

天时:Layer1扩容遭遇瓶颈,OptimisticRollup已探索了Rollup的道路.

地利:以太坊所提供的安全性与社会共识为zkEVMRollup的建立提供了完美土壤.

人和:EVM生态占据区块链开发的主导地位,无数zk开发团队为zkEVM方案贡献着力量.

那么zkEVMRollup对于用户来说到底什么体验上的提升呢?

首先我们需要定义一下用户,我认为,用户包含了开发者和普通用户:

b)开发者的用户体验

zkEVM?不用学习新语言甚至不用写新合约来开发DApp:Solidity作为区块链合约世界的第一语言,有着无数的资源和生态,且是最适合区块链场景的语言,这两个优点结合起来,远远优于Move或Rust等.

Rollup?解锁更多的应用场景:用以太坊主网来做支付或者游戏等应用由于性能和开销问题,是不太合适的.zkEVMRollup能让更多的App以DApp的形态实现.

c)用户的用户体验

zk?比PoS网络更强的安全性和比OPRollup更快的finality:一些PoS网络靠代币质押来保证安全性,而它们的资金量较小,所创造的安全性保证是不强的,zk的密码学通过数学来保证绝对的安全性.OPRollup的挑战期让一个tx在一定时间内无法被确认,而zkRollup对tx的证明一经生成则确认了tx.

EVM?完全一致的使用流程和基础设施:除了需要在钱包和应用内切换网络以外,用户所有的使用流程都会与在主网上一模一样,无需额外的学习成本,只需要像之前一样使用应用.

Rollup??OP和zkRollup都可以提供L2的instantfinality:从用户体验上来说,基本还没反应过来,交易就已经被执行完成.因此用户无需再等待十几秒或者十几分钟的时间来继续发送下一个交易.在应用使用上,用户就可以更加无负担地进行链上活动,进行高频的交易或者链上游戏等.

d)PolygonzkEVMRollup用户体验

在未来,用户与开发者在zkEVMRollup上的体验会无限接近于以太坊主网,同时体验会在低gas与快速确认的优势下更加地迅捷和流畅.

PolygonzkEVMRollup的计划中,?ETH始终会作为Rollup的gasfee计价单位,而MATIC会作为质押所需要的代币,这是非常优秀的一个决策:

更好的价值捕获:Polygon在运营PoS网络的经验中得出的结论是质押所带来的价值捕获优于直接使用代币作为gas.

更好的使用体验:ETH作为Rollup代币,能让L1的用户或者跨链桥项目免于过程中额外的Swap步骤(大部分人会直接跨ETH).同时ETH作为gas也更具有正统性.

更显著的差异化:PolygonzkEVMRollup会与PolygonPoS有更明显的差异,同时机制的不同确实也需要这样的差异,来让用户选择更适合自己的方案.

同时,Polygon所为zkEVMRollup带来的还有:

熟悉的“环境”:用户不用关心底层的技术改变,一切都会和PolygonPoS非常相似,只是各方面来说zkEVMRollup会更快,更安全,更好用.开发者也可以参加着熟悉的黑客松,享受着Polygon所积累的丰富开发生态与社群.

五:zkEVMRollup的未来

对于zkEVMRollup方案的未来,我们会分析技术上的未来,以及这个方案的终局形态到底是什么.

a)zkEVM技术

Vitalik对这个话题有着非常深刻的见解.在他所概括的四种zkEVM分类中,没有真正的好与坏的方案,只是有不同的技术上的取舍:更贴近底层但更慢,更缺少兼容性但更快.

长远来看,zkEVM的工程化落地和优化只是时间上的问题.所有方案都有着自己的价值.Vitalik也说这些不同方案或许在时间的推移中慢慢转型,直到找到适合自己定位的哪一种.

最好的未来,就是我们拥有非常多个不同风味的zkEVM,从而开发者可以选择自己喜欢的那一种,以太坊主网也可以去通过他们的创新来做自我提升.越多创新就是越好的未来.

b)Rollup技术

Rollup技术的终局会是zkEVMRollup,而OptimisticRollup会继续有着自己的一席之地,甚至会有zkEVM与Optimistic混合的Rollup(个人认为一种机制其实足矣).

zkEVMRollup在很多方面都比OptimisticRollup好.但是OptimisticRollup最大的好处就是建立起来更简单,OptimismBedrock和Geth只有五百行代码的区别,任何了解Geth的工程师都可以很轻松的搭建一条OptimisticRollup,或者未来在Celestia上使用Optimint等引擎,OPRollup这方面的道路已经被全面探索过.而zkEVMRollup复杂度更高,学习门槛更高,还没有真正完全落地的经验与方案.

c)技术…不是最重要的

聊了很多的技术,但是技术肯定不是最重要的.zkEVMRollup,Rollup,以太坊,乃至区块链的瓶颈从来不是工程落地或者DA或者共识上的技术瓶颈,而是用户.

举个Web2的例子(感谢Nelson):苹果的AppStore.所有的开发者都会优先考虑在AppStore上发布应用,但是AppStore的审核非常不稳定,经常会随机拒绝应用的上传.相比之下,安卓的应用市场,或者亚马逊的应用市场审核就友好很多.但是为啥大家都想发布到AppStore呢?因为AppStore有成熟且稳定的用户群体!无论安卓或者亚马逊应用市场的开发者体验做得再天花乱坠,开发者都还是会涌向有着用户的平台.

软件开发的目标不是优雅的API,100%的TestCoverage,最好的编程语言,而是:解决更多的问题和提供更多的价值.这就意味着需要面向更多的用户.

d)终局形态

那么在我们的想象中,一个真正终局的zkEVMRollup会是怎么样的呢?

终局的基础:技术

zkEVM层面:所有的方案只要能落地都是好的,但不必过于原教旨主义.以太坊的EVM是一个非常Legacy的陈旧系统(当然依旧是顶尖的方案),尽管去对zkEVM进行更多的改善和创新.除此之外zkEVM需要更多的优化,减小?provingoverhead?来赶上Optimistic方案.

Rollup层面:保证优先满足区块链的核心价值(去中心化,安全性),而不是一味对TPS进行军备竞赛.

终局的核心:SocialConsensus

生态层面:最理想的情况下就是所有以太坊主网的应用都迁移到某个Rollup上.如果这个zkEVMRollup本身就具有良好的生态基础,那么在启动上就会拉开其他方案非常多.在这个方面,不得不说,Polygon有着巨大的优势.

开发者层面:EVM兼容性不是决定性因素,而是哪个zkEVMRollup能最快地接触到开发者,让开发者使用它作为网络来进行开发.从来不是网络去顺应开发者,而是开发者去挑一个整体最快或者最好的网络,然后去慢慢适应这个网络的开发.

用户层面:用户的心智与社会共识非常重要.除了Reach开发者,谁最先最有效的Reach到用户也是最重要的因素.一个成功的网络不应该成为技术宅对技术方案优越性的自嗨,而是真正地为用户解决问题,创造价值.

zkEVMRollup都有光明的未来.

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

金智博客

[0:0ms0-4:210ms