零知证明与zkEVM:从何而来,去往何处?

AkiLabs-Roy,Lyv
2023年4月6日 16:01
收藏
浅谈零知卷叠的继往开来。

by Aki Labs - Roy, Lyv

在当下火热的zk-Rollup赛道背后,我们一直希望能够梳理这一区块链最前沿技术为何应运而生,不同团队解决方案大大小小的差异,以及这些差异最后可能会为我们带来一个个如何截然不同的生态。

 

一、零知证明 

 

首先我们需要明确,零知证明(ZKP)真的很难。

如果我们用几句话简单概括ZKP的话,一定会产生理解与事实上的偏差。但是我们相信在TL;DR的巨大魅力面前,大家都不会过于在意的。下面就让我们以实际生活为背景,描述三个场景的递进,来形象地理解ZKP的原理。

场景A:

想象一个暑假结束开学了,老师检查《暑假生活》的场景,全班同学交上来一摞厚厚的大本子。老师是不可能一道题一道题批改的,于是他开始快速翻动眼前的练习册,以作业本上有没有留空白来检查学生是不是把每道题都写了。

  • 在这个场景下老师并不知道每道题学生是否答题正确,只是他能确定学生有没有完成作业。

场景B:

他发现有一些同学在空白处填上意义不明的内容如和路雪棒棒冰、肯德基疯狂星期四等等,他才意识到自己是过于天真了——学生们偷奸耍滑。于是他把作业全部打回去,宣布自己将要抽查部分题目,希望同学们认真对待。

  • 在这个场景下老师通过随机抽查验证非常小部分的题目以确定学生有没有正确地完成作业。

场景C:

老师再把作业收上来检查后,大部分同学因为惧怕抽查好好完成了作业,老师表示比较满意。然而总有一些人继续偷奸耍滑,他们会在随机少量题目下瞎写。而老师只能随机抽查部分题目,若不是部分人运气不好恰好撞上被抽查那道题,又险些被他们混过去。

  • 所以老师最终还是需要一个方案,既能保证学生每道题都正确完成了,还可以尽可能降低自己的工作量。

 

这就是目前区块链中零知证明真正克服的困难:如何在验证尽量少的题目的同时,保证答案整体的正确性。在以上的场景中,每道题的答案之间并没有任何的逻辑联系,即这一道题的正确与否与另外一道题的正确与否无关。所以,是否有一种巧妙的方式,让老师在抽查一道题并判断正确与否的同时,就能知道学生整本作业是不是全部回答正确的?

那么,以下是超现实部分:老师想要把所有正确的答案“串”起来,并为此引入了新的数学工具:多项式。通过构造含多项式的等式进行验证,能够几乎同时确认同学们的答案部分个体与整体的正确性。这样,老师终于可以放心地宣布,同学们正确且完整地完成了暑假作业。

 

所以多项式是什么魔法?

在这里举一个简单的例子:作业只有三道题,序号与答案分别是(1,4),(2,6),(3,3),用一个多项式“串”起来得到y=-52x2+192x-3

至此,老师批改作业只需要完成两个步骤,1)检查多项式本身,验证整体是否正确;2)随机抽一个点以验证这个同学是不是真的写了这道题。当然这是一个非常幼稚的例子,在实际的工程中,我们构造的是含多项式的等式,一部分是待验证某个由数学语言表达的statement,另外一部分则是用多项式串起来的可验证且完整的信息(聪明的读者可能已经想到了数据可用性DA这个概念)。

多项式有很多美妙的性质,在零知证明中我们主要利用了其中的两个:

  1. 原有的信息被串起来了,而我们验证一组多项式等式中的点就可以同时验证整个等式。

  2. 如果一个多项式等式在某些随机选择的点上成立,那么这个等式极大概率是在全集上也成立的。

 

一句话总结:零知证明的本质是一个概率性证明,即抽查(约等同于有效性证明validity proof),同时通过引入多项式构造以及一些密码学的工具来弥补简单随机抽查在完整性上的缺陷。

有趣的是,在rollup的语境中,零知识证明的“零知”更多的体现在validity proof对于信息的压缩上,而非直觉上的对每条单个的信息进行隐私处理。

image

 

二、所以zkp有什么用?

 

我相信你应该听过ZK-Rollup。我们在前文中花了大量篇幅说明老师是怎么想办法在完成检查作业的前提下偷懒的,而ZK-Rollup做的事情就是偷懒

