对话Scroll张烨:硬核解读zkEVM与Scroll及其未来

访谈者:Nickqiao & Faust,极客Web3

受访者:YeZhang,Scroll联创

编辑:Faust & Jomosis

6月17日,极客Web3和BTCEden在Scroll的DevRel——Vincent Jin的帮助下,有幸邀请到了Scroll的联创张烨,来解答关於Scroll和zkEVM的诸多问题。

期间双方不仅谈到了许多技术话题,还谈到了Scroll的一些趣事,以及其赋能亚非拉实体经济的宏大愿景。本文为本次访谈的文字版记录,超过1万字,共包含至少15个主题:

除此之外,张烨老师在最後谈到了Scroll将紮根在非洲、土耳其、东南亚等金融系统落後地区,打算为该地区人民创造实体经济场景以「脱虚入实」的宏大愿景。本文可能是让更多人更理解Scroll的绝佳资料之一,推荐大家仔细阅读。

1.Faust: 请问张烨老师对於ZK在Rollup之外的应用怎麽看?不少人习以为常认为,ZK的主要用处在混币器、隐私转帐或ZK Rollup和ZK桥这些地方,但在Web3之外,例如传统产业里对ZK的应用还是很多的。您觉得未来ZK最有可能在哪些方向上被采用?

YeZhang :这是个好问题,传统产业里做ZK的人,在五、六年前就在探索ZK的各种场景,区块链中用到ZK的场景其实非常小,这也是为什麽Vitalik觉得十年後,ZK的场景会和blockchain一样大。

我觉得在那些需要信任假设的场景中,ZK会有很多用途。假设你现在需要处理一些繁重的计算任务,如果你在AWS上租伺服器,运行自己的任务并得到结果,相当於你在自己控制的设备上做计算,然後你要支付租伺服器的钱,但这笔钱往往不便宜;

但如果我们搞运算外包的模式,很多人可以用自己闲置的设备或资源分担你的运算任务,你付出的成本可能比自己租伺服器便宜。但这里有信任问题,你不知道别人回传给你的计算结果是否正确。现在假设你在做一个很麻烦的计算,然後你把计算交给我来做,再给我钱。我过了半小时後随便交给你一个结果,你也没有办法相信这个结果是有效的,因为我可以随便编个结果。

但如果我能向你证明,交付的这个计算结果是对的,那你就可以放心了,并且也敢把更多计算任务外包给我来做。 ZK可以把很多不可信的资料来源变成可信的,这个功能非常强,透过ZK,你可以把不可信但很便宜的第三方运算资源更有效率的运用起来。

我觉得这个场景非常有意义,可以催生类似外包计算的商业模式。在一些学术文献里,称之为可信计算(verifiable computation),就是把一个计算变得值得信任。除此之外,ZK可以应用在资料库领域,假设在本地运行资料库太贵了,你决定走外包的路子,刚好一个人有富余的资料库资源,然後你把资料储存在他那边。你会担心对方更改你托管在他那的数据,或者说你一个SQL query後得到的结果对不对?

对此,你可以让对方产生一个proof,如果这件事能做到,你可以把资料储存也外包出去,并且得到一个trustworthy的结果。这和前面的可信计算彼此都是一大类应用场景。

另外还有很多应用实例,我记得有篇论文讲了Verifiable ASIC,在生产晶片的时候,可以把ZK演算法写到你的晶片上,当你用晶片运行程式的时候,产生的结果预设会带一个Proof。这样一来我觉得很多东西都能代理给任何一台设备,产生可信的结果。

还有一个有点扯的东西,叫Photo Proof照片证明。比如说很多图片,你不知道是不是P过的,但我们可以透过ZK去证明照片没有被篡改过,比如可以在相机软体中加一些设置,自动生成一些数字签名,你拍完照片後,这个签名相当於照片盖了章。如果有人把你拍的照片拿去PS,搞“二次创作”,我们验证下签名就能识别出图片是被改动过的。

