建议
建议读者在阅读本篇分享时,要具备以下知识储备:
1. 算数环路的基本概念及数学模型
2. QAP的原理
3. 零知识证明的基本思想
4. PGHR13算法的数学原理
5. Groth16算法的数学原理
目的
本篇分享主要针对零知识证明的两个主流算法,PGHR13和Groth16算法进行了相同点和异同点的分析。主要是个人的理解,如有错位,还请热心读者批评指正,先谢过^_^
对比分析
主要从以下几点做了比较:
1. 算法结构上
(1) CRS size
(2) Proof Size
(3) Proof Complex
(4) Verify Size
(5) Verify Complex
(6) Verify equality nums
2. 算法思想上
(1) QAP多项式的结构及意义
(2) 如何隐藏witness,即隐私输入
(3) 如何保证在隐私输入不被暴露的情况下,保证多项式因子的正确性及等式成立。
3. 具体的内容如下图所示:

总结
PGHR13和Groth16作为zk-snark的主流算法,其思想基本相同,可以简单概括为:
Computational statement => Arithmetic circuits => R1CS => QAP => ?
对于QAP的多项式的后续验证处理,虽然两者在数学上形式有所不同,但是其思想基本一致。