作为以太坊 Layer 2 和隐私计算应用最广的 zk-SNARK 算法,Groth16 的核心优势在于极致的简洁:无论证明内容多复杂,它生成的 Proof 永远只有 3 个椭圆曲线点(约128字节),链上验证极快且 Gas 费恒定!
其底层的四大硬核阶段:
1️⃣ 程序拍平 (Flattening):将复杂的业务代码,拆解并拍平为只包含【加减乘除】的基础算术电路。
2️⃣ 一阶约束 (R1CS):将每一步计算转化为矩阵约束方程 (As) x (Bs) = C*s,确保证明者没有“作弊”。
3️⃣ 多项式压缩 (QAP):利用拉格朗日插值法,把几百万个散落的矩阵方程压缩合并为【一个统一的多项式方程】,实现计算量大幅减负。
4️⃣ 可信设置与双线性配对:项目启动时通过“可信设置仪式”生成加密参数;证明者最终输出点 [A]、[B]、[C];链上合约利用双线性配对 (Pairing) 只需验证一条等式,即可在完全不泄露隐私的前提下,确认证明的真实性!
⚠️ 提示:依赖初始可信设置(生成参数的秘密随机数必须被销毁,否则存在伪造证明的隐患)