IOSG Weekly Brief |零知识证明 - FPGA vs GPU

互联网 阅读 442 2023-06-05 22:16:00

零知识证明技术应用越来越广,隐私证明,计算证明,共识证明等等。在寻找更多更好的应用场景的同时,很多人逐步发现零知识证明证明性能是个瓶颈。Trapdoor Tech 团队从 2019 年开始深入研究零知识证明技术,并一直探索高效的零知识证明加速方案。GPU 或者 FPGA 是目前市面上比较常见的加速平台。本文从 MSM 的计算入手,分析 FPGA 和 GPU加速零知识证明计算的优缺点。

TL;DR

ZKP是拥有未来广泛前景的技术。越来越多的应用开始采用零知识证明技术。但ZKP算法比较多,各种项目使用不同的ZKP算法。同时,ZKP证明的计算性能比较差。本文详细分析了MSM算法,椭圆曲线点加算法,蒙哥马利乘法算法等等,并对比了GPU和FPGA在BLS12_381曲线点加的性能差别。总的来说,在ZKP证明计算方面,短期GPU优势比较明显,Throughput高,性价比高,具有可编程性等等。FPGA相对来说,功耗有一定的优势。长期看,有可能出现适合ZKP计算的FPGA芯片,也可能为ZKP定制的ASIC芯片。

ZKP 算法复杂

ZKP是个零知识证明技术的统称(Zero Knowledge Proof)。主要由两种分类:zk-SNARK以及zk-STARK。zk-SNARK目前常见的算法是Groth16,PLONK,PLOOKUP,Marlin和Halo/Halo2。zk-SNARK算法的迭代主要是沿着两条方向:1/是否需要trusted setup 2/电路结构的性能。zk-STARK算法的优势是毋需trusted setup,但是验证计算量是对数线性的。

就zk-SNARK/zk-STARK算法的应用来看,不同项目使用的零知识证明算法相对分散。zk-SNARK算法应用中,因为PLONK/Halo2算法是universal(无需trusted setup),应用可能越来越多。

PLONK 证明计算量

以PLONK算法为例,剖析一下PLONK证明的计算量。

算法

PLONK证明部分的计算量由四部分组成:

1/ MSM - Multiple Scalar Multiplication。MSM经常用来计算多项式承诺。

2/ NTT计算 - 多项式在点值和系数表示之间变换。

3/ Polynomial计算 - 多项式加减乘除。多项式求值(Evaluation)等等。

4/ Circuit Synthesize - 电路综合。这部分的计算和电路的规模/复杂度有关。

Circuit Synthesize部分的计算量一般来说判断和循环逻辑比较多,并行度比较低,更适合CPU计算。通常来讲,零知识证明加速一般指的是前三部分的计算加速。其中,MSM的计算量相对来说最大,NTT次之。

What's MSM

MSM(Multiple Scalar Multiplication)指的是给定一系列的椭圆曲线上的点和标量,计算出这些点加的结果对应的点。

比如说,给定一个椭圆曲线上的一系列的点:

Given a fixed set of Elliptic curve points from one specified curve:

[G_1, G_2, G_3, ..., G_n]

以及随机的系数:

and a randomly sampled finite field elements from specified scalar field:

[s_1, s_2, s_3, ..., s_n]

MSM is the calculation to get the Elliptic curve point Q:

Q = \sum_{i=1}^{n}s_i*G_i

行业普遍采用Pippenger算法对MSM计算进行优化。深入看看Pippenger算法的过程的示意图:

算法

Pippenger算法的计算过程分成两步:

1/ Scalar切分为Windows。如果Scalar是256bits,并且一个Window是8bits,则所有的Scalar切分为256/8=32个Window。每一层的Window,采用一个“Buckets”临时存放中间结果。GW_x就是一层上的累加结果的点。计算GW_x也比较简单,依次遍历一层中的每个Scalar,根据Scalar这层的值作为Index,将对应的 G_x加到相应的Buckets的位上。其实原理也比较简单,如果两个点加的系数相同,则先将两个点相加后再做一次Scalar加,而不需要两个点做两次Scalar加后再累加。

2/ 每个Window计算出来的点,再通过double-add的方式进行累加,从而得到最后的结果。

Pippenger算法也有很多变形优化算法。不管怎么说,MSM算法的底层计算就是椭圆曲线上的点加。不同的优化算法,对应不同的点加个数。

