PLONK 的工作原理:第 2 部分

Posted sCrypt 智能合约

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PLONK 的工作原理:第 2 部分相关的知识,希望对你有一定的参考价值。

第 1 部分中,我们解释了如何将想要使用 PLONK 证明的计算转换为中间约束系统,最终使用多项式承诺方案 (PCS) 来证明。我们只介绍了一种类型的约束:门约束。在本文中,我们将介绍另一种类型:复制约束。

复制约束

图 1

在第 1 部分中,我们在每个门中实施了约束,例如 a0 * b0 = c0。但是,不同的门也存在约束,例如,门 0 的输出是门 1 的左输入,因此 c0 = a1。此外,可以拆分,例如,a0 = b0 = b1 = a2。这些约束称为复制约束,以确保连线包含相同的值。

排列检查

让我们首先考虑单个向量(即单个多项式)内的复制约束,例如 a0 = a2。我们定义一个置换函数 σσ(i) 是置换向量中第 i 个元素的新索引。在我们的例子中,σ = (2, 1, 0, 3) 如图 2 所示,表示 a0a2 交换位置。

图 2

颜色代表图中的线值。如果置换的块与顶部的原始块具有相同的颜色,则满足复制约束。

大乘积

让我们选择两个随机数 βγ。将 fg 定义为:

图 3

当且仅当以下等式成立时,置换检查通过:

图 4

左手边称为 大乘积。在我们的具体示例中,当 a0 = a2 时,很容易看到等式成立,因为在大乘积的分子和分母中的所有项都抵消了。

图 5

因为 β 和 γ 是随机的,所以在置换检查失败的情况下,大乘积 是 1 实际上是不可能的。也就是说,如果 a0 != a2,图 4 中的等式将不成立。

证明

我们提供了一个非正式的证明,如果大乘积为 1,则 σ(i) = j 意味着 ai = aj

回想一下,Schwartz-Zippel 引理说如果两个多项式在随机评估点相等,那么这两个多项式在任何地方都是相同的,并且具有压倒性的概率。让我们考虑两个多项式。

由于它们在随机 γ 上相等,我们可以认为它们是相同的,这意味着它们具有相同的根。

考虑两个匹配的根:来自 P1 的第 j 个和来自 P2 的第 i 个。

我们可以通过定义两个多项式再次应用上述技巧:

由于它们在随机 β 处相等,我们可以认为它们是相等的。也就是说,当 σ(i)=j 时,ai=aj。 QED¹。

多项式

单位根

在将向量转换为目标多项式时,我们使用向量索引 0, 1, 2, ..., n-1 作为评估 H 的域,但可以使用任何域。在 PLONK 中,由于其性能提升,用于多项式插值的域由单位根组成。域的第 n 个单位根是满足 ω^n = 1 的域元素 ωn 是向量的大小,在这种情况下为 4Hω⁰, ω¹, ω², ω³

累加器

让我们定义一个向量 P 评估如下:

图 6

它累积了大乘积,因为 P 可以递归地重写:

图 7

如果存在诸如 P(x),我们知道图 4 中的大乘积方程成立,因为

图 8

图 7 等价于:

图 9

P(x)f(x)g(x) 可以像以前一样在域 H ω⁰, ω¹, ω², ω³上使用插值来找到。以下多项式方程在域 H 上成立

其中

再次等价证明下面的多项式方程

其中

我们可以使用第 1 部分中的多项式承诺方案来证明它。

跨向量复制约束

不同向量/多项式之间也存在复制约束,例如 a2 = b0a1 = c0。我们可以扩展之前的方法,将向量 abc 合并为一个大小为 12 的大向量。例如,b0 的索引为 4c08。我们玩具示例的置换函数 σ(i) 变为:

图 3 变为:

其余步骤类似于在单个向量中执行复制约束的步骤。

PLONK

回顾一下,给定一个要证明的程序 P,我们首先将其转换为算术电路,然后转换为一系列约束,包括门和复制约束,这些约束被转换为多项式。最后,我们使用 PCS 简洁地验证多项式恒等式。这些都是使用 PLONK 来证明计算的高级思想。为了便于说明,我们省略了无数重要的优化,这些优化使 PLONK 在实践中高效。例如,可以使用标准的 Fiat-Shamir 启发式使 PCS 成为非交互式的。对多个多项式身份的测试也可以合并为一个。有关更多详细信息,您可以阅读原始论文或下面的参考资料。

参考

https://github.com/sCrypt-Inc/awesome-zero-knowledge-proofs#plonk


[1] 证明的思想来自这里

以上是关于PLONK 的工作原理:第 2 部分的主要内容,如果未能解决你的问题,请参考以下文章

BSV 上的 PLONK

CodeForces 785D Anton and School - 2

Sangria:PLONK + Folding

Tomcat 系统架构与设计模式,第 1 部分: 工作原理

TomcatTomcat 系统架构与设计模式,第 1 部分: 工作原理

Tomcat 系统架构与设计模式,第 1 部分: 工作原理