Skip to content

Plonkish ​

Refer

算数化 ​

对于以下电路

这里 算数门 n=3 ,变量 m=6 。

根据 Plonk 基本多项式:

qL⋅ωa+qR⋅ωb+qM⋅ωa⋅ωb+qC−qO⋅ωc=0
  • ql:左输入
  • qr:右输入
  • qo:输出
  • qm:乘法
  • qc:常数

q∗表示为当前功能是否启用,启用为1,禁用为0。

将上述电路转化为约束

  • x1+x2=x6
  • x3⋅x4=x5
  • x5⋅x6=out

得到如下 n×3 表格 W

ωaωbωc
x1x2x6
x3x4x5
x5x6out

对应的 q∗ 表格Q如下

qLqRqMqOqC
11010
00110
00110

表示为矩阵形式,在这里常数项 qC 为零直接忽略:

[100]⋅[x1x3x5]+[100]⋅[x2x4x6]+[011]⋅[x1x2x3x4x5x6]=[111]⋅[x6x5out]

化简后刚好为原先的约束:

[x100]+[x200]+[0x3x4x5x6]=[x6x5out]

约束拷贝 ​

alt text

alt text

alt text

alt text

简单来说,就是通过置换确保相同变量在不同约束中的值一致。从而保证电路的正确性。

电路验证框架 ​

alt text

alt text

alt text