Skip to content

Plonk方案

Plonk全称为Permutations(排列) over Lagarange-bases(拉格朗日基) for Oecumenical(普世的) Noninteractive arguments of Knowledge。

准备阶段

准备双线性映射的两个群

这里建议先再看看之前的KZG承诺

定义有限域

  • 这里使用y2=x3+3y^2 = x^3 + 3,既bls12_381曲线
  • x,yFpx,y \in F_p

以下以x,yF101x,y \in F_{101}为例

寻找G1G_1的循环子群

下面的具体计算可以参考这里

扩展域

为了完成双线性映射需要找到扩展域 F101\mathbb{F}_{101} ,这里的 kk 被称为嵌入度,需要找到最小的 kk 使得 rpk1r|p^k -1,在这里 rr 是子群 G1G_1 的阶。要求 r | p^k − 1 是为了让 r 次单位根包含在 F_{p^k}^× 中,从而配对 e: G1 × G2 → GT(|GT|=r)可以定义。

在这里假设 k2k - 2

  • pk1=101210mod17p^k - 1 = 101^2 - 1 \equiv 0 \; mod \; 17
  • 扩展域 F1012\mathbb{F}_{101^2}
  • 寻找一个不可约多项式 x2+2x^2 + 2
    • 为什么不能用 x2+1x^2 + 1, (x10)(x+10)x2100x2+1mod101\because (x-10)(x+10) \equiv x^2 - 100 \equiv x^2 + 1 \; mod \; 101
  • uu 为该式的解,既 u2=2u^2 = -2
  • 则在该扩展域上所有元素可写作$ a + bu $

找到第二个子群

可信设置

  • 生成私钥 s,αFps,\alpha \in \mathbb{F}_p
  • 构造结构引用字符串SRS
    • 1G1,sG1,s2G1,,sn+2G11 \cdot G_1,s \cdot G_1,s^2 \cdot G_1,\cdots,s^{n+2} \cdot G_1
    • 1G2,sG21 \cdot G_2,s \cdot G_2

将问题转化为电路

这里将问题假设为: α2+β2=γ2\alpha^2 + \beta^2 = \gamma^2

R1CS:

  • x1x1=x2x_1 \cdot x_1 = x_2
  • x3x3=x4x_3 \cdot x_3 = x_4
  • x5x5=x6x_5 \cdot x_5 = x_6
  • x2+x4=x6x_2 + x_4 = x_6

Plonk基本多项式

qla+qrb+qoc+qmab+qc=0q_la + q_rb + q_o c +q_m ab + q_c = 0

  • qlq_l:左输入
  • qrq_r:右输入
  • qoq_o:输出
  • qmq_m:乘法
  • qcq_c:常数

qq_*表示为当前功能是否启用,启用为1,禁用为0,具体如下图:

125740

转化为向量:

125740

拉格朗日插值,把向量转为多项式

这里对 a=(30,41,52,93)a = (3_0,4_1,5_2,9_3) 进行插值,转换为坐标则为 (0,3),(1,4),(2,5),(3,9)(0,3),(1,4),(2,5),(3,9),最终得到多项式 12x332x2+2x+3\frac{1}{2}x^3 - \frac{3}{2}x^2 + 2x + 3

具体参照之前的介绍

125740

单位根

定义:对xn=1x^n = 1 ,在复数意义的解下是 nn 次复根,这样的解有 nn 个,则称为nn次单位根或单位复根,nn 要大于等于约束向量的长度。

在当前的例子中向量长度为4。

寻找单位根

上面这里提到 ind(G1)=17ind(G_1) = 17,则显然 F17F101\mathbb{F}_{17} \in \mathbb{F}_{101},可以在 F17\mathbb{F}_{17} 中寻找单位根:

125740

计算陪集

对于上面的单位根 HHF17\mathbb{F}_{17} 中,有如下元素不重复的陪集:

k1=2,k1H={2,8,15,9}k_1 = 2, k_1H = \{2,8,15,9\}

k2=3,k2H={3,12,14,5}k_2 = 3, k_2H = \{3,12,14,5\}

拷贝约束

由于需要构建 x_* 到 a_*,b_*,c_* 的映射关系,这里需要添加拷贝约束:

125740

还需要嵌入到多项式中:

125740

具体看Code

承诺