这里面我们可以引入ZK,当你对原图进行了些许改动後,你可以用ZK Proof向别人证明自己只是对照片做了旋转、平移等简单操作,并​​没有篡改照片的原始内容,证明自己微调後的图片和原版图片基本上一样,也就是证明自己没有窜改图片的核心内容搞「二次创作」。

这个场景还可以拓展到视讯音讯上,透过ZK,你不必告诉对方自己对原版影片做了哪些改动,但可以证明自己没有篡改原版的核心内容,证明自己只做了一些无伤大雅的调整。另外还有很多有趣的应用,都是ZK能插脚的。

目前,我觉得ZK的应用场景还没有被广泛接纳的原因,在於其成本太高,现有的ZK证明生成方案,还不能做到对任意计算都实时生成证明,因为ZK的开销一般是原始计算的100倍到1000倍,当然我说的数字已经是压的比较低的了。

所以你想像一下,一个计算任务本来要算1小时,你现在给它生成个ZK Proof,Overhead可能是100倍,也就是要花100个小时来产生证明,虽然你可以用GPU或ASIC把这个耗时给缩短,但还是要付出巨大的计算开销,如果你要求我算一个很麻烦的东西,还要求我为此生成ZK Proof,我可以拒绝这麽做,因为这要额外耗费100倍的计算资源,最後落实到经济帐上就很不划算。所以对於一对一的场景来说,产生一次性的ZK证明很昂贵。

不过,这也是为什麽对Blockchain来说,非常适合用ZK,原因是区块链做的是冗余计算,有很多1对多的场景。区块链网路中不同节点做的是相同的运算任务,如果有1万个节点,那麽相同的任务就会执行1万次。但如果你在链下完成任务,生成ZK证明,1万个节点只验证ZK证明而不重跑任务,就不必再把原始计算重播1万遍了,相当於你用自己1个人的计算成本,和1万台节点搞冗余运算的成本做了置换,从整体的角度来看,可以让更多人节省资源。

所以,其实链越去中心化越适合搭配ZK,因为任何人都能近乎零成本的验证ZKP,我们只要在初始生成证明的时候付出一定成本,就可以换来对大多数人的解放,这就是为什麽区块链的公开可验证性非常适合ZK,因为区块链里有许多1对多的场景。

还有一个上面没提到的点。现在区块链领域用到的Overhead比较大的这种ZK证明,都是非互动式的,就是你给我一个东西,我给你证明,然後就结束,因为在区块链中,你不可能反复的去跟链上互动。但有一种更有效率、开销更低的证明产生方式,也就是互动式证明。比如说,你给我发一个Challenge,我给你发一个东西,你再给我发一个东西,我再给你发一个,通过这种双方多次交互的方式,有可能把ZK的计算量级再降低下来。如果这种方式可以,就有可能解决大型的ZK应用场景的证明产生问题。

Nickqiao:如何看待zkML,也就是ZK和机器学习结合的发展前景?

YeZhang :zkML也是一个很有趣的方向,能把Machine Learning给ZK化,但我觉得这方面还是缺乏杀手级的应用场景。大家普遍认为随着ZK系统的效能提升,未来能够支援ML这个等级的应用,目前zkML的效率能够支援gpt2这种等级的应用,在技术上能做到,但只能做ML中的推理。归根究底,我觉得大家还是在摸索这块的应用场景,也就是到底什麽样的东西才需要你证明其推理过程是对的,这个事情是挺刁钻的。

2.Nickqiao: 想请教下张烨老师,zkEVM和zkVM在工程实现难度上的差异具体有多大?

YeZhang :首先,无论是zkEVM还是zkVM,本质都是为某个虚拟机的操作码/指令集产生定制的ZK电路,而zkEVM的工程落地难度取决於你实现它的方式,在我们刚启动专案时,因为ZK的效率还没那麽高,透过为EVM的每个操作码都写一个对应的电路,然後把电路组合起来,定制一个zkEVM是最高效的方式。

但这种方案的工程实现难度肯定很大,比zkVM大很多,毕竟EVM的指令集有超过100个操作码,每个操作码都要定制一套东西,然後组合起来,一旦有EIP为EVM增添新的操作码,例如EIP-4844,zkEVM都要相应的加新东西。最後你要写很长的电路并进行漫长的审计工作,所以开发难度和工作量要比zkVM大很多很多。

