证明系统

Halo2的证明系统可以分解成五个部分:

  1. 对电路中的主要模块多项式承诺:
    • 单元格的赋值
    • 查找表证明中的置换和乘积
    • 相等约束的置换
  2. 电路中和零相关的部分,构造消退证明:
    • 标准的和自定义门
    • 查找表规则
    • 相等约束规则
  3. 在所有需要的点上,获取上述多项式的取值:
    • 所有自定义门上的偏移信息
    • 消退证明的各个部分
  4. 构建多点打开证明,检查所有的多项式取值和相应的承诺是否一致
  5. 采用内积证明为多点打开证明生成证明

这些部分依次在本章节讲解。

举个例子

为了辅助我们的解释,我们时不时地用如下的约束系统:

  • 四个advice列
  • 一个fixed列
  • 三个自定义门:

太长不读

Halo2协议的简洁描述整理在如下的表格中。这部分会被Halo2的论文和安全性证明替代,目前作为后面子章节的总结:

证明者验证者
检查
构造 多点打开多项式

Then the prover and verifier:

  • Construct as a linear combination of and using powers of ;
  • Construct as the equivalent linear combination of and ; and
  • Perform

TODO: Write up protocol components that provide zero-knowledge.