Skip to content

Plonkish

Refer

算数化

对于以下电路

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

根据 Plonk 基本多项式:

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

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

将上述电路转化为约束

  • x1+x2=x6
  • x3x4=x5
  • x5x6=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