椭圆曲线点加(Point Add)

你可以从这个网站看看具有“short Weierstrass”形式的椭圆曲线上点加的各种算法。

http://www.hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#addition-madd-2007-bl

假设两个点的Projective坐标分别为(x1, y1, z1) 和 (x2, y2, z2) ,则通过如下的计算公式可以计算出点加的结果(x3, y3, z3)。

算法

详细给出计算过程的原因是想表明整个计算过程绝大部分是整数运算。整数的位宽取决于椭圆曲线的参数。给出一些常见的椭圆曲线的位宽:

  • BN256 - 256bits
  • BLS12_381 - 381bits
  • BLS12_377 - 377bits
  • 特别注意的是,这些整数运算是在模域上的运算。模加/模减相对来说简单,重点看看模乘的原理和实现。

模乘(Modular Muliplication)

给定模域上的两个值:x和y。模乘计算指的是 x*y mod p。注意这些整数的位宽是椭圆曲线的位宽。模乘的经典算法是蒙哥马利乘法(MontgomeryMuliplication)。在进行蒙哥马利乘法之前,被乘数需要转化为蒙哥马利表示:

算法

蒙哥马利乘法计算公式如下:

算法

蒙哥马利乘法实现算法又有很多:CIOS (Coarsely Integrated Operand Scanning),FIOS(Finely Integrated Operand Scanning),以及 FIPS(Finely Integrated Product Scanning)等等。本文不深入介绍各种算法实现的细节,感兴趣的读者可以自行研究。

为了对比FPGA以及GPU的本身的性能差别,选择最基本的算法实现方法:

算法

简单的说,模乘算法可以进一步分成两种计算:大数乘法和大数加法。理解了MSM的计算逻辑的基础上,可以选择模乘的性能(Throughput)来对比FPGA和GPU的性能。

观察和思考

在这样的FPGA设计下,可以估算出整个VU9P能提供的在BLS12_381椭圆曲线点加Throughput。一个点加(add_mix方式)大约需要12个模乘。FPGA的系统时钟为450M。

算法

在同样的模乘/模加算法下,采用同样的点加算法,Nvidia 3090的点加Troughput(考虑到数据传输因素)超过500M/s。当然,整个计算涉及到多种算法,可能存在某些算法适合FPGA,有些算法适合GPU。采用一样的算法对比的原因,想对比FPGA和GPU的核心计算能力。

基于上述的结果,总结一下GPU和FPGA在ZKP证明性能方面的比较:

算法

总结

越来越多的应用开始采用零知识证明技术。但ZKP算法比较多,各种项目使用不同的ZKP算法。从我们的实践工程经验来看,FPGA是个选项,但是目前GPU是个性价比高选项。FPGA偏好确定性计算,有latency以及功耗的优势。GPU可编程性高,有相对成熟的高性能计算的框架,开发迭代周期短,偏好需要throughput场景。

免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:长推:6月加密市场主题预测 下一篇:SEC起诉币安及CZ违反证券法(持续更新)

