零知识证明|4.如何验证多项式盲计算的值?

本文介绍了如何在保持双盲性的同时,利用d-KCA(d阶系数知识假设)验证Alice对多项式盲计算的结果。Bob通过发送多个α对给Alice,Alice通过线性组合生成新α对,然后Bob验证新α对是否符合α对条件,从而确认Alice的计算正确性。
摘要由CSDN通过智能技术生成

这篇文章正式介绍一下Bob如何验证Alice发过来的 E ( P ( s ) ) E(P(s)) E(P(s))的值是否正确。实际上,我们想要实现2个目的:

  • 双盲:Alice不知道s,Bob也不知道P(X)
  • 可验证:Alice只有发送正确的 E ( P ( s ) ) E(P(s)) E(P(s))的值,才会被Bob接受

要实现第2个目标,需要用到上一篇文章里介绍的α对和KCA的概念。

上一篇文章里的KCA只用到了一个α对,我们可以扩展一下,让Bob给Alice发送多个α对(使用同一个α):

( a 1 , b 1 ) , ( a 2 , b 2 ) , … , ( a d , b d ) (a_1,b_1),(a_2,b_2),…,(a_d,b_d) (a1,b1),(a2,b2),,(ad,bd)

Alice需要回复一个α对,根据之前介绍的方法,她可以从上面的α对中随机挑选一个 ( a i , b i ) (a_i,b_i) (ai,bi),然后各自乘以一个系数: ( a ′ , b ′ ) = ( c ⋅ a i , c ⋅ b i ) (a',b') = (c \cdot a_i, c \cdot b_i) (a,b)=(cai,cbi)。那么,除此之外,还有没有其他方法生成新的α对呢?答案是肯定的,我们可以通过"线性组合"来生成。

举个例子,随机选2个系数 c 1 , c 2 c_1,c_2 c1,c2,生成新的α对: ( a ′ , b ′ ) = ( c 1 ⋅ a 1 + c 2 ⋅ a 2 , c 1 ⋅ b 1 + c 2 ⋅ b 2 ) (a',b') = (c_1 \cdot a_1 + c_2 \cdot a_2, c_1 \cdot b_1 + c_2 \cdot b_2) (a,b)=(c1a1+c2a2,c1b1+c2b2)

我们来证明一下:

b ′ = c 1 ⋅ b 1 + c 2 ⋅ b 2 = c 1 ⋅ α ⋅ a 1 + c 2 ⋅ α ⋅ a 2 = α ⋅ ( c 1 ⋅ a 1 + c 2 ⋅ a 2 ) = α ⋅ a ′ b' = c_1 \cdot b_1 + c_2 \cdot b_2 = c_1 \cdot \alpha \cdot a_1 + c_2 \cdot \alpha \cdot a_2 = \alpha \cdot (c_1 \cdot a_1 + c_2 \cdot a_2) = \alpha \cdot a' b=c1b1+c2b2=c1αa1+c2

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值