学习笔记 | 零知识证明算法之PLONK——协议
上一篇主要描述了PLONK协议里的一个核心部分,用置换校验的方法去证明电路门之间的一致性;接下来,将继续分享如何证明门的约束关系得成立,以及整体的协议剖析。
门约束
举个简单的例子,假如存在一个电路,电路中仅有3个乘法门,对应的约束如下:
L1 * R1 - O1 = 0
L2 * R2 - O2 = 0
L3 * R3 - O3 = 0
进行多项式压缩:定义多项式函数L(X),R(X),O(X) 满足:
L(1) = L1, R(1) = R1, O(1) = O1
L(2) = L2, R(2) = R2, O(2) = O2
L(3) = L3, R(3) = R3, O(3) = O3
此时,定义新的多项式函数F(X),令F(X) = L(X) * R(X) - O(X)
则有:
F(1) = L(1) * R(1) - O(1) = 0
F(2) = L(2) * R(2) - O(2) = 0
F(3) = L(3) * R(3) - O(3) = 0
也就是表明:如果多项式函数F(X)在X=1,2,3处有零点,则说明门关系约束成立。
多项式函数F(X)在X=1,2,3处有零点则表明多项式F(X)可以被(X - 1)(X - 2)(X - 3)整除,为了和论文一致,我们把这个多项式函数设置成Z(X),即:
F(X) = T(X) * Z(X) ==> T(X) = F(X) / Z(X)
如果能证明T(X)是一个多项式,则说明多项式F(X)与Z(X)有相同的零点,进而说明门约束关系成立。
一般过程应该如下:
1. P计算F(X)并把F(X)发送给V;
2. V根据Z(X)直接校验F(X) / Z(X)
但是如此过程存在两个问题,一个是复杂性问题,假如F(X)的阶为n,那通信复杂度就是O(n);而是安全性问题,多项式F(X)完全暴露给V。
那应该如何解决这两个问题呢?最佳的答案可能就是:多项式承诺
多项式承诺
什么是多项式承诺?就是证明方P用一个很短的数据来代表一个多项式F,这些很短的数据可以被验证方V用来验证多项式F在某一点的值确实为证明方P声称的值z。
具体看一下论文里的定义:

相关推荐
最新快讯
-
贝莱德BUIDL Fund向某未知地址转移100万枚USDC2024-10-30 20:46:44
-
彭博社预计明年新会计制度将使 MicroStrategy 由亏损转为盈2024-10-30 20:39:46
-
贝莱德ETHA的以太坊持仓市值接近12亿美元2024-10-30 20:31:58
-
Starknet 跨链桥 StarkGate v2.0 Beta 版在主网上线2024-10-30 20:30:01
-
Owlto发布技术白皮书,提出以意图为中心的全链流动性解决方案2024-10-30 20:20:19
-
SUI跌破2美元2024-10-30 20:17:36
-
UNI跌破8美元2024-10-30 20:15:57