本文是“Proof is in the Pudding”系列第10期,深入讲解了Groth16零知识证明系统。文章首先介绍了Groth16为何仍被广泛使用及其缺点,然后回顾了算术化过程,将R1CS约束转化为多项式恒等式,并利用消去多项式和Schwartz-Zippel引理说明单点随机检测的充分性。接着解释了协议为何需要配对(因需对两个隐藏承诺相乘)、随机线性组合如何防止证明者在不同位置使用不同证据,以及CRS(公共参考串)如何通过伽马和德尔塔分离因子限制组件组合。最后,文章总结了商多项式的强制执行、最终方程的合并以及公共输入的处理。