反之,zkVM是自己定义了一套指令集/操作码,它自订的指令集可以做的很简单,可以很ZK friendly,你做出来一套zkVM後,不必频繁的更改底层程式码,就能支持各种升级和预编译。所以zkVM的主要工作量和後续升级维护的难度,就放在了编译器也就是把智能合约转换为zkVM操作码的那一步,这和zkEVM有很大不同。

所以,从工程难度来看,我觉得zkVM要比客制化的zkEVM更容易实现,但是如果要在zkVM上跑EVM的话,整体性能比定制化的zkEVM低很多,因为後者是专门定制的。但目前,Prover生成证明的效率在过去两年间有了至少3~5倍甚至5~10倍的飞跃,zkVM的效率在随之提升,现在用zkVM去跑EVM,整体效率已经慢慢提上来了,未来zkVM在性能上的劣势可能被它易於开发维护的优势给掩盖住。毕竟对於zkVM和zkEVM而言,除去性能外的最大瓶颈就在开发难度上,必须要有一个非常强大的工程团队,才能维护好这样一套复杂的系统。

3.Nickqiao: 能否讲一下Scroll在zkEVM落地的过程中,是否遇到一些技术难题,又是怎麽解决的?

YeZhang :一路走来的话,最大的挑战还是在於,最初启动专案时的不确定性太大。我们刚启动专案时,基本没有其他人做zkEVM,我们是最早探索zkEVM从不可能变成可能的团队。在理论层面,专案刚开始的6个月就基本上确定了一套可行的框架,而在後续实现的过程中,zkEVM的工程量非常大,还有一些非常技术性的挑战,比如说你怎麽动态的支援不同的Pre-Compile(预先编译),怎麽去更有效率地聚合操作码(opcode),这牵涉到很多工程上的难题。

而且我们是唯一一个,也是最早支援EC Pairing椭圆曲线配对这个Pre-Compile的,像Pairing这种电路实现起来难度非常大,涉及到很多数学等错综复杂的难题,对写电路的人的密码学/数学功底,以及工程能力要求都很高。

然後在後制发展上,还要考虑技术堆叠的长期可维护性,以及要在什麽样的时间节点,升级到下一代的zkEVM 2.0。我们有一个专门的研究团队,一直在研究这类方案,例如透过zkVM的方式来支持EVM,我们也有相关的论文去做这方面的一些讨论。

总结下来,我觉得之前的困难在於把zkEVM从不可能变成可能,面临的难题主要在工程落地和优化上。而下一阶段,更大的困难是在什麽时候、透过什麽样的具体方式,切换到一个更有效率的ZK证明系统,以及我们怎麽把目前的这套程式库过渡到下一代zkEVM身上,以及下一代的zkEVM可以提供我们什麽样的新Feature,这里面有大的探索空间。

4.Nickqiao: 听起来Scroll已经考虑切换到别的ZK证明系统上了。据我了解,目前Scroll用的是基於PLONK+Lookup的一套演算法,那麽这套演算法在目前是否是最适合实现zkEVM的,以及未来Scroll打算换用什麽证明系统?

YeZhang : 首先我来简单回答下关於PLONK和Lookup的问题,目前这套还是最适合实作zkEVM或zkVM的系统,大部分的实作跟具体的PLONK和Lookup是绑定的。一般提到PLONK时,其实更多是用PLONK的arithmetization,也就是电路的算术化表达方式去写zkVM的电路。

Lookup是写电路时用到的一种方式,一种约束类型。所以当我们提到PLONK + Lookup,指的是写zkEVM或zkVM电路时,使用PLONK的约束格式,这种方式目前是最常见的。

而在後端方面,PLONK和STARK的界线已经变得模糊,它们只是用了不同的多项式承诺方式,但其实很类似。即使采用STARK + Lookup的组合,跟PLONK + Lookup也是类似的,大家看的只是演算法,两者的差别主要体现在Prover的效率、证明大小等方面。当然,就前端而言,Plonk + Lookup来实现zkEVM还是最适合的。

