零知识密码学为计算机科学领域近50年来最显著的创新之一。Zero Knowledge Proofs(ZKPs)的独特属性,使其成为很多区块链扩容和隐私解决方案中的基本组件,如:
由于需要大量的expensive数学运算,ZKP的生成是slow和expensive的。但是,借助特殊硬件,如:
可实现10~1000倍的加速。
用户在追求expressive、性能、以及隐私计算时,ZKP中待证明的statement的复杂性也将随之增加。这将导致更慢的proof生成速度,因此,有必要使用特殊硬件以便能够及时生成proof。
硬件运营商的工作需要得到补偿,就像比特币miners一样。最终,一个完整的ZK mining和proving行业将显现出来,首先是爱好者在他们的CPU中生成证明,然后是GPU,然后是FPGA。与比特币不同的是,我们预计ASIC可能需要很长时间才能被采用。
零知识证明主要有2大用途:
上述2个用途在加密行业中以多种形式表现出来:
综上所述,可以肯定地说,随着加密货币的推广,将需要ZKP来适应用户对性能和隐私以及新型应用程序和协议的日益增长的需求。
ZKP从根本上支持 可扩展的隐私支付和智能合约平台的蓬勃发展,但阻碍其发展的是使用ZKP所带来的non-trivial开销。
受限于平台(如笔记本、Raspberry Pi,甚至以太坊)能力,某些计算昂贵或者无法在本平台上运行。此时,可由第三方服务商运行该计算,并快速、便宜地将计算结果返回(如 AWS Lambda function 或者 类似Chainlink的oracle服务)。
通常,你需要相信计算已正确执行,从而允许第三方服务商输出无效结果,从而可能产生灾难性后果。
ZKP允许第三方服务商在输出结果的同时,附加一个计算完整性的证明,使你相信所收到的结果是正确的。
若在本地运行某计算并不昂贵,但想要隐藏其中的某些部分呢?如,如果我想告诉你我知道第1000个斐波那契数,而不告诉你具体的数字,或者说服你我在没有透露金额或身份的情况下已完成了付款,该怎么办?
ZKP允许你有选择地隐藏计算statement周围的部分或所有输入。
证明某个计算,需要先将传统程序 翻译为 ZK-friendly格式的程序。翻译方法有:
昂贵、复杂的运算越多,意味着生成proof的时间更差。某些运算并不是ZK友好的(如SHA或Keccak中的bitwise运算),从而使得这些在传统电脑中cheap运算,生成相应proof的时间确很长。
一旦计算是ZK友好的,可选择某些输入发送到proof system。当前有很多类型的proof system:
这些proof system的一个共同点在于都是以ZK友好的形式表达的,根据输入,可输出a proof。
不同的proof system,生成proof的流程可能会不同,但是,基本的瓶颈无非是二者之一:
在某些既有FFT又有MSM的proof system中,生成proof所需时长的约70%用于计算MSM,剩下的大部分则用于计算FFT.
尽管MSM和FFT都很慢,但是仍有一些办法可改进其性能:
简而言之:
我们在解决大型MSM和FFT的缓慢性方面看到的最有希望的工作是PipeZK。在其2021年论文PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture中,作者描述了一种使用Pippenger算法跳过重复计算的方法,使得MSM计算更便宜。同时,在PipeZK论文中,描述了一种“unroll” FFT的算法,使得可大幅减少shuffling的数量,由于采用了now-predictable内存访问模式,大幅改进了硬件上的运行速度。
假设以上方法解决了MSM和FFT算法的核心瓶颈问题,那么接下来的问题是:
使用高度优化的MSM和FFT算法来加速ZKP生成的最佳闪存硬件是什么?
以上加速技术可在多种硬件上实现:
但是哪种硬件是最优选择呢?
当前ZKP仍处于早期发展阶段,对系统参数的标准化工作仍然很少(如FFT的width 或 element的bit-size),对proof system的选型也无相关标准。
基于以上因素,对于ZKP场景,FPGA有2个核心属性,使得其更优于ASIC:
我们还预计FPGA的性能将优于GPU,原因与它们在机器学习和计算机视觉领域蓬勃发展的原因类似:
基于以上原因,我们认为市场上未来的赢家将是:FPGA > ASIC(或GPU)。若未来仅有一个或少量ZK L1或L2方案占据了主导规模,ZK proof system将稳定围绕在某单一实现,则可能ASIC将超过FPGA。但是目前来看,数年内不会有该情况发生。
2021,比特币矿商的收入超过150亿美元,以太坊矿商的收入刚刚超过170亿美元。零知识证明最终成为网络上计算完整性和隐私的事实媒介,这似乎是合理的。在这种情况下,ZK miners/provers 的机会可能与工作量证明采矿市场的规模相似。
ZKP速度较慢,需要硬件加速才能实现复杂计算。我们认为,对ZK硬件加速最重要的技术是FPGA,而不是GPU(受限于成本和能效)或ASIC(受限于其不灵活和迭代周期长)。