简而言之,比如现在有一千个statements(通常是交易),在ZK的帮助下只需要进行十次验证即可证明其正确性。随着证明工作量的增加,其对于验证次数相应需要的增加量是远低于一个线性关系的,即增加到一万个statements,验证次数并没有增加到一百次,可能我们只需要十一次即可证明。

所以这是一个很好的扩容方案。类似其他扩容方案一样(如Optimistic Rollup),现在已经有的ZK-Rollup应用过程如下,:

  1. 用户将资产锁在某个L1上的ZK-Rollup的智能合约中

  2. 用户开始进行交易,这些交易内容由L2的sequencer进行整理打包,生成一个validity proof(这里用ZK证明)以及在每个包(batch)里进行状态的更新

  3. 状态的更新与证明会被交给L1上的ZK-Rollup智能合约进行验证,以用来更新L1的状态

  4. 用户用在L1已经更新的状态来进行下一步操作。

三、ZK-Rollups vs Optimistic Rollups

 

作为Rollups的两个技术路线之一,基于ZK构建的Rollups提供了更高的安全性。因为ZK-Rollups仅依靠数学及以太坊本身提供安全性保证,而Optimistic Rollups在这一方面则依赖于博弈论框架下的经济学激励以及惩罚。

对于用户而言,这意味着ZK-Rollups拥有更快的L1 finality确认,而Optimistic Rollups需要等待一周的挑战期。当然现在有各类跨链协议可以用Defi的手段让Optimistic Rollups用户体验更方便快捷,例如Celer, Stargate, Across, Synapose等。但这往往是通过牺牲一定的整体安全性来换取局部单点用户的体验提升,同时这些协议中用户支付的提款费用也是一般是官方提款渠道的数倍。

虽然ZK Rollups享有相对于OP Rollups这些在理论上的优势,现状则是基于ZK-Rollups发展的生态相比于OP Rollups们还远不够繁荣,所以用户很难在ZK生态中获得与OP中类似的交互体验,而ZK Rollups也在短期内很难展现出一些在规模化之后才能体现出来的优势(高并发,低延迟,L1交互安全性等)。

 

四、那么zkp的问题在哪?

 

因为ZKP在理论上达到可用的时间不早于2015年,所以以太坊在设计之初与ZKP并没有任何关系。从小节一的阅读,你可能隐隐有一个感觉:这是一个很数学的玩意儿。你的感觉是对的,它带来的最直接的问题是EVM的核心基础设施与ZK-Rollup并不兼容,原因包括但不限于以太坊储存布局,以太坊的签名加密机制。以太坊EVM的运算基于正常人的数学世界,而ZKP的计算与证明在素域(Prime Fields)上。 (注:这一条与前面两条在逻辑上使并列的关系)

而这样的种种不兼容,一方面给基于ZKP的区块链项目带来了巨量链上计算的额外负担(overhead);其二,因为需要ZKP在工程学上的实现,算数电路、逻辑门等数学概念的实施复杂度成为一个在编程时不得不考虑的约束,也使得开发者们要在开发学习成本与实现精度两者之间做一定取舍。

而在应用层面,现有基于ZKP的技术栈(Tech Stack),要么是部署在L1上面的智能合约指向某一个L2的ZK-Rollups(在这里我管它们叫通用ZK-Rollups),要么是基于Dapp设计的专用ZK-Rollup,比如dYdX V3用的就是ZK-Rollup(本质上是基于Starkware的专用ZK-Rollup)。

不管是哪一种形式,因为数学底层的巨大差异导致了这些ZK Projects和其他项目的可组合性很差。比如在ZK-rollup生态部署的一个Defi协议希望找一个有公信力的预言机,这个场景的需求是真实存在的;然而由于这个协议是基于ZK-Rollup开发的,那么和其他交互起来就十分困难,例如Etherscan就不能简单在基于ZKP的区块链上进行fork而直接服务这条链。

 

五、为什么要和以太坊(或者说是EVM)兼容呢?

 

因为以太坊生态很大,如果你的链和它长得越像,最好就只是Chain ID不一样,那么你的生态被一些基于以太坊开发的app支持的概率就越大。比如Polygon一直以来致力于支持以太坊,提供了各种各样高效又便宜的扩容方案,为用户和以太坊生态发展作出了很大的贡献。

