ZKP方案衍变及对比

1. 引言

2019年是ZKP方案创新井喷的一年。

2019年10月,Chiesa在#zk0x04上的分享 State of the SNARG-scape - Alessandro Chiesa (UC Berkeley, StarkWare, Zcash),有:
ZKP方案衍变及对比_第1张图片

根据reference string的类型,可将zk-SNARKs分类为:
ZKP方案衍变及对比_第2张图片
所有zk-SNARKs底层都使用以下3种compilers之一:【下图颜色与上图颜色对应】

  • Preprocessing SNARK compiler
  • DARK compiler
  • traditional compile(即基于static circuit specific reference strings的zk-SNARK方案)

ZKP方案衍变及对比_第3张图片

截止到2019年底,主要的ZKP方案有:

  • 1)Groth16:见Jens Groth 2016年发表论文 On the Size of Pairing-based Non-interactive Arguments。
    Groth16为当前已知的最快最小的zk-SNARK。已用于Zcash。
    Groth16为non-universal的,其setup与某个指定circuit紧密关联。由于其速度快和proof size小,很多新的zk-SNARK都会对Groth进行对比。
  • 2)Sonic:为早期的通用zk-SNARK协议。见Mary Maller等人2019年论文Sonic: Zero-Knowledge SNARKs from Linear-Size Universal and Updateable Structured Reference Strings。
    Sonic支持universal且updatable common reference string。
    Sonic proof size为constant的,但验证开销昂贵。
    理论上,可打包验证多个证明以实现更好的性能。
  • 3)Fractal:见Chiesa等人2019年论文Fractal: Post-Quantum and Transparent Recursive Proofs from Holography。
    Fractal无需pairing-friendly椭圆曲线,且支持递归。
    通过对电路进行预处理,可在transparent setup的情况下实现succinct verification。
    Fractal的proof size当前为250kB,比其它方案要大,后续该size将进一步降低。
  • 4)Halo:见Sean Bowe等人2019年论文Recursive Proof Composition without a Trusted Setup。
    Halo为无需trusted setup,支持递归证明组合的zk-SNARK方案。递归采用“nested amortization”:基于cycles of elliptic curves 重复压缩多个证明。
    Halo的verification time为linear的,使得其verification不是succinct的。但是后续可进一步改进。
  • 5)SuperSonic:见Bunz等人2019年论文Transparent SNARKs from DARK Compilers。
    SuperSonic为对Sonic的改进。
    SuperSonic是具有实用prover time、近似logarithmic proof size以及实用verification time的首个transparent zk-SNARK。
  • 6)Marlin:见Chiesa等人2019年论文Marlin: Preprocessing zkSNARKs with Universal and Updatable SRS。
    Marlin为对Sonic的改进。
    Marlin的prover time要比Sonic快10倍,Verification time也比Sonic快4倍。
  • 7)Plonk:见Gabizon 2019年论文PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge。
    Plonk为对Sonic的改进。
    Plonk的prover time比Sonic快5倍。
  • 8)STAKR: 见Ben-Sasson等人 2018年论文《Scalable, transparent, and post-quantum secure computational integrity》。

相应的性能对比为:
ZKP方案衍变及对比_第4张图片
通常来说:

  • 1)transparent setup方案具有更大的proof size;
  • 2)Halo的Verification time为非constant的;
  • 3)Groth16在proof size和runtime方面,仍具有无可匹敌的优势。

根据https://github.com/matter-labs/awesome-zero-knowledge-proofs有:

SNARKs STARKs Bulletproofs
Algorithmic complexity: prover O(N * log(N)) O(N * poly-log(N)) O(N * log(N))
Algorithmic complexity: verifier ~O(1) O(poly-log(N)) O(N)
Communication complexity (proof size) ~O(1) O(poly-log(N)) O(log(N))
- size estimate for 1 TX Tx: 200 bytes, Key: 50 MB 45 kB 1.5 kb
- size estimate for 10.000 TX Tx: 200 bytes, Key: 500 GB 135 kb 2.5 kb
Ethereum/EVM verification gas cost ~600k (Groth16) ~2.5M (estimate, no impl.) N/A
Trusted setup required? YES NO NO
Post-quantum secure NO YES NO
Crypto assumptions DLP + secure bilinear pairing Collision resistant hashes Discrete log

Bobbin Threadbare在2022年3月的分享视频ZK HACK mini - Writing STARK proofs with Winterfell 中指出:
ZKP方案衍变及对比_第5张图片
根据Comparison of Different zk-SNARKs,有:
ZKP方案衍变及对比_第6张图片

参考资料

[1] Comparing General Purpose zk-SNARKs
[2] Evolution of zk-proofs

你可能感兴趣的:(零知识证明,零知识证明)