为了简化表示,以下用 [a]1[a]_1 表示 aG1aG_1,角标省略默认为 G1G_1,对于双线性配对容易得到分配率:

([a]1+[b]1)[c]2=[a]1[c]2+[b]1[c]2([a]_1 + [b]_1) \cdot [c]_2 = [a]_1 \cdot [c]_2 + [b]_1 \cdot [c]_2

Stage 1 :承诺a,b,c

对于在单位根中的群 ZH(x)=x41Z_H(x)=x^4-1,我们有:

a(x)=(b1x+b2)ZH(x)+fa(x)b(x)=(b3x+b4)ZH(x)+fb(x)c(x)=(b5x+b6)ZH(x)+fc(x)\begin{aligned} a(x) = (b_1x+b_2)\cdot Z_H(x) + f_a(x)\\ b(x) = (b_3x+b_4)\cdot Z_H(x) + f_b(x) \\ c(x) = (b_5x+b_6)\cdot Z_H(x) + f_c(x) \\ \end{aligned}

F17\mathbb{F}_17 上产生随机数:

(b1,b2,b3,b4,b5,b6)=(7,4,11,12,16,2)(b_1,b_2,b_3,b_4,b_5,b_6)=(7,4,11,12,16,2)

易得:

a(x)=14+6x+3x2+3x3+4x4+7x5b(x)=12+9x+14x2+13x3+12x4+11x5c(x)=4+6x+11x2+4x3+2x4+16x5\begin{aligned} & \quad \quad \quad a(x)=14+6x+3x^2+3x^3+4x^4+7x^5\\ & \quad \quad \quad b(x)=12+9x+14x^2+13x^3+12x^4+11x^5\\ & \quad \quad \quad c(x)=4+6x+11x^2+4x^3+2x^4+16x^5\\ \end{aligned}

然后使用SRS进行承诺:

x=sx = s

[a(x)]=[a(x)](1,2)=(91,66)[a(x)] =[a(x)] \cdot (1,2) =(91,66)

[b(x)]=(26,45)[b(x)] = (26,45)

[c(x)]=(91,35)[c(x)] = (91,35)

这里是和基点 G1=(1,2)G_1=(1,2) 相乘

Sage 2 : 承诺 z(x)z(x)

产生随机数:(b7,b8,b9)=(14,11,7)F17(b_7,b_8,b_9)=(14,11,7) \in\mathbb{F}_{17}

获得挑战:(β,γ)=(12,13)F17(\beta,\gamma)=(12,13)\in\mathbb{F}_{17}

计算 z(x)z(x)

z(x)=(b7x2+b8x+b9)ZH(x)+acc(x)z(x)=(b_7x^2+b_8x+b_9)\cdot Z_H(x) + acc(x)

acc0=1acc_0 = 1

acci=acci1(ai+βωi1+γ)(bi+βk1ωi1+γ)(ci+βk2ωi1+γ)(ai+βSσ1(ωi1)+γ)(bi+βSσ2(ωi1)+γ)(ci+βSσ3(ωi1)+γ)acc_i = acc_{i-1}\frac{(a_i+\beta\omega^{i-1}+\gamma)(b_i+\beta k_1\omega^{i-1}+\gamma)(c_i+\beta k_2\omega^{i-1}+\gamma)}{(a_i+\beta S_{\sigma_1}(\omega^{i-1})+\gamma)(b_i+\beta S_{\sigma_2}(\omega^{i-1})+\gamma)(c_i+\beta S_{\sigma_3}(\omega^{i-1})+\gamma)}

acc1=1(3+121+13)(3+1221+13)(9+1231+13)(3+122+13)(3+121+13)(9+1213+13)=11676118=3acc_1 = 1\cdot\frac{(3+12*1+13)(3+12*2*1+13)(9+12*3*1+13)}{(3+12*2+13)(3+12*1+13)(9+12*13+13)}=\frac{11\cdot 6\cdot 7}{6\cdot 11\cdot 8}=3

acc2=3(4+124+13)(4+1224+13)(16+1234+13)(4+128+13)(4+124+13)(16+129+13)=31411311141=9acc_2=3\cdot\frac{(4+12*4+13)(4+12*2*4+13)(16+12*3*4+13)}{(4+12*8+13)(4+12*4+13)(16+12*9+13)}=3\cdot\frac{14\cdot 11\cdot 3}{11\cdot 14\cdot 1}=9