用户(开发者)的方面,熟悉,便宜,无痛转换才是金标准。而对于绝大多数开发者来说,学一门新的高级语言的学习成本(比如Rust/Move),是远远低于学习一门严肃的数学课程的(更不要说还要引入ZKP那样繁复的工程上的实际应用)。因此一个协议项目在一条新公链上重新开发的难度,例如Solana/Aptos,远低于在一条较为陌生的、基于严肃精密且复杂的数学逻辑语言的区块链(ZK-based)。 

当然并不是说自己搞一套新的标准一定不可行,在强大的开发团队和适度的经济激励下,Solana同样取得了巨大的成功。在EVM的加持下,Cosmos生态也成功吸引到了大量的solidity开发者前往部署自己的协议。

因此,所以如果ZKP可以和EVM无痛兼容,开发者们会更轻松地去移植已有的Dapp和智能合约到ZK-based L2,或者在这一个新的框架下开发全新类型的Dapp。进一步,如果第四小节中提到的可组合性问题也可以得到改善,从而ZK-based projects可以与其他应用有更好的交互,那么我们会得到一个更繁荣的ZK-based L2生态。这一点上,ZK L2玩家们和Solana, Aptos这些L1玩家底层驱动力是一致的。

 

六、那么有没有办法让ZKP和EVM兼容呢?

 

有的。现在很多团队就在做这个事情。

6.1 等一下,什么是EVM?

EVM是以太坊上运行智能合约的虚拟机。

6.2 再等一下,什么是虚拟机?

一台用软件模拟出来的几乎与真实电脑一样的虚拟电脑。

6.3 那为什么以太坊需要虚拟机?

因为以太坊引入了智能合约,而执行合约需要一台电脑。在去中心化网络里,产生共识的前提是,不同节点对同一合约的计算和处理需要产生相同的结果,即不同计算机去计算1+1(实数域),都应该得到2这个结果。然而每个节点的物理意义上的电脑可能有不同的底层环境,为了避免这些底层环境差异带来的干扰,所以智能合约需要在虚拟机上运行,以保证相同问题产生相同结果,即确定性。

有很多很多的文章或者推已经总结了这些不同路线在技术上的差异,在此不再赘述,我觉得可能你们也没有兴趣。所以在这里就聊一聊常识、商业、和更用户向一点的东西。

第一个问题是我们对生态有什么样的期待。

现状是ZkSync StarkWARE等团队做了很多Application specific zk-rollups,toB的业务发展得很成熟,例如Immutable在Starkware上已经承载了像Illuvium这样广受期待的大型Web3游戏。然而由于在前面几段的讲过的原因(主要是在可组合性上的缺乏),这些项目依然在等待形成一个共同且共通的生态来抱团发展。

Scroll/ Polygon Hermez/ zkSync Era 在构建ZK-based L2生态做的努力是将开发和现有协议移植的难度降低到几乎无痛的水平。在实现完全EVM等效(type 2 by vitalik)的这个过程里,我们目前在实践中是处于“几乎”EVM等效(type 3 by vitalik)这个进度。例如zkSync Era就可以使99% 的以太坊项目无需重构或重新审计任何一行代码即可部署。

image

对于用户而言,在交互体验上如果没有很大的差异,选择用哪一条链多数时候取决于现在已经在使用哪些链。Polygon在这方面是占据了一定的优势,特别是其现有生态中承载了大量的原生游戏、社交的协议和用户,以及独特的Web2品牌露出。

然而我们认为Scroll和zkSync Era在吸引现有协议部署方面在短中期也不会有明显的掣肘,主要是基于下面几项我们对开发者生态的长期观察:

  • 以太坊生态的Dapp在Zk-based L2的部署开发难度在逐步下降到触发大规模迁徙的拐点

  • L2toL2,L1toL2的跨链协议逐渐走向简单方便便宜,L2原生定向跨链桥也有望兴起,虽然中心化的挑战依然可能长期存在,

  • 从我们熟悉的领域来讲,由于有经济激励的预期和积极的运营(参考Optimism成功的多轮空投激励的经验,Arbitrum的开发者社区运营逻辑等),用户可以做到对多条链的多个协议都一一进行尝试

第二个问题是如何从中心化到去中心化。

首先要说明的是,目前的绝大部分ZK-Rollups是一个很中心化的结构。其很大的一个原因是路径依赖:因为目前没有可组合性,所以就不需要和别人组合,所以中心化暂时也没有关系。但是如果想发展成一个生态,这个中心化的问题必须解决。

