PLONK(零知识证明)最终版原文解读(二)--------线(复制)的约束与总约束

上篇博客介绍了PLONK对于门约束的处理,现在想除了门之外,线上也需要有一定的约束,比如
在这里插入图片描述
对于这个电路图a1\b1\b2\a3必须是相等的,除此之外,c1\a2也是必须相等的,即一条线的两端一定相等,同门的输出也一定相等。为了保证这些情况相等而采取的约束就是复制约束
下边开始进入正题,PLONK用“坐标对累加器”实现了复制约束

在这里插入图片描述
我们先理解坐标对累加器的原理,然后再应用到电路上。还是以一个方程为例:
我们先把方程化成定值表达形式,x={0,1,2,3},y={-2,1,2,1};
规定一个p(x),令p(1)=1,p(x+1)=p(x)*(v1+X(x)+Y(x)*v2);
v1,v2为两个随机值。

上边的表中也介绍了x={0,1,2,3}时y的取值,以及p的取值。我们先不看第二三行,只看第一四行,我们如果重新取排列{0,3,1,2}时,p‘(4)的结果与{0,1,2,3}计算出的p(4)的结果相同。从而说明y1=y3。

这样做的好处是:我们可以调换多对值,只要两次最后计算出的p的值相同则就可以保证调换位置处的y是相同的。从而使得我们本来需要一处处验证值相同变成了整个范围一起验证。
我们转向电路上:(引用V神博客的翻译)
例如,我们想证明a(1)=a(3)。我们将生成两个坐标累加器:一个是X(x) = x 和Y(x) = a(x),另一个是Y(x) = a(x),而X’(x)是对每个复制约束中的值的翻转排列(或重新排列)定值的多项式。在a(1) = a(3)的情况下,这意味着排列将开始于0 3 2 1 4… 第一个累加器将压缩 ((0, a(0)), (1, a(1)), (2, a(2)), (3, a(3)), (4, a(4))…,第二个压缩((0,a(0)),(3,a(1)),(2,a(2)),(1,a(3)),(4,a(4))……只有当a(1) = a(3)时,两者才能给出相同的结果。

为了证明a、b和c之间的约束条件,我们使用相同的过程,将三个多项式的点“累加”在一起。例如,如果我们想用n = 5证明a(2) = b(4),那么X’a(x) 的值为0 1 9 3 4,以及X’b(x)的值为5 6 7 8 2(注意2和9翻转了,其中9对应于b4 导线)。
ps:这里需要说明一下,a的范围是(1–n),b是(n+1–2n),c是(2n+1–3n)
然后,我们将不再在一个过程的运行中检查等式(即检查p(4) = p ‘(4)。如前所述,我们将检查每边三种不同运行的乘积: p(a)p(b)p( c)=p’(a)p’(b)p’( c)。
了解原理后看一下论文本身的描述:
在这里插入图片描述
图上的协议比较重要放大来看:
在这里插入图片描述

  1. 取了两个随机数;
  2. 定义了f’与g’,其中g’是f’重排列后的计算公式。
  3. 定义了一个Z,来计算f’与g’的分别累乘后的商。类比之前的p(4)/p’(4);
  4. 不用管这个
  5. 验证(a)(b)成立则表示复制约束成立。
    其中这个(a)保证了Z(1)=1。
    在这里插入图片描述
    在这里插入图片描述
    所以PLONK里需要计算p(a)p(b)p(c ),所以需要构建三个协议里的f’,对应了三个g’。
    z(x)的定义式中第一行还是起了增加混肴的作用,第二行就是三个f’/三个g’的形式。
    这样就构造好了f’\g’\Z。
    接下来根据协议里的内容我们需要保证(a)(b)两式的成立。所以引出总约束=门约束+线约束=门约束+(a)+(b)

在这里插入图片描述
PLONK里用t(X)来定义了整个约束,

  1. 第一行是上篇博客推出的门约束多项式;
  2. 第二、三行是协议里的(b)的实现;
  3. 第四行是协议里的(a)实现。
    每行最后的a^n/ZH(X)对于理解不产生影响可以省去。

我们发现后边对t(X)做了分解操作,这里也有其另外的目的,我们将在下一篇继续探讨。自此,整个线约束到此就表示完成了。
就是这样子了
Over~

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值