【译】SNARKs讲解「第二部分」:多项式的盲求值

原文链接 https://electriccoin.co/blog/snark-explain2/

<<< 第一部分

在这篇文章里,我们将回顾多项式的概念,解释多项式“盲求值”的概念,以及如何用同态隐藏(HH)来实现它。在以后的文章里,我们将看到盲求值会是构造SNARK的核心工具。

我们用 F p \textbf F_p Fp来表示阶数为 p p p的域。也就是说, F p \textbf F_p Fp的元素集合是 { 0 , . . . , p − 1 } \{0,...,p-1\} {0,...,p1}。如同本系列文章第一部分里面讲到的一样,这个域的加法和乘法都包含 m o d &ThinSpace; p mod\,p modp 操作。

多项式和线性组合

我们回顾一下,在域 F p \textbf F_p Fp上的阶数为 d d d的多项式 P P P,有如下的表达形式

P ( X ) = a 0 + a 1 ⋅ X + a 2 ⋅ X 2 + … + a d ⋅ X d P(X)=a_0+a_1⋅X+a_2⋅X^2+…+a_d⋅X^d P(X)=a0+a1X+a2X2++adXd

其中 a 0 , . . . , a d ∈ F p a_0,...,a_d \in \textbf F_p a0,...,adFp

我们在点 s ∈ F p s \in \textbf F_p sFp上对 P P P求值,可以把 s s s代入 X X X中,来计算这个结果:

P ( s ) = a 0 + a 1 ⋅ s + a 2 ⋅ s 2 + … + a d ⋅ s d P(s)=a _0+a_1⋅s+a_2⋅s^2+…+a_d⋅s^d P(s)=a0+a1s+a2s2++adsd

对于知道 P P P的人来说,值 P ( s ) P(s) P(s)是值 1 , s , . . . , s d 1,s,...,s^d 1,s,...,sd的线性组合。线性组合的意思是“带权重的合”,这里“权重”是 a 0 , . . . , a d a_0,...,a_d a0,...,ad

在上一篇文章里,我们看到HH被定义成 E ( x ) = g x E(x) = g^x E(x)=gx, 其中 g g g 是一个具有困难离散对数问题的群的发生器。我们提到过这个HH“支持加法”,这样说的原因是 E ( x + y ) E(x+y) E(x+y) 可以从 E ( x ) E(x) E(x) E ( y ) E(y) E(y) 中计算而来。这里我们也注意一下,HH同样也“支持线性组合“,意思是给定 a , b , E ( x ) , E ( y ) a, b, E(x), E(y) a,b,E(x),E(y),我们可以计算出 E ( a x + b y ) E(ax+by) E(ax+by) 。这是因为

E ( a x + b y ) = g a x + b y = g a x ⋅ g b y = ( g x ) a ⋅ ( g y ) b = E ( x ) a ⋅ E ( y ) b . E(ax+by)=g^{ax+by}=g^{ax}⋅g^{by}=(g^x)^a⋅(g^y)^b=E(x)^a⋅E(y)^b. E(ax+by)=gax+by=gaxgby=(gx)a(gy)b=E(x)aE(y)b.

多项式的盲求值

假定Alice有一个阶数为 d d d的多项式 P P P,Bob有一个他自己随机挑选的点 s ∈ F p s \in \textbf F_p sFp。Bob希望能得到 E ( P ( s ) ) E(P(s)) E(P(s)),也就是 P P P s s s点的HH。

如下有2种可以实现的方法:

  • Alice把 P P P发送给Bob,然后他自己计算 E ( P ( s ) ) E(P(s)) E(P(s))
  • Bob把 s s s发送给Alice,然后她计算 E ( P ( s ) ) E(P(s)) E(P(s)),完成后,把结果发送
    给Bob。

然而在盲求值问题里,我们希望Bob在不知道 P P P 的情况下算出 E ( P ( s ) ) E(P(s)) E(P(s))。这样的话,上面第一个选项就被排除了。更重要的是,我们不希望Alice知道 s s s,这样第二个选项也被排除了。1

利用HH,我们可以像如下这样执行盲求值:

  1. Bob把隐藏 E ( 1 ) , E ( s ) , . . . , E ( s d ) E(1), E(s),...,E(s^d) E(1),E(s),...,E(sd)发送给Alice。
  2. Alice利用第一步中发送来的元素计算出 E ( P ( s ) ) E(P(s)) E(P(s)),然后把结果发送给Bob 。(Alice可以做到这一点的原因是, E E E支持线性组合,并且 P ( s ) P(s) P(s) 1 , s , . . . , s d 1,s,...,s^d 1,s,...,sd的线性组合)。

注意,由于只有隐藏被发送,Alice不知道 s s s 2,Bob也不知道 P P P

为何多项式盲求值很有用

后续的文章会更详细地谈到盲求值是被如何用于SNARKs中的。粗略的直觉就是验证者在脑子里有一个“正确”的多项式,他希望去检查是否证明者知道它。在证明者的多项式是错误的情况下,让证明者在一个他事先不知道的一个随机点上对他自己的多项式盲求值,可以确保证明者将以极高的概率给出一个错误的答案。这是因为 Schwartz-Zippel 辅助定理规定了“不同的多项式在大多数点上的值不相同"。

>>> 第三部分


  1. 我们不想发送 P P P给Bob的主意原因是它太大了,有 d + 1 d+1 d+1个元素。例如,在目前的Zcash协议中 d d d可以大到 2000000 2000000 2000000。这最终跟 SNARKs中的“Succinct(简洁)"有关。上面Bob发送给Alice的隐藏序列也是一样的长,但是这个序列可以被“硬编码"到系统参数里,注意,在每个SNARK证明里Alice的消息都不相同。 ↩︎

  2. 实际上,隐藏属性仅仅保证了 s s s不能被从 E ( s ) E(s) E(s)中恢复。我们在这里也申明一下 s s s同样也不能从序列 E ( s ) , . . . , E ( s d ) E(s),...,E(s^d) E(s),...,E(sd)中恢复出来,尽管这个序列包含更多关于 s s s的信息。这跟 d d d次Diffie-Hellman假设一致,该假设会在好几个SNARK安全证明中被用到。 ↩︎

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值