目前主流的ZKEVM方案提供者们共同认识到了解决这个问题的必要性。在这个方面Scroll/ Polygon Hermez/ Zksync Era 认为推进prover网络和sequencer网络去中心化的进程应该是逐步渐进式的,最终实现将prover/sequencer的工作通过代币经济学达成算力外包和市场化,尽管具体实现步骤各家仍有分歧。

所以我们又回到了熟悉的领域:有钱出钱,有力出力,然后大家等着平台派发分红。在这里我们有一个小的concern是生成证明的算力产生的成本其实是很高的,所以prover在zk-based L2中的门槛会远高于PoS链的对应部门;而sequencer出错块的问题其实是所有区块链网络共同的问题,并不独属于zk-based L2,。所以我认为在ZK生态中,prover网络的去中心化可能会面临更大的挑战。

 

七、ZK-based L2生态发展野望

 

StarkNet:

做为私募估值最高的以太坊ZK扩容解决方案以及zk-STARK的密码学理论创始人,Starknet所代表的技术流派一直以来是行业的例行标准。创始人Eli Ben-Sassen甚至就是区块链中广泛应用的zk-SNARKs和ZK-STARKs的发明者。

但我们同时也发现,在很多涉及与以太坊EVM生态融合至关重要的产品配置上,Starknet生态由于技术路径的原因,还在探索更加开发者友好、面向大众的解决方案。我们认为将来Starknet团队可能在商业上会继续执行两条腿走路的战略:

  1. 一方面通过成熟的Starknet继续用定制化开发服务有大规模ZKP需求的项目,比如Web2游戏厂商的AAA大制作,或者IP持有者进行链上元宇宙的大规模试验

  2. 另一方面,通过扶持智能合约钱包(Argent X, Braavos)、Cario x Solidity开发者中间件桥梁(Kakarot, Wrap)等方式,增强和以太坊生态整体的协同能力

与OP-Rollups需要和以太坊主网一起通过EIP-4337建立智能合约钱包的方式不同,Starknet从一开始在L2上就支持基于账户抽象的智能合约钱包。Starknet上部署的智能合约钱包可以在利用手机内置芯片的加密安全能力实现硬件签名器和多重认证,并通过区块链合约层面的创新完成社交恢复、移动钱包支付等场景。

届时,我们似乎可以想象一家大型的移动硬件公司,携带海量Web2用户,以元宇宙或者大型链上游戏作为入口进场Starknet及Web3的盛况。

zkSync Era

近期刚推出zkEVM 2.0版本的zkSync也是最受期待的zk L2解决方案之一,主打极高的性能天花板,兼顾安全与用户体验,最高TPS潜力可达20,000+。最新的zkSync Era利用基LLVM的Solidity编译器,zkSync自创、屡获殊荣的GPU证明器,以及Matter Labs即将推出的Redshift证明系统,将会把每笔交易的费用降低至远小于1美分。

zkSync Era也致力于降低区块链数据存储的问题,在EIP-4844之上还提供了创新的zkPorter功能,允许用户和开发人员依据不同的安全级别需求选择数据可用性格式,在具有无缝互操作性的高性能的validium(zkPorter)和高安全性的validity(zk-Rollup)之间平衡开发重心。

另外,zkSync Era引入了Hyperchains的分形扩容方案作为其“L3”的主要发展方向。Hyperchains是利用LLVM(LLVM是世界上最成熟的编译器堆叠架构)的zkEVM类似分形的实例,可在L1上实现并行运行及共同结算。任何人都可以在无需许可的情况下部署Hyperchains,它具有高度可定制的模块化zkEVM链堆栈,并由与主zkSync L2完全相同的zkEVM引擎提供支持。开发人员可以选定的不同解决路线,选择相应的虚拟机(例如MoveVM)、定序器设计以及数据可用性(如上文中提到的zkRollup、zkPorter和zkValidium)。

zkSync Era推出如此高度可定制模块化的堆栈,让我们不得不联想到近期借由Coinbase旗下Base链进入大众视野的OP stack。

我们认为zkSync的B端发展路径或许可以参考Optimism的经验,即利用现有的大规模用户、强大的机构支持者背景,与开发者社区建立良性循环的空投预期和促进生态发展的治理机制(Token House、RetroPGF等)。这样既可促进超越基建设施的创新应用,又能够鼓励现有协议(比如L1上的传统DeFi蓝筹们)的最新版本前来Era部署。

