1. PipeMSM(cloud-ZK):ZKP+FPGA
Ingonyama团队2022年发表了论文《PipeMSM: Hardware Acceleration for Multi-Scalar Multiplication》,尝试将ZK操作与FPGA结合,并为未来ZK与ASIC(Application Specific Integrated Circuits)结合做铺垫。
在Aztec系列博客:
- SNARK性能及安全——Prover篇
- SNARK性能及安全——Verifier篇
中指出,prover开销 相对于 “direct witness checking” 将是百万级甚至千万级的。Prover开销被认为是影响ZK应用的主要计算瓶颈,从而影响:
- 延迟
- 吞吐量
- 内存
- 耗电量
- cost
MSM(Multi-scalar multiplication)为许多ZK prover的主要瓶颈,在PipeMSM论文中,借助:
- Parallel Bucket Method
- low latency Complete Elliptic Curve addition formulae
- Domb-Barret Reduction,详情参见博客:基础算法优化——Fast Modular Multiplication
所实现的MSM算法,具有能耗效率高且速度可媲美GPU的优势。
开源代码实现见:
- https://github.com/ingonyama-zk/cloud-ZK/(C+Rust)(专门针对 AWS EC2 F1 FPGA instance )
FPGA与GPU相比的劣势在于,GPU为商品化硬件,用户更易于获得。
第一届ZPrize FPGA MSM track winner Hardcaml的性能为:
而实际所实现的PipeMSM的性能要更优。
2. ICICLE:ZKP+GPU
开源代码见:
- https://github.com/ingonyama-zk/icicle(Cuda+Rust)
ICICLE为基于CUDA的GPU库,支持:
- Aleo等应用中的ZK加速。
- Fast Danksharding应用:为以太坊rollup扩容路线图的sharding设计。引入新的名为blob-data的数据类型。blob-data由共识层(beacon链)存储有限的一段时间,不可被执行层(EVM)访问,但blob-data的内容和可用性 可由 执行层(EVM)验证。Danksharding引入builder新角色。builder给proposers提供block proposals,proposers负责根据highest bid来选择block。仅被选中的block builder需要构建整个区块。一旦选中的区块发布,可通过data availability sampling高效验证。详细参看论文:A Mathematical Theory of Danksharding。
核心设计思想为:
开源代码实现见:- https://github.com/ingonyama-zk/fast-danksharding (Python+Rust)
参考资料
[1] Ingonyama团队2022年9月博客 Cloud-ZK: A Toolkit for Developing ZKP Acceleration in the Cloud
[2] https://zprize.hardcaml.com/msm-results.html
[3] Ingonyama团队2023年4月博客 ZK Hardware Table Stakes part 1 -MSM
[4] Ingonyama团队2023年3月博客 Introducing ICICLE: An Open-Source GPU Library for Zero Knowledge Acceleration
[5] Ingonyama团队2023年3月博客 Fast Danksharding using ICICLE
[6] Ingonyama团队博客A Mathematical Theory of Danksharding
ZKP加速系列博客
- Multi-scalar multiplication: state of the art & new ideas
- 采用特殊硬件指令对密码学算法加速
- 零知识证明的硬件加速
- STARK/SNARK加速小技巧
- 借助FPGA硬件对Multi-Scalar Multiplication加速
- 基础算法优化——Fast Modular Multiplication