证明系统
Halo2的证明系统可以分解成五个部分:
- 对电路中的主要模块多项式承诺:
- 单元格的赋值
- 查找表证明中的置换和乘积
- 相等约束的置换
- 电路中和零相关的部分,构造消退证明:
- 标准的和自定义门
- 查找表规则
- 相等约束规则
- 在所有需要的点上,获取上述多项式的取值:
- 所有自定义门上的偏移信息
- 消退证明的各个部分
- 构建多点打开证明,检查所有的多项式取值和相应的承诺是否一致
- 采用内积证明为多点打开证明生成证明
这些部分依次在本章节讲解。
举个例子
为了辅助我们的解释,我们时不时地用如下的约束系统:
- 四个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.