Testudo:Spartan + Groth16 的R1CS ZKP证明系统

1. 引言

前序博客有:

Testudo为Cryptonet团队开源的R1CS ZKP系统,其开源代码见:

Testudo借助Spartan+Groth16,定位为实现具有更小setup的高效SNARK(其Prover为near linear-time)方案,实际代码实现时的3个核心组件为:

Testudo的主要特点为:

  • 为near linear-time prover SNARK,Prover会运行:
    • N \sqrt{N} N 次size为 N \sqrt{N} N 的multi-exps运算,对应约为 O ( N ∗ λ / log ⁡ ( N ) ) O(N*\lambda/\log(N)) O(Nλ/log(N))次group运算,其中 λ > > log ⁡ ( N ) \lambda>>\log(N) λ>>log(N) for security。
  • Small & Universal setup:其trusted setup具有square-root size,即:对于size为 N N N的某R1CS,其trusted setup size为 O ( N ) O(\sqrt{N}) O(N )。对于大电路来说,可将trusted setup size由GB级压缩为MB级。
  • Very fast prover:以data-parallel computations为例,比现有最快的Groth16实现(即Bellperson)还要快,快约5倍。
  • Small Proofs & Fast Verifier:具有constant size proofs和constant size verification time。
  • Use R1CS:当前最流行的电路表达方式,从而具有如下优势:
    • 使得Testudo可复用已有的R1CS代码
    • 无需以不同的算术化方式重写电路

以size为 2 25 2^{25} 225的多项式为例,Testudo中所实现的multilinear多项式承诺方案要比现有的arkworks实现 快:
在这里插入图片描述
以size为 2 20 2^{20} 220的subcircuit重复 128 = 2 7 128=2^7 128=27次,对应size为 2 27 2^{27} 227电路约束,与size为 2 27 2^{27} 227的Bellperson R1CS约束电路性能对比为:
在这里插入图片描述

参考资料

[1] Protocol Labs 2023年4月5日 twitter Testudo
[2] 2023年3月博客Testudo: Efficient SNARKs with Smaller Setups

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/130359574