关於第二个问题,就是Scroll未来打算切换到什麽证明系统。因为Scroll的目的是永远让自己的技术和链的框架保持在zk领域里最顶尖的位置,所以我们肯定会用最新的一些技术。我们一直以安全性、稳定性作为最优先的目标,所以不会过於激进地切换自己的ZK证明系统,可能先透过一些Multi Prover做过渡,一步一步的摸索递进,来完成下一版的升级迭代。 Anyway,要保证说这是一个平稳的过渡流程。

但就现在来说,切换到新的证明系统还很早,这其实是下一阶段例如未来6个月到1年的发展方向。

5.Nickqiao: Scroll在目前基於PLONK和Lookup的证明系统上,有没有一些独特的创新?

YeZhang : 目前在Scroll主网上运行的是halo2,halo2最早源於Zcash这个专案团队,他们最早做了一个能支援Lookup,支援灵活地写电路格式的一套後端系统。然後,我们和以太坊的PSE小组一起改造了halo2,把它采用的多项式承诺方案从IPA换到了KZG,把Proof Size变小了,从而能在以太坊上更有效率的验证ZK Proof。

然後我们在GPU硬体加速上做了很多工作,跟着CPU生成ZKP来比较的话,能让ZKP生成速度快5~10倍。整体来说,我们把原版halo2的多项式承诺方案替换成了更易於被验证的版本,并做了很多关於Prover的优化,在工程化落地上下了不少功夫。

6.Nickqiao: 所以Scroll现在是和以太坊PSE团队共同维护KZG版本的halo2。您能否跟我们讲一下,你们是怎样和PSE团队合作的?

YeZhang :Scroll在启动专案前,我们本来就认识一些PSE团队的工程师,我们就有和他们聊,说自己想做zkEVM,我们估计了一下这个效率是ok的。刚好在同一个时间节点,他们也想做同样的事,然後大家一拍即合。

所以,我们是从以太坊社区,从Ethereum Research那边认识了一起想做zkEVM的人,大家都想把zkEVM产品化落地,都有为以太坊服务的想法,所以很自然地开始了开源合作的模式。这种合作方式更像开源社区,而不是商业化的公司,比如我们每周都会通一次电话,同步一下进度,讨论遇到了哪些问题。

我们以这种方式去开源地维护了这套程式码,从改进halo2到实作zkEVM,这中间有很多探索的过程,我们互相会帮忙Review程式码。你从Github的程式码贡献量能看出来,PSE他们写了一半,Scroll这边写了一半,後续我们完成了程式码的审计,并实现了一版真正产品化落地并在主网上运行着的程式码。总结下来,我们和以太坊PSE的合作模式,更像是开源社群的路径,是自发性的形式。

7.Nickqiao: 您刚才提到,要编写zkEVM的电路,对数学和密码学的要求非常高,既然如此,能摸清楚zkEVM的人估计很少。那麽Scroll怎麽保证电路编写的正确性以及少出bug?

YeZhang :因为我们是开源的程式码,基本上每一个PR都会有我们的人和以太坊的一些人,以及一些社群成员去Review,有比较严格的审计过程。同时我们在电路审计方面也花了很多钱,超过100万美元,找了这个行业里最专业的密码学和电路审计机构,比如Trail of Bits,Zellic等。我们链上智能合约的部分也找了openzepplin来审计,基本上所有和安全相关的东西都动用了最高档的审计资源。我们内部还有专门的安全团队去做测试,持续提升Scroll的安全性。

Nickqiao: 除了这种审计方式,有没有形式化验证等在数学上比较严谨的方式?

YeZhang :我们其实很早就看过就Formal Verification(形式化验证)这个方向,包括以太坊最近也在思考,怎麽给zkEVM做形式化验证,这其实是一个很好的方向。但就目前来说,要给zkEVM做完整的形式化验证还比较早,只能从一些小的模组开始摸索,因为Formal Verification运行是有成本的,例如你要给一套程式码去运行Formal Verification,你要先写一个spec,但写spec并不容易,这套东西要完善需要很久。

