KZG多项式承诺

KZG多项式承诺本文概述了 KZG 承诺方案的基本构造 包括循环群设置 多项式承诺 证明生成以及验证过程

大家好,欢迎来到IT知识分享网。

KZG 承诺是一种在密码学中使用的一种承诺方案,其名称源自其发明者的姓氏(Kate, Zaverucha, and Goldwasser)。本文简要说明 KZG 承诺的基本构造。

Step1 (Setup):
  • 循环群 G,循环群 G 的生成元 g
  • l 是需要承诺多项式最大的阶数;
  • r \in F_p
  • 计算并发布 (g,g^{r},g^{r^2},...,g^{r^l})
Step 2 (Commit to polynomial):
  • 给定一个多项式:  f(x) = a_0+a_1x+a_2x^2+...+a_lx^l
  • 计算并输出承诺:  c=g^{f(r)}=g^{a_0+a_1 r^1+a_2 r^2+...+a_d r^d}=({g^{r_0}})^{a_0}({g^{r_1}})^{a_1}...({g^{r_d}})^{a_d}
Step 3 (Prove an evaluation):
  • 给定一个挑战值 z,Prover 计算 f(z)=s
  • 计算并输出证明:\pi = g^{t(r)}
  • f(x)-s = (x-z)t(x) \rightarrow f(r)-s=(r-z)t(r)

        其中,t(x) 被称为 “商多项式”,那么 t(x) 可以被 Prover 通过长除法计算出来:t(x)=\frac{f(x)-s}{(x-z)}

Step 4 (Verify an evaluation proof):
  • 给定承诺 c=g^{f(r)},等式 f(z)=s 和 证明 \pi = g^{t(r)}
  • 验证:e(\frac{g^{f(r)}}{g^s},g)=e(g^{t(r)},\frac{g^r}{g^z})

这里我只是展示了 KZG 多项式承诺的关键算法,如果想要更多的了解背景和详细的数学知识,可以阅读以下文章。 

KZG in Practice: Polynomial Commitment Schemes and Their Usage in Scaling Ethereum

Alin Tomescu’s notes on KZG

​​​​​​Dankrad Feist’s notes on KZG

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144496.html

(0)
上一篇 2025-04-26 14:33
下一篇 2025-04-26 14:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信