acc2=9(5+1216+13)(5+12216+13)(25+12316+13)(5+1215+13)(5+1216+13)(25+125+13)=9611211613=4acc_2=9\frac{(5+12*16+13)(5+12*2*16+13)(25+12*3*16+13)}{(5+12*15+13)(5+12*16+13)(25+12*5+13)}=9\cdot\frac{6\cdot 11\cdot 2}{11\cdot 6\cdot 13}=4

acc(x)=16x+5x2+14x3acc(x) = 16x+5x^2+14x^3

z(x)=(14x2+11x+7)(x41)+16x+5x2+14x3=10+5x+8x2+14x3+7x4+11x5+14x6z(x) = (14x^2+11x+7)(x^4-1)+16x+5x^2+14x^3 = 10+5x+8x^2+14x^3+7x^4+11x^5+14x^6

[z(x)]1=[z(x)](1,2)=(32,59)[z(x)]_1 = [z(x)]*(1,2)= (32,59)

Stage 3 : 计算商多项式 q(α)q(\alpha) 与承诺 tt

α=15F17\alpha=15\in\mathbb{F}_{17}

t(x)=(a(x)b(x)qM(x)+a(x)qL(x)+b(x)qR(x)+c(x)qO(x)+PI(x)+qC(x))1ZH(x) t(x) = (a(x)b(x)q_M(x)+a(x)q_L(x)+b(x)q_R(x)+c(x)q_O(x)+PI(x)+q_C(x))\frac{1}{Z_H(x)} +(a(x)+βx+γ)(b(x)+βk1x+γ)(c(x)+βk2x+γ)z(x)αZH(x) +(a(x)+\beta x+\gamma)(b(x)+\beta k_1 x+\gamma)(c(x)+\beta k_2 x+\gamma)z(x)\frac{\alpha}{Z_H(x)} (a(x)+βSσ1(x)+γ)(b(x)+βSσ2(x)+γ)(c(x)+βSσ2(x)+γ)z(ωx)αZH(x) -(a(x)+\beta S_{\sigma_1}(x)+\gamma)(b(x)+\beta S_{\sigma_2}(x)+\gamma)(c(x)+\beta S_{\sigma_2}(x)+\gamma)z(\omega x)\frac{\alpha}{Z_H(x)} +(z(x)1)L1(x)α2ZH(x) +(z(x)-1)L_1(x)\frac{\alpha^2}{Z_H(x)}

然后将多项式分割为degree<n+2degree <n+2的多项式 tlo(x),tmid(x),thi(x)t_{lo}(x), t_{mid}(x), t_{hi}(x)nn 是指电路门数量,或者说向量长度,在这里 n=4n=4 其中:

t(x)=tlo(x)+tmid(x)+thi(x)t(x)=t_{lo}(x) + t_{mid}(x)+t_{hi}(x)

然后输出 [tlo(x)],[tmid(x)],[thi(x)][t_{lo}(x)], [t_{mid}(x)], [t_{hi}(x)],既将 x=sx=s 代入并承诺到 G1G_1

我们有:

t(x)=11x17+7x16+2x15+16x14+6x13+ t(x)=11x^{17} + 7x^{16} + 2x^{15} + 16x^{14} + 6*x^{13} + 15x12+x11+10x10+2x9+x8+8x7+13x6+13x5+9x3+13x2+16x+11 15x^{12} + x^{11} + 10x^{10} + 2x^9 + x^8 + 8x^7 + 13x^6 + 13x^5 + 9x^3 + 13x^2 + 16x + 11

tlo=11+16x+13x2+9x3+13x5 t_{lo}=11+16x+13x^2+9x^3+13x^5

tmid=13+8x+x2+2x3+10x4+x5 t_{mid}=13+8x+x^2+2x^3+10x^4+x^5

thi=15+6x+16x2+2x3+7x4+11x5 t_{hi}=15+6x+16x^2+2x^3+7x^4+11x^5

然后得到 Commit:

[tlo]1=(12,32)[t_{lo}]_1=(12,32)

[tmid]1=(26,45)[t_{mid}]_1=(26,45)

[thi]1=(91,66)[t_{hi}]_1=(91,66)

Stage 4 : 线性化,计算评估点 ζ\zeta

ζ=5F19\zeta=5\in\mathbb{F}_{19}

计算:

a¯=a(ζ),b¯=b(ζ),c¯=c(ζ) \bar{a}=a(\zeta),\bar{b}=b(\zeta),\bar{c}=c(\zeta) Sσ1¯=Sσ1(ζ),Sσ2¯=Sσ2(ζ) \bar{S_{\sigma_1}}=S_{\sigma_1}(\zeta), \bar{S_{\sigma_2}}=S_{\sigma_2}(\zeta) t¯=t(ζ) \bar{t}=t(\zeta) zω¯=z(ωζ) \bar{z_{\omega}}=z(\omega\zeta)

计算 r(x)r(x):

r(x)=a¯b¯qM(x)+a¯qL(x)+b¯qR(x)+c¯qO(x)+qC(x) r(x)=\bar{a}\bar{b}q_M(x)+\bar{a}q_L(x)+\bar{b}q_R(x)+\bar{c}q_O(x)+q_C(x) +α(a¯+βζ+γ)(b¯+βk1ζ+γ)(c¯+βk2ζ+γ)z(x) +\alpha(\bar{a}+\beta\zeta+\gamma)(\bar{b}+\beta k_1\zeta+\gamma)(\bar{c}+\beta k_2\zeta+\gamma)z(x) α(a¯+βSσ1¯+γ)(b¯+βSσ2¯+γ)βzω¯Sσ3(x) -\alpha(\bar{a}+\beta\bar{S_{\sigma_1}}+\gamma)(\bar{b}+\beta\bar{S_{\sigma_2}}+\gamma)\beta\bar{z_{\omega}} S_{\sigma_3}(x) +α2z(x)L1(ζ) +\alpha^2z(x)L_1(\zeta)

然后计算 [r(s)]1[r(s)]_1:

The definition of r(x)r(x) here is not same as in plonk paper, where we removed all the constant terms when we do linearization. This can save one verifier scalar multiplication.

最后计算线性评估点:r¯=r(ζ)\bar{r}=r(\zeta),输出

a¯,b¯,c¯,Sσ1¯,Sσ2¯,zω¯,t¯,r¯\bar{a},\bar{b},\bar{c},\bar{S_{\sigma_1}},\bar{S_{\sigma_2}},\bar{z_{\omega}},\bar{t},\bar{r}

a¯=a(5)=15,b¯=13,c¯=5,Sσ1¯=1, \bar{a}=a(5)=15,\bar{b}=13,\bar{c}=5,\bar{S_{\sigma_1}}=1, Sσ2¯=12,t¯=1,zω¯=15 \bar{S_{\sigma_2}}=12,\bar{t}=1,\bar{z_{\omega}}=15 r(x)=16x+9x2+13x3+8x4+15x5+16x6, r(x)= 16x+9x^2+13x^3+8x^4+15x^5+16x^6, r¯=15 \bar{r}=15

Stage 5 : 计算公开多项式承诺

Wζ(x)=1xζ[tlo(x)+ζn+2tmid(x)+ζ2n+4thi(x)t¯+v(r(x)r¯)+v2(a(x)a¯)+v3(b(x)b¯)+v4(c(x)c¯)+v5(Sσ1(x)Sσ1¯)+v6(Sσ2(x)Sσ2¯)]W_{\zeta}(x) = \begin{matrix} \frac{1}{x-\zeta} \end{matrix}\cdot \begin{bmatrix} t_{lo}(x)+\zeta^{n+2}t_{mid}(x)+\zeta^{2n+4}t_{hi}(x)-\bar{t}\\ +v(r(x) - \bar{r})\\ +v^2(a(x) - \bar{a})\\ +v^3(b(x) - \bar{b})\\ +v^4(c(x) - \bar{c})\\ +v^5(S_{\sigma_1}(x) - \bar{S_{\sigma_1}})\\ +v^6(S_{\sigma_2}(x) - \bar{S_{\sigma_2}})\\ \end{bmatrix}

Wζω(x)=z(x)zω¯xζωW_{\zeta\omega}(x)=\frac{z(x)-\bar{z_{\omega}}}{x-\zeta\omega}

输出:[Wζ(x)]1,[Wζω(x)]1[W_{\zeta}(x)]_1,[W_{\zeta\omega}(x)]_1

给定 ζ=5\zeta=5,有:[Wζ(x)]1=(91,35),[Wζω(x)]1=(65,98)[W_{\zeta}(x)]_1=(91,35),[W_{\zeta\omega}(x)]_1=(65,98)