所以我觉得目前还没有到给zkEVM做完整的形式化验证的阶段,但我们会持续的跟以太坊在内的外部合作者去积极探索怎麽做zkEVM的形式化证明。

目前来说,最好的方式其实还是人工审计,因为你就算有了spec,有了Formal Verification,如果spec写错了,那你还是会出问题。所以我觉得,目前最好还是先通过人工审计,然後透过开源和漏洞悬赏的方式,确保目前Scroll程式码的稳定性。

但是,在下一代zkEVM中,关於怎麽做形式验证,怎麽去设计一个更好的zkEVM进而更容易的写出来spec,透过形式化验证的方式去证明它的安全性,是以太坊的终极目标。是说,当一个zkEVM被形式化验证以後,他们就可以彻底放心地将其实施到以太坊主网上。

8.Nickqiao: 关於Scroll采用的halo2,如果要支援STARK等新的证明系统,开发成本会不会很大。能否实现一个插件化的体系,同时支援多个证明系统?

YeZhang : halo2是一个非常模组化的ZK证明系统,你可以替换它的域、多项式承诺等,只要把它用的多项式承诺从KZG换成FRI,基本就可以实现一个halo2版本的STARK,这个事也确实有人做了,所以halo2要支援STARK,这种相容是完全ok的。

然後在实际落地中会发现,如果你要追求极致效率的话,越模组化的框架越可能导致一些效率问题,因为你为了模组化牺牲了定制化的程度,会有付出一些代价。我们持续专注在一个问题,就是未来的发展方向该是模组化的框架,还是非常客制化的框架,尤其像我们有足够强的ZK开发团队,可以维护一个独立的证明体系,然後让zkEVM 变得更有效率。当然上述问题需要做出一些权衡,但就halo2而言,它可以支持FRI。

9.Nickqiao: 目前Scroll在ZK方面主要的迭代方向是什麽?是优化目前的演算法、增加一些新的feature之类的?

YeZhang :我们的工程团队核心在做的事情,还是要把目前的Prover效能再提升一倍,然後EVM相容性也要做到最好。在下一版升级中,我们会继续保持自己在ZK Rollup里最EVM相容的这样一个位置,现在其他所有的zkEVM应该都没有我们的相容性好。

所以这是Scroll工程团队一方面在做的,就是继续优化Prover和Compatibility,并且要降低费用。我们现在已经投入了很多人力,去研究下一代zkEVM,大概投入了一半的工程力量,以实现分钟级甚至秒级的ZK证明生成,让Prover的效率变得高起来。

同时,我们在探索新的zkEVM执行层,我们的节点之前用的是go-ethereum,但现在有效能更好的Rust版本以太坊客户端Reth。所以我们在研究,怎麽把下一代zkEVM跟Reth客户端更好结合,把整个链的效能给提升上来。我们会考察zkEVM如果围绕着新的执行层,该用什麽样的实现方式和过渡形式最好。

10.Nickqiao: 那麽像Scroll在考虑支持的多样化证明系统,有没有必要在链上实现多个Verifier合约呢?例如做交叉验证

YeZhang :我觉得这是两个问题,首先就是说,有没有必要去做模组化的证明系统和多样化的Prover,我觉得这麽做是有意义的,因为我们从始至终,就是开源专案。你把开源出去的这套框架做的越通用化,会吸引来越多人帮你造轮子,你的社区也会因此壮大,後面在项目开发或者工具使用上,可以自然而然的引用外部力量。所以我觉得,如果能做一个不光给Scroll自己使用,还能给其他人用的ZK证明框架很有意义。

然後第二个事情,就是在主网上做交叉验证这个事,这其实和证明系统本身是否是多样化的,是否支持STARK或PLONK是正交的话题。一般很少有专案把同样的zkEVM用PLONK验证一遍,再用STARK验证一遍,这是很少的,因为这麽做对安全性的提升不大,反而会让Prover付出更高成本,所以一般不会出现这种交叉验证的情况。