相关资讯

  • CZ获刑四个月,币安涅槃重生时
    CZ获刑四个月,币安涅槃重生时

    币安创始人CZ因违反反洗钱法被判监禁4个月,但币安顺利过渡,证明其用户资金安全和品牌稳固。CZ已辞去首席执行官职务并缴纳罚款,但被禁止返回阿联酋。法官最终判处CZ4个月监禁,称其收到了161封信件,了解其人品。信件描绘了CZ是一位冒着风险为币安成功的人,也是一位致力于家庭和慈善事业的领导者。币安仍然稳居全球第一大加密货币交易所,保持着用户的信心和资产安全。币安勇于面对监管挑战,积极与监管机构合作,巩固了其在全球加密市场的领导地位。.....

    每日资讯 2024-05-01 06:32 566
  • RootData:2024年Q1Web3行业投资研究报告
    RootData:2024年Q1Web3行业投资研究报告

    2024年Q1,Web3行业融资总额达25.45亿美元,同比增长4.7%,DeFi赛道融资额环比增长超过150%。比特币现货ETF资金流入超过121亿美元,推高比特币价格至历史新高。Q1早期融资项目数量同比增长10.5%,但仍有较多未被验证的技术与解决方案。AI、RWA、LSD、DePIN等板块轮动,用户对于寻找热门投资标的需求更高。Web3投资者注意力主要受知名机构投资、项目TGE事件、空投等因素影响。随着Web3行业吸引更多主流投资者,基于热门人物的交易线索将更受关注。RootData热搜榜单成为加密

    每日资讯 2024-04-30 19:35 1021
  • Vitalik:Binius——对二进制字段的高效证明
    Vitalik:Binius——对二进制字段的高效证明

    本文介绍了2019年时代密码学中的SNARK和STARK技术,特别感谢Justin Drake, Jim Posen, Benjamin Diamond和Radi Cojbasic的反馈。STARK和SNARK是一种证明计算机程序正确性的方法,通过将程序转换成包含多项式的数学方程来实现。STARK使用更大的数字,但不需要可信的设置,并且抗量子。SNARK使用更小的数字,但有限制。Binius是一种新的多项式承诺方案,它使用超立方体来表示计算轨迹,并通过Reed-Solomon编码来防止作弊。Binius是

    每日资讯 2024-04-30 19:34 609
  • EigenLayer官宣空投!但Pendle用户惨遭背刺……
    EigenLayer官宣空投!但Pendle用户惨遭背刺……

    EigenLayer发放空投,总供应量16.7亿枚,分配给社区45%,投资者29.5%,早期贡献者25.5%。但社区不满分配方案,认为项目方占比过高,代币不可转让。空投受IP限制和VPN封锁影响,与积分关联不大,部分用户反映数量少。空投后,EIGEN可能会跟其他项目一样下跌,市场流动性不足。.....

    每日资讯 2024-04-30 19:34 234
  • 市场静候“强心针”:香港虚拟资产现货ETF
    市场静候“强心针”:香港虚拟资产现货ETF

    加密货币市场周末表现疲软,投资者期待香港虚拟资产ETF带来流动性提振,但分析师警告缺乏积极催化剂可能导致币价继续下跌。比特币交易价格持续低于63,000美元,山寨币也遭受重创。本周关注企业财报、就业数据和美联储会议,分析师预计比特币目标为67,500美元以上,但利率不确定性给市场带来压力。比特币ETF流出资金达8360万美元,加密货币市场整体疲软。分析师认为,未来利率不确定性是波动的主要来源,ETF流量逆转也给比特币带来压力。经济学家表示,比特币当前的疲软可能是最后一次震荡,需要反弹至67,500美元以上

    每日资讯 2024-04-30 19:34 279
  • 香港金融史重大时刻:比特币ETF正式登陆港交所
    香港金融史重大时刻:比特币ETF正式登陆港交所

    香港将于4月30日推出比特币和以太坊现货ETF,华夏基金等三家子公司已获批准。此举为零售和机构投资者提供了安全、高效的数字资产配置工具。投资者可通过胜利证券和华赢证券进行实物申购,预计将吸引更多券商参与。ETF市场规模庞大,吸引美国投资者和海外家族办公室。目前只允许合格投资人、机构投资人、零售投资人和符合规定的国际投资人投资。香港证监会已明确将监管加密货币,目前只有比特币和以太坊符合推出ETF的条件。华夏基金香港提供高灵活性的交易选项,支持多种货币交易,费率低于同类型产品。加密货币ETF的推出可能会利好加

    每日资讯 2024-04-30 19:34 902
  • 跨输入签名聚合如何集成到比特币?
    跨输入签名聚合如何集成到比特币?

    跨输入的签名聚合(cross-input signature aggregation,CISA)是一种可以减少交易体积的技术,有望成为比特币的软分叉。本代码库的目标是为了收集关于签名聚合的思想和主题,以及构想它们集成到比特币中的方式。

    比特币知识 2024-04-30 17:44 515
  • 盲化的两方ECDSA签名
    盲化的两方ECDSA签名

    两方的 ECDSA(椭圆曲线签名算法)协议让两个互不信任的参与者可以安全地生成一个共有的公私钥对,而且既无需知晓另一方的私钥信息,也无需知晓整个私钥,就可以对一条双方一致认可的信息生成一个有效的 ECDSA 签名。我们提出了一种基于 Lindell [1] 协议的方法,让其中一方可以完全盲化地参与签名生成,这样 TA 就既不知道被签名的消息的内容,也不知道最终的签名是什么样。

    比特币知识 2024-04-30 17:21 437