证据输出

π=([a],[b],[c],[z],[tlo],[tmid],[thi],[Wζ],[Wζω]\pi=([a],[b],[c],[z],[t_{lo}],[t_{mid}],[t_{hi}],[W_{\zeta}],[W_{\zeta\omega}] a¯,b¯,c¯,Sσ1¯,Sσ2¯,zω¯,r¯) \bar{a},\bar{b},\bar{c},\bar{S_{\sigma_1}},\bar{S_{\sigma_2}},\bar{z_{\omega}},\bar{r})

π=((91,66),(26,45),(91,35),(32,59),(12,32),(26,45),(91,66),\pi=((91,66),(26,45),(91,35),(32,59),(12,32),(26,45),(91,66),(91,35),(65,98),15,13,5,1,12,15,15)(91,35),(65,98),15,13,5,1,12,15,15)

总共16个元素,9个G1G_1上的点,7个Fp\mathbb{F}_p上的标量

验证

SRS预处理

[qM]=(12,69)[qL]=(32,42)[qR]=(32,42)[qO]=(1,99)[qC]=[sσ1]=(68,74)[sσ2]=(65,3)[sσ3]=(18,49)\begin{aligned} & [q_M]=(12,69)\\ & [q_L]=(32,42) \\ & [q_R]= (32,42)\\ & [q_O]=(1,99)\\ & [q_C]= \infty\\ & [s_{\sigma_1}]=(68,74)\\ & [s_{\sigma_2}]= (65,3)\\ & [s_{\sigma_3}]= (18,49) \end{aligned}

证明步骤

  1. 检查:[a],[b],[c],[z],[tlo],[tmid],[thi],[Wζ],[Wζω]G1[a],[b],[c],[z],[t_{lo}],[t_{mid}],[t_{hi}],[W_{\zeta}],[W_{\zeta\omega}]\in G_1

  2. 检查:a¯,b¯,c¯,Sσ1¯,Sσ2¯,zω¯,r¯F17\bar{a},\bar{b},\bar{c},\bar{S_{\sigma_1}},\bar{S_{\sigma_2}},\bar{z_{\omega}},\bar{r}\in\mathbb{F}_{17}

  3. 检查:wi[l]F17w_{i\in[l]}\in \mathbb{F}_{17}

  4. 计算零多项式评估:ZH(ζ)=ζn1Z_H(\zeta)=\zeta^n-1

  5. 计算:L1(ζ)=ζn1n(ζ1)L_1(\zeta)=\frac{\zeta^n-1}{n(\zeta-1)}

  6. 计算:PI(ζ)=i[l]wiLi(ζ)PI(\zeta)=\sum_{i\in[l]}w_iL_i(\zeta)

  7. 计算商多项式评估:t¯=r¯+PI(ζ)(a¯+βSσ1¯+γ)(b¯+βSσ2¯+γ)(c¯+γ)αL1(ζ)α2ZH(ζ)\bar{t}=\frac{\bar{r}+PI(\zeta)-(\bar{a}+\beta\bar{S_{\sigma_1}}+\gamma)(\bar{b}+\beta\bar{S_{\sigma_2}}+\gamma)(\bar{c}+\gamma)\alpha-L_1(\zeta)\alpha^2}{Z_H(\zeta)}

  8. 计算第一部分多项式承诺,先定义:[D]=v[r(x)]+u[z][D]=v[r(x)]+u[z],计算: [D]=a¯b¯v[qM]+a¯v[qL]+b¯v[qR]+c¯v[qO]+v[qC] [D]=\bar{a}\bar{b}v[q_M]+\bar{a}v[q_L]+\bar{b}v[q_R]+\bar{c}v[q_O]+v[q_C] +((a¯+βζ+γ)(b¯+βk1ζ+γ)(c¯+βk2ζ+γ)αv+L1(ζ)α2v+u)[z] +((\bar{a}+\beta\zeta+\gamma)(\bar{b}+\beta k_1\zeta+\gamma)(\bar{c}+\beta k_2\zeta+\gamma)\alpha v+L_1(\zeta)\alpha^2 v+u)[z] (a¯+βSσ1¯+γ)(b¯+βSσ2+γ)αvβzω¯[Sσ3] -(\bar{a}+\beta\bar{S_{\sigma_1}}+\gamma)(\bar{b}+\beta{S_{\sigma_2}}+\gamma)\alpha v\beta\bar{z_{\omega}}[S_{\sigma_3}]

  9. 计算完整批多项式承诺