我们其实在做一个东西叫Multi Prover,可以有两套Prover一起证明相同的一个Block,但是会在链下把两个Proof聚合到一起再放到链上去验证。所以,并不会在链上做STARK和SNARK之间的交叉验证。我们的多Prover方案,是为了确保在其中一套Prover的程式码出问题时,另一套程式码可以兜底,一套系统出了bug另一套能照常运行,所以这和交叉验证是另一个话题。

11.Nickqiao: Scroll的Multi Prover,每个Prover执行的证明程式会有什麽不同?

YeZhang :首先,假设我有一个正常的、用halo2写的一套zkEVM,有一个正常的Prover生成ZKP再去链上做验证,但这里有个问题,zkEVM很复杂,有可能出现bug。如果出现bug,例如被骇客或专案方拿去利用这个bug产生一个Proof,最後能把大家的钱提走,这一定是不好的。

Multi Prover的核心思想,其实是Vitalik最初在Bogota活动上第一次提出的。意思是说,如果一个zkEVM可能出现bug,那你可以同时跑不同种类的Prover,比如说可以用TEE的基於SGX的Prover(Scroll目前用了这套),或是基於OP,或用zkVM运行EVM的方式去跑一个Prover。 Anyway,这些Prover要同时去证明一个L2 Block的有效性。

假设有3个不同类型的Prover,当且仅当它们产生的3个不同Proof都通过验证,或者说3个Proof中至少2个通过验证时,你才能在以太坊链上敲定Layer2的最终状态。 Multi Prover可以保证在一个Prover出问题时,其他两个Prover 能够顶替,最後整个Prover系统的稳定性会很好,使ZK Rollup的安全性得到提升。当然这也会引入其他缺点,例如Prover的整体运作成本会提高,我们有一篇专门的Blog介绍了这些概念。

12.Nickqiao: 那现在关於Scroll的ZK证明生成这块,其证明生成网络(ZK矿池)是怎麽建设的,是自建的,还是会把一些计算外包给如Cysic的第三方?

YeZhang :就我们目前来说,整个设计其实很容易,我们想让更多的GPU持有者或矿工参与进我们的这个证明网络(ZK矿池)里,但目前来说,Scroll的Prover Market还是我们自己经营的,我们会和第三方的一些有GPU丛集的人合作,他们去运行Prover,但这是为了主网的稳定性,因为你的Prover一旦去中心化後,会有很多问题。

比如说,你的激励机制设计不好的话,如果没有人给你产生Proof,网路就会在效能上受到影响。前期我们选择了相对中心化的方式,但是整个介面和框架的设计,非常容易切换到去中心化的模式。人们完全可以用我们的技术框架做一个去中心化的Prover网络,再加一些激励就行了。

但目前来说,为了Scroll的稳定性,我们的Prover生成网路还是中心化的,未来我们会更大范围的把Prover网路给去中心化,每个人都可以去运行自己的Prover节点,包括我们也在跟诸如Cysic,Snarkify network等等第三方平台合作,看看如果有人想透过我们的技术栈去启动自己的Layer2,可以去接到第三方的Prover Market里去直接调用对方的Prover服务。

13.Nickqiao: Scroll在ZK硬体加速方面有没有什麽投入或产出成果?

YeZhang :这其实就是我之前提到的,Scroll最初做的两大方向,第一个就是把zkEVM从不可能变成可能,第二个就是我们为什麽能把它从不可能变成可能,是因为ZK硬体加速的效率提升了。

我其实在做Scroll 之前的3年,就开始做ZK硬体加速的工作,我们也有关於ASIC或是GPU硬体加速的论文。我们对zk硬体这块非常了解,无论从晶片还是从GPU,无论是从学术还是从实践上,都有非常强的Credibility。

但Scroll自己会专注於GPU方面的硬体加速,因为我们没有专门做FPGA或是做硬体的资源,也没有流片的专门经验。所以我们会选择跟Cysic这类硬体公司合作,他们去专门做硬体这块,我们就专注在GPU加速这样一个偏软体的领域。我们自己的团队会GPU硬体加速做最佳化,然後将成果开源,外部的合作夥伴可以去做专门的如ASIC等晶片,我们也会经常的讨论交流一下彼此遇到的问题。

