关于zkRollup硬件加速和zkPOW的思考
作者:狐科技CTO林、狐科技CEO康水月
零知识证明可以提供隐私保护、容量扩展、信任建立等关键功能,这符合Web3.0的精神所以它的应用场景大量涌现。目前,ZK';s小规模应用开发难度大,成本低,成熟应用多;ZK的中型应用已经成型,目前的技术足以满足其性能要求;对于大规模应用来说,还处于早期阶段。还有一些技术瓶颈,成为成熟产品还需要一段时间。先简单盘点一下各种应用场景:
小型应用场景
独立ZKDAPP是零知识证明最直接的应用场景。这类申请由于证明项目简单,类型少,数量少,易于开发。例如:简单隐私支付协议、ZK桥、身份解决方案等。
中型应用场景
这些应用相对来说比小型应用场景更复杂。需要证明的情况有很多,但与小型应用相比只是成倍增加,比如在数据存储网络、基于ZK的游戏等方面证明正确性。
大规模应用场景
ZKrollup的Layer2和zkEVM是零知识证明在Web3中的终极应用,用于处理VM或EVM中各种可能性引起的状态变化。相对于小型应用程序的复杂性是指数量级的增加。他们对技术和开发工作量的要求很高,距离实现理想的用户体验还有一个技术上的飞跃。
零知识证明无疑是Web3领域最具创新性的技术之一。零知识证明也为构建不可信产品提供了极好的技术手段。然而,就像人工智能刚刚从学术界走向产业界一样,在今天的各种应用场景中,仍然存在相当多的问题和挑战。幸运的是,越来越多的学术和产业力量正在投入这一领域。。下面我们将深入讨论zk技术树的不同枝叶。
高效的算法和成熟的开发栈是核心分支
一套完整的零知识算法从研究到应用需要经历理论研究、开发工具构建和具体应用开发。。其中,效率是零知识证明应用进入下一阶段的最大瓶颈之一,包括算法和开发的效率。
从算法效率上来说,不同的零知识证明用不同的方法表示待证明的电路,背景基于不同的数学难度。这些因素都会影响算法的效率。具体来说,零知识证明算法的重要效率指标包括证明大小、证明时间、验证时间等。目前大量的算法可以实现更短的验证时间,各种聚合技术也可以降低证明规模。证明时间是主要的瓶颈。
因此,项目方的设计和选择对于算法的效率性能至关重要。不同的零知识证明算法在复杂度上会有很大差异。。复杂度的差异在输入阶数较大时会充分体现在具体的性能差异上。
图1:各种零知识证明算法
预计未来会有更多的团队投入更多的研究精力在零知识证明算法上,寻找最符合项目需求特点的算法。。比如FOX等Layer2项目,坚持设计在证明时间这个关键指标上达到理论下界,线性复杂度O(C),是对数验证时间,不需要可信设置的算法。该算法非常适合支持没有容量上限的扩展网络。
在开发方面,开发效率低下的主要原因是相关开发栈的严重缺乏,而将应用场景转换成电路语言并最终放入算法证明的过程相当复杂:需要在漫长的过程中抽象出一些部分,形成模块化的开发工具或语言。,并保持彼此的兼容性。一个完整而丰富的ZK开发栈是打破游戏的关键,它允许开发者专注于自己关心的问题,共同完成一个完整的ZK应用。
?
零知识证明算法
代数电路
应用逻辑
具体应用
现有技术栈
个体算法实现仓库
表达式基于个体算法
。问题1
缺少快速实施ZKP的后端工具
?
问题2
缺乏通用的代数电路表达式,兼容性和交互性差
问题3
?
缺乏一种高效通用的方法将应用表达的运算和逻辑转换成代数电路
?
问题4
与PyTorch这样高度抽象的框架不同,AI领域的tensorflow
。理想的技术堆栈
抽象代数、计算、证明生成、验证等底层和顶层细节的基本工具。
可以包含在前后层的统一表述中
抽象零知识证明细节的主流编程语言
。高度抽象的框架
表1:零知识证明的硬件加速面临的问题
硬件加速是进一步提高零知识证明效率,使大规模应用更接近成熟的关键。。这就涉及到两个问题:一是哪些操作可以加速,二是用哪些硬件加速。
对于第一个问题,不同零知识证明的主要区别在于多项式承诺的方法。MatterLabs采用的Plonk和Scroll采用的Ultra-Plonk的多项式承诺都是基于KZG的,所以Prover涉及大量的FFT计算和ECC点乘MSM运算来生成多项式和承诺。这两种计算都会带来很大的计算负担。具体来说,MSM可以通过在多线程上运行来加速,但它需要大量的内存,即使在高度并行化的情况下仍然很慢,而FFT在算法运行时严重依赖于数据的频繁洗牌。这使得他们很难通过跨计算集群分配负载来加速。因此,目前加速这些操作意味着高成本。
另外,Starkware开发的STARK和FOX开发的FOAKS都主要涉及FRI过程中的哈希运算。。虽然也有FFT,但是量不大。因此,这两种算法可以利用硬件加速来提高运算效率。
硬件层面,主要有三种选择:GPU、FPGA和ASIC,各有不同的特点:
GPU:GPU可以通过一定的算法加速并行计算。使用GPU加速的效果取决于具体的算法。比如FOX中使用的FOAKS算法,没有大量的FFT和MSM运算。而且它的ZKEVM设计本身就包含了大量可以并行计算的部分,所以可以通过GPU实现更大的效率提升。
FPGA:FPGA是一个可编程的集成电路,所以开发者可以通过为ZK算法定制来优化矿机。
ASIC:ASIC是专门为特定用途定制的集成电路芯片。但是ASIC因为过于定制化,需要更多的时间和成本。也许硬件迭代会随着产业规模的增大逐渐向ASIC发展。,但不是一步到位。在Bitcontinent等专业硬件厂商进入这一领域后,ASIC可能会成为主流选项。
这三种硬件的不同特点也使得它们有不同的机会。短期看GPU,中期看FPGA,长期看ASIC。。以太坊改PoS后,GPU的计算能力会流向能够吸收这些计算能力的网络,没有大量FFT和MSM运算,对并行操作友好的网络会成为他们的首选。FPGA的可编程性在中期有一定优势。尤其是在算法变化快,技术路线还不稳定的时期。ASIC路线意味着更高的成本,但能带来更高的效率提升。从长远来看,大型硬件厂商必然会进入这一轨道,无疑会选择ASIC作为其主要的芯片类型。
ZKpow机制设计是锦上添花
最后,有了完备的软硬件,机制设计才是让它稳定运行和进步的最后一步。每个zkRollup项目在最初的证明者中通常更接近传统的集中式服务:部署在云中。,而这部分收益是项目方独享的。然而,在Web3的叙述下,Prover'未来的s工作必然会朝着去中心化的方向发展,而这样的发展也有如下的好处:
更多的人将能够共享证明生成的计算能力,与项目利益方共享收益。。这种激励机制会有更多本地化的计算能力,从而与项目和基金会共同构建和拓展生态系统。
好的分权机制会带动更多推动技术进步的力量,让更多各方面的专家把精力投入到研究中,提高系统的效率。让用户获得更好的体验。
去中心化机制将更好地适应需求的动态变化。
但是在证明过程的分散化方面有相当多的挑战。比如去中心化后各方应该采取什么样的共识和合作,证明过程中去中心化任务应该分配到哪一级,如何保持沟通的效率,避免可能的攻击等等。尽管如此,一些理想的可能解决方案已经在一些项目的愿景中描绘出来。例如,FOX的设计包括一个zkPOW方案,它可以实现以下目标:
通过引入随机性提高计算能力:生成零知识证明的计算与传统POW不同。在不引入随机性的情况下,计算能力最高的一方总会得到生成证明的奖励,从而导致其他方退出。垄断之后,这个计算能力提供者不再有提升计算能力的动力,失去了去中心化的初衷。
公平分配是通过引入计算收益算法来实现的:一个公平的分配方案会使每个计算提供者的预期收益在长期内与其计算能力成正比。这意味着这一方案将使zkMiner像PoW机制下一样,通过投入计算能力获得收益,很难通过非法手段获得超额激励收益。从长远来看,一个公平的计算能力收益算法也可以保证系统中计算能力提供者数量的稳定性。同时也意味着更高的抗攻击能力。
在福克斯的zkPOW设计中,在第一个证书提交后的一个时间窗口内提交证书的参与者可以获得不同比例的激励,同时,通过引入随机性,每个证明的提交内容是不同的,也就是说每一个证明都必须经过完整的证明计算才能提交。并且通过精心设计的比例分配,每个参与者的预期收益将与其计算能力成正比。,这将对所有参与者产生提高计算效率的正向激励,最终使项目的用户从中受益,享受更安全、更快捷、更便宜的zkRollup服务。