[F]=[tlo]+ζn+2[tmid]+ζ2n+4[thi]+[D]+v2[a]+v3[b]+v4[c]+v5[Sσ1]+v6[Sσ2][F]=[t_{lo}]+\zeta^{n+2}[t_{mid}]+\zeta^{2n+4}[t_{hi}]+[D]+v^2[a]+v^3[b]+v^4[c]+v^5[S_{\sigma_1}]+v^6[S_{\sigma_2}]

  1. 计算群编码的批量评估 [E][E]

[E]=(t¯+vr¯+v2a¯+v3b¯+v4c¯+v5Sσ1¯+v6Sσ2¯+uzω¯)[1][E]=(\bar{t}+v\bar{r}+v^2\bar{a}+v^3\bar{b}+v^4\bar{c}+v^5\bar{S_{\sigma_1}}+v^6\bar{S_{\sigma_2}}+u\bar{z_{\omega}})\cdot[1]

  1. 验证所有的等式:

e([Wζ]+u[Wζω],[s]2)=e(ζ[Wζ]+uζω[Wζω]+[F][E],[1]2)e([W_{\zeta}]+u[W_{\zeta\omega}],[s]_2)=e(\zeta[W_{\zeta}]+u\zeta\omega[W_{\zeta\omega}]+[F]-[E],[1]_2)

Let's check steps 9 − 11 for each of the polynomials. For example the terms with 𝑢.

e(us[Wζω],1)e(uζω[Wζω]+u[z]uz(ωζ),1) e(u\cdot s\cdot [W_{\zeta\omega}],1)\doteq e(u\zeta\omega[W_{\zeta\omega}]+u[z]-uz(\omega\zeta),1)

e(u(sζω)[Wζω],1)e(u(z(s)z(ωζ),1) e(u\cdot(s-\zeta\omega) [W_{\zeta\omega}],1)\doteq e(u(z(s)-z(\omega\zeta),1) (sζω)z(s)z(ζω)sζωz(s)z(ωζ) (s-\zeta\omega)\frac{z(s)-z(\zeta\omega)}{s-\zeta\omega}\doteq z(s)-z(\omega\zeta)

Let's check r(x)r(x),here we define [Wζ]=v(r(s)r(ζ))sζ[W_{\zeta}]=\frac{v(r(s)-r(\zeta))}{s-\zeta} for simplicity:

e(s[Wζ],1)e(ζ[Wζ]+vr(s)vr¯,1) e(s\cdot[W_{\zeta}],1)\doteq e(\zeta[W_{\zeta}]+v\cdot r(s)-v\bar{r},1) e((sζ)v(r(s)r(ζ))sζ,1)e(v(r(s)r(ζ)),1) e((s-\zeta)\cdot\frac{v(r(s)-r(\zeta))}{s-\zeta},1)\doteq e(v(r(s)-r(\zeta)),1)

Let's check t(x)t(x),here we define [Wζ]=tlo(s)+ζn+2tmid(s)+ζ2n+4thi(s)t(ζ)sζ[W_{\zeta}]=\frac{t_{lo}(s)+\zeta^{n+2}t_{mid}(s)+\zeta^{2n+4}t_{hi}(s)-t(\zeta)}{s-\zeta} for simplicity:

e((sζ)[Wζ],1)e([tlo]+ζn+2[tmid]+ζ2n+4[thi]t¯,1) e((s-\zeta)[W_{\zeta}],1)\doteq e([t_{lo}]+\zeta^{n+2}[t_{mid}]+\zeta^{2n+4}[t_{hi}]-\bar{t},1) e(tlo(s)+ζn+2tmid(s)+ζ2n+4thi(s)t(ζ),1)e(tlo(s)+ζn+2tmid(s)+ζ2n+4thi(s)t(ζ),1) e(t_{lo}(s)+\zeta^{n+2}t_{mid}(s)+\zeta^{2n+4}t_{hi}(s)-t(\zeta),1)\doteq e(t_{lo}(s)+\zeta^{n+2}t_{mid}(s)+\zeta^{2n+4}t_{hi}(s)-t(\zeta),1)

The other terms are easy to check as well.

125740

Code

Plonk-by-Hand