KZG 承诺是一种在密码学中使用的一种承诺方案,其名称源自其发明者的姓氏(Kate, Zaverucha, and Goldwasser)。本文简要说明 KZG 承诺的基本构造。
Step1 (Setup):
- 循环群 ,循环群 的生成元 ;
- 是需要承诺多项式最大的阶数;
- ;
- 计算并发布 。
Step 2 (Commit to polynomial):
- 给定一个多项式: ;
- 计算并输出承诺: 。
Step 3 (Prove an evaluation):
- 给定一个挑战值 z,Prover 计算 ;
- 计算并输出证明:;
- 。
其中, 被称为 “商多项式”,那么 可以被 Prover 通过长除法计算出来:。
Step 4 (Verify an evaluation proof):
- 给定承诺 ,等式 和 证明 ;
- 验证:
这里我只是展示了 KZG 多项式承诺的关键算法,如果想要更多的了解背景和详细的数学知识,可以阅读以下文章。
KZG in Practice: Polynomial Commitment Schemes and Their Usage in Scaling Ethereum