从C端来讲,zkSync Era可能可以从目前以太坊L2还不太强的Web3社交出发,着力打造以太坊系统内的最强的社交网络、社交图谱等应用来吸引更多的轻量Web3用户。我们注意到Hyperchains还有一项很适合运用于社交协议的创新。还可以用来实现高并发、短暂的执行环境。例如,开发者可以启动一个Rollup来廉价地铸造数百万个社交网络内的同质化NFT资产,然后将这些NFT桥接到另一个执行层,最后关闭临时的Rollup,为社交协议提供必要的基础设施容量弹性

Polygon zkEVM

Polygon生态的大战略一直就非常清晰,团队也执行地非常坚决。我们看到Polygon和其他以太坊Rollup之间已经形成了差异化竞争。在社交生态上,Polygon凭借Lens Protocol生态和Galxe已经成为并肩BNB的Web3社交两巨头之一。而Planet IX, Hunters On-Chain,Benji Bananas等打金游戏也都拥有数十万的月度活跃钱包地址数。最近Polygon zkEVM也和Immutable在2023 GDC大会上宣布了战略合作伙伴关系,以更好服务工作室和开发商更容易打造高质量的链上游戏。根据Cumbeland的报告,Polygon在非加密伙伴方面有望在短中期内达到每年3亿美元的收入,是目前每天几万美元气费收入的十倍以上。

最特别的是,Polygon通过和大量区块链行业之外的品牌合作,已经成为了Web3在传统行业的形象大使。通过和星巴克奥德赛活动的承办商Forum3的紧密合作,Polygon有望能在近一年中迎来2700万几乎全新的北美区块链用户,这些增量对于行业存量来说是巨震级别的。Polygon最近还加入了迪士尼的加速器计划,融入stripe的全球支付系统,支持Reddit的表情包NFT系统,以及和Adobe, 耐克、阿迪达斯,梅赛德斯奔驰,万事达卡,可口可乐等世界知名品牌达成商业合作。

我们认为Polygon zkEVM (Hermez),可以继承整个Polygon生态在传统领域的强大竞争力,通过zkEVM L2和以太坊生态实现更完整的结合,让Web2品牌也能享受到以太坊L1带来的资产安全性溢价。我们看好游戏和社交两大赛道持续在Polygon生态中快速成长。

Scroll:

作为最年轻的以太坊zk L2解决方案,Scroll也许是和以太坊基金会走得最近的一个开发团队,汇集了最新最强大的零知证明团队之一。Scroll正以实施技术能力和迭代速度为基础,正奋力追赶其他zk-based rollups的开发进度。

Scroll在prover网络和sequencer的去中心化设计中走在前沿,特别是已经提出了使用GPU/ASIC提升算力再来分散化验证网络的解决方案。Scroll的EVM在理论上,相对于zkSync Era和Starkware有更高的代码兼容性天花板,这意味着开发者不需要再去相信新的虚拟机和编译器(例如zkSync的LLVM),也可以规避执行交易过程中借助一段中间的代码来实现EVM兼容带来的风险(Polygon zkEVM目前的方案特征)。

Scroll的团队从第一天开始,就在和以太坊核心活动深度绑定,打造自己的品牌知名度和基础设施套件,比如预言机、钱包等。虽然所有以太坊L1, 甚至L2的协议开发都在理论上可以快速部署到Scroll,我们认为Scroll最大的机会还在在于捕捉DeFi的皇冠明珠:去中心化的中央限价订单簿交易所(CLOB)。Scroll强大的性能潜力,配合以太坊主网大量流动性寻求安全高效的交易环境的急切需求,可能可以带来这类dex协议的爆发。我们另外注意到如Lens Protocol等Web3项目也开始尝试在Scroll上部署,我们期待更多类似的好消息。

 

简介: Aki Labs是Aki Network旗下的深度研究机构,致力于结合区块链行业的商业逻辑与技术理论、工程实践,向我们的社区传达最具思考价值的前瞻性声音。

详情链接

 

链捕手ChainCatcher提醒,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作, 站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。如发现站内内容含敏感信息,可点击 “举报”,我们会及时处理。
ChainCatcher 与创新者共建Web3世界