PLONK(零知识证明)最终版原文解读(三)-------- 范围与优化处理
上一篇提到了复制约束与总约束的推导,在总约束t(X)的最后留了一个问题就是为什么要把t(x)分三份处理,其实实际作用是为了将次数降低,使得范围规范化。
除此之外,根据ZK-SNARK里的经验,我们如果传整个多项式会使得复杂度太高,所以我们可以取一个随机值,并把其带入多项式进行计算,这样P就可以只传结果的值即可。
接下来需要取一个随机点z
我们可以看到其实很简单,取了一个z然后带入到之前的约束当中。
因为承诺的取值是在X^n之内,所以需要对t(X)做一个优化处理。
PLONK的论文中用了r(X)来定义优化后的t(X)
我们通过比较发现除了简单把z带入到t(X)之外,r(X)比t(X)缺失了多个项,其实就是把复杂的项省去了,这一部分会在V验证的过程中再自己补充上即可。
上图就是V在验证过程中,用P传过去的r(X)来计算t(X).把三张图拼在一起会发现是一样的。
总之,通过以上处理,P就可以把不符合范围的项省去,进而使得传输的表达式既符合要求又更加简单。
下次会再讨论P进行的最后一步操作,多项式承诺。
就是这样子啦!
Over~