14.Nickqiao: 您刚才提到,Scroll未来会切换到其他的证明系统。那像是一些新的证明系统,比如说Nova或其他的一些演算法,您能不能给我们科普一下?他们有什麽优点?

YeZhang :对。我们目前正在内部探索的一种方向,是使用更小的域,能跟我们目前的这些证明系统结合,比如说像PLONKy3这样的一些库,它可以很快的实现小域上的一些运算。这是一个Option,怎麽能从我们原来的大域切换到小域,这是一种。

我们内部也在看一些方向,例如一个叫GKR的证明系统,它产生证明的耗时是线性等级的,在复杂度上面比其他的Prover要低很多,但目前没有特别成熟的工程落地方式。这块要做的话,要投入更多的人力物力。

但GKR的好处是,在处理重复计算时效率很高,比如说一个签章计算了1000 次,GKR可以很有效率的给这样的东西产生证明。 ZK桥Polyhedra就是用GKR去证明签章的,效率很高。然後,EVM有很多重复的计算步骤,可以透过GKR更好的把生成ZK证明的成本降低下来。

然後还有一些好处,就是说GKR这套证明系统,它需要的计算量确实比其他系统小很多。比方说,你透过像PLONK或STARK这样的方式,去证明一个keccak哈希函数的计算流程,你需要把中间所有的变数、keccak整个计算过程中产生的所有东西,全部Commit一遍、全部算一遍。

但GKR的话,你只需要Commit它很短的输入那一层,它可以把中间的这些参数全部透过传递关系给表示出来,不需要你去Commit中间的这些变量,会让计算成本降低很多。 GKR背後的这个sum check协议,也被Jolt或Lookup argument或比较火的一些新框架所采用,所以这个方向是比较有潜力的,我们也在认真研究这个方向。

最後就是你提到的Nova。感觉Nova在几个月前大火了一阵,因为Nova也比较适合处理这种重复计算,例如你本来要证明100个任务,对此的overhead是100。但Nova的做法是,我可以把这100待证明的任务一个叠一个,一个叠一个,每两个随机进行线性组合,最後组合出来一个最终要证明的东西,然後只要证明最终这个任务,就可以证明前面那100个任务都有效,这样的话可以把原本100的证明overhead大幅压缩。

然後,後续的一些Hyper Nova之类的工作,可以把Nova扩展到除了R1CS以外的一些证明系统,一些其他的写电路的格式,可以支援lookup或是别的东西,这样才能让一个VM更好的被Nova这类ZK证明系统给证明。但目前来说,Nova和GKR的产品化完善程度不够,目前市面上没有很好的关於Nova的高效的库。

并且因为Nova是这种折叠的方式,它的设计想法和其他的证明系统不太一样。我觉得它还很不成熟,只是一个比较有潜力的替代方案。但目前来看,从Production Ready的角度来说,还是最常见的那几套ZK证明系统更早被投入市场,但长期来看说不好说哪个最好。

15.Faust: 最後想聊聊价值观的问题。记得您去年说去了一趟非洲後,觉得区块链最有可能在非洲这种经济落後的地方被大规模采用,可以谈谈这方面的想法麽?

YeZhang :我其实一直有个非常强烈的信念,就是区块链在经济落後的国家真的有应用空间。其实你现在看到,区块链这个产业里各种Scam比较多,让很多人对产业的信心都动摇了,就是为什麽要在一个没有实际价值的产业工作,区块链这个东西到底有没有用。除了炒币或说赌博行为外,有没有一些更实际的应用场景?

我觉得去一些经济落後的地方,尤其像非洲,你更能感受到区块链的潜力。因为在中国或西方国家生活的人,其货币体系、金融体系非常健全,例如中国人民用微信和支付宝就很开心,人民币也相对稳定,你没有必要透过区块链的方式去做支付。

