PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束

经过几天的研究与探讨,终于算是把PLONK的几个难点解决,以博客的形式来记录一下整个PLONK的思路以及具体过程。整个博客以我自己做的ppt为主线(与上一个版本的ppt有了较大的更改),加上自己的理解,可能有些许不对的地方,共探讨
PLONK 全称
PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束

介绍流程

PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束

相关背景(主要是与sonic的不同之处)

PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束

整个PLONK的设计思路以及涉及到的主要技术

PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束

符号解释

PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束
此篇论文本身有很多自己定义的符号,在这里我挑选出一些比较重要的符号的解释,先大体有个印象,后边详细过程会再有涉及。我这里多提一下最后三个符号的解释:

  1. 首先倒数第三个[x]实际上时进行了srs计算得出的,具体什么是srs不详细解释,总之知道其本质是椭圆曲线上的点即可。
  2. 倒数第二个官方解释是对a,b,c的复制排列,它的意思就是比如a={1,2,3,4},那么它的排列就可能是{2,1,3,4}……总之就是相同元素但是位置变了。
  3. Li(x)是一个数学上的公式,其计算结果非1即0,只能取这两个。当且仅当x=i的时候,Li(x)=1.

接下来进入正题,如何P(Prover)进行零知识的传递--------1)、方程转化为电路PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束
首先,我们的问题最初的状态都是一个方程,即如何隐藏x的值;根据以往Zk-snark里的思路,先把方程转化为电路。电路里每个门有左输入、右输入、输出组成。我们把每个门用n=1、2、3……进行标号,左输入用an表示,右输入用bn表示,输出用cn表示。
这样每个门都可以化成上图中最底下的形式,如果是乘法门则ab的系数为1,其他为0;常数门则c的系数为1,其他为0;
2)电路转化为多项式
PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束
首先,我们把方程变化为定值表示方法,然后用拉格朗日插值法变成一个多项式,怎么插值出来的没有研究,仅作为一个黑盒子去用了。之后就形成了两个式子的转化。
这里为什么要转化成多项式的目的,我认为如果不转化,那么如果有n个门,则每个门形成一个式子,一共n个式子,不好统一化处理。化成多项式后,整个电路的乘法门,加法门等都用一个多项式表示了处理。
以上式子也叫门的约束,顾名思义。
论文解读如下:
PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束
其中ZH(X)及其前面的系数不用管,起到了隐藏参数混淆的作用。
用拉格朗日计算完成后,得到了a(x),b(x),c(x)其意义如下:
当x=1时,a(x)表示第一个门的左输入,b(x)表示第一个门右输入,c(x)表示第一个门的输出,以此类推。

!!!!综上所述,门的约束就已经得出了,用一个多项式表示如下:!!!!
PLONK(零知识证明)最终版原文解读(一)--------背景与门的约束
下一篇博客将详细讲解PLONK线的约束,也就是所谓的复制约束内容!
就是这样子啦!
Over~