但在像非洲这样的地方,他们真的对区块链和链上稳定币有需求,因为他们的货币通膨真的非常严重,举个例子,某些非洲国家的通膨率每半年就能达到20%,这样的话每次隔半年买菜,价格就要提升20%,如果是一年就可能提升更多。这样的话它们的货币是一直在严重贬值的,资产也在贬值,所以很多人都希望拿美元拿稳定币或是拿其他发达国家的稳定的货币。

但非洲人很难去申请已开发国家的银行帐户,稳定币对他们来说是一种刚需,就即使没有区块链,他们也想拿着美元这类东西。显然,对非洲人来说,持有美元最好的方式就是拿稳定币,他们每次一发工资,就可以去币安把这个钱赶紧换成USDT、USDC,需要用钱的时候再把它取出来,这样的话会导致他们有对区块链的真实需求和实际应用。

其实你去了非洲後,会明显感到像币安很早就在非洲布局了,做的非常的紮实,在那里很多非洲人真的对稳定币有依赖,就是大家宁可信任交易所,都不一定信任自己本国的货币体系,因为很多非洲人在本地可能都申请不了贷款。假设你要藉100块钱,银行会开出各种手续和条件,最後你可能搞不到贷款,但在交易所或者其他的一些链上平台,对此要灵活的多,所以我觉得在非洲,人们对区块链有更多更实际的应用和需求。

当然,我说的这些大多数人并不太了解,因为大多数用Twitter的人不关心这个,或者也不会在Twitter上看得到这些。像非洲这样比较落後的地区有很多,包括在币安的用户量比较多的一些国家,如土耳其、一些东南亚国家、阿根廷,你会发现这些地区的人用交易所的次数非常多。所以我觉得,在这些地方,币安的案例已经证明了人们对区块链有非常强烈的需求。

所以我觉得这些地区的市场和社区是真的很有必要去做的,包括我们也有专门在土耳其的团队,我们在土耳其有一个非常大的社区,然後我们要去慢慢的在前面提到的非洲、东南亚、阿根廷等国家去过渡。而且我觉得,在所有的Layer2里面,Scroll最有可能成功的在上述国家紮根,因为我们的团队文化就相当多元,虽然三个创始人是华人,但我们整个team大概包含至少二三十个国家的人,虽然我们总共也就七、八十人,每个地区基本上都有至少两三个人,所以整体文化很多元。相较之下,你能想到的其他Layer2,基本上都是西方人为主,像OP、Base和Arbitrum就是完全西方化的。

综上,我们希望能在非洲这种经济落後、对区块链有实际刚需的地方,给这些地方的人做一套真的有实际应用场景的基础设施,有点像「农村包围城市」的感觉,去慢慢地把Mass Adoption给做起来。所以我觉得,我在非洲之行中的感触还是很深的,但目前来说,Scroll对於某些人而言使用成本还是有些贵,所以还是挺希望能进一步地把成本降低,比如说十倍或者更多,然後透过一些其他的方式,把用户带到区块链里。

其实还有一个前面没提到的、可能有些不恰当的例子,就是波场Tron。大家对它可能有一些不好的印象,但确实很多经济落後的国家的人都在用它,因为HTX之前的交易所策略和很多其他的营销策略,慢慢的让波场真的有自己的网路效应。我觉得,如果以太坊生态里面能有一条链,能把这些用户带到以太坊生态里,就是一个非常大的成就,而且也是在给这个行业做一些非常积极的事情,我觉得这是很有意义的。

现在很多以太坊二层在卷TVL数据,卷来卷去,你是6亿美金,我们可能7亿美金,它是10亿美金,但我觉得相比於这些东西,更震撼的消息是,泰达突然说我在这个二层或哪条链上又增发了10亿枚USDT,或者说发行了多少多少钱的稳定币。一条链如果自然增长到了这样一个程度,不需要透过空投预期来捕获用户需求,那个时候才算是比较成功的状态,至少是我比较满意的一个状态,就是能让用户的真实需求大到一定程度,使得越来越多的人真的在日常使用你这条链。

最後我其实想插个题外话,接下来Scroll生态会有很多活动,希望大家多关注一下我们的後续进展,多参与一下我们的defi生态。

Leave a Reply

Your email address will not be published. Required fields are marked *