Zero-Knowledge Proof (ZKP) Scheme

Function-hiding functional commitment

Function-hiding functional commitment

In this page, we will review function-hiding functional commitment zero-knowledge proof (ZKP) scheme. This scheme is a tuple (Setup,,Commit,Eval)\red{(Setup,\hspace{1mm}, Commit,\hspace{1mm}Eval)}that utilizes the following three protocols:

1- A polynomial commitment scheme

PC=(PC.Setup,PC.Commit,PC.Eval,PC.Check)PC=(PC.\hspace{1mm} Setup,\hspace{1mm} PC.\hspace{1mm}Commit,\hspace{1mm} PC.\hspace{1mm}Eval,\hspace{1mm}PC.\hspace{1mm}Check),

2- A proof of function relation (PFR)

A proof of function relation (PFRPFR) π=(Pf,Vf,kf,sf,df)\pi=(P_{f}, \hspace{1mm}V_{f},\hspace{1mm}k_{f},\hspace{1mm}s_{f},\hspace{1mm}d_{f})contains kfk_fwehre is the number of rounds, sf:NN s_f:\mathbb{N}\to\mathbb{N} where that sf(i)s_f(i) is the number polynomials that the Prover PfP_fsends to the Verifier VfV_f in round ii and df:N3Nd_f:\mathbb{N}^3\to\mathbb{N} so that df(N,i,j)d_f(N,i,j) is the degree bound for jthj^{th}polynomial in round . Let NN be the maximum supported index size.

3- An algebric holographic proof (AHP)

An algebric holographic proof AHP=(EncAHP,PAHP,VAHP,kAHP,sAHP,dAHP)AHP=(Enc_{AHP},P_{AHP}, \hspace{1mm}V_{AHP},\hspace{1mm}k_{AHP},\hspace{1mm}s_{AHP},\hspace{1mm}d_{AHP}) contains kAHPk_{AHP} where is the number of rounds, sAHP:NNs_{AHP}:\mathbb{N}\to\mathbb{N} so that sAHP(i)s_{AHP}(i) is the number polynomials that the Prover PAHPP_{AHP}sends to the Verifier VAHPV_{AHP} in round ii and dAHP:N3Nd_{AHP}:\mathbb{N}^3\to\mathbb{N} so that dAHP(N,i,j)d_{AHP}(N,i,j) is the degree bound for jthj^{th} polynomial in round ii.

  • Note that sAHP(0)=sf(0)s_{AHP}(0)=s_{f}(0) and for all i[sAHP(0)]i\in [s_{AHP}(0)], dAHP(N,0,i)=df(N,0,i)d_{AHP}(N,0,i)=d_{f}(N,0,i).

We now review the three main elements in the tuple.

  • Setup(1λ,N)\red{Setup(1^{\lambda},N)}: The is function creates output pp=PC.Commit(1λ,d)pp=PC.Commit(1^{\lambda},d) where λ\lambda is security parameter and d={dAHP(N,i,j)}i[kAHP]{0},j[sAHP(i)]}{df(N,i,j)}i[kf],j[sf(i)]d= \{d_{AHP}(N,i,j)\}_{i\in [k_{AHP}]\bigcup\{0\},j\in [s_{AHP}(i)]}\}\bigcup\{d_f(N,i,j)\}_{i\in[k_f],j\in[s_f(i)]}. For example, if polynomial commitment scheme KZGKZG is used, pp=(g,gd,gd2,...,gdl)pp=(g,\hspace{1mm}g^d,\hspace{1mm}g^{d^2},...,\hspace{1mm}g^{d^l})where gg is a generator of field F\mathbb{F} with large prime order pp such that log(p)=(λ)log(p) = Ω(λ) and ll is maximum degree of polynomials that want to commit them.

  • Commit(pp,iIf,rR=RsAHP(0))\red{Commit(pp,i\in \textit{I}_f,r\in R=\mathbb{R}^{s_{AHP}(0)})}: This function contains the following steps: A- Parse r=(r1,...,rsAHP(0))r=(r_1,...,r_{s_{AHP}(0)}) and pp=(ck,vk)pp=(ck,vk). B- Set o=EncAHP(i)\overrightarrow{o}=Enc_{AHP}(i).

Note that If\textit{I}_f is a functional set that contains triple matrices i=(A,B,C)(Fn×n)3i=(A,B,C)\in (\mathbb{F}^{n\times n})^3 so that for all input xXx\in X, there exists a unique yYy\in Y and a witness (intermediate) ωW\omega \in W such that AzoBz=CzAz\hspace{1mm} o\hspace{1mm} Bz=Cz where z=(x,w,y)z=(x,w,y). Note that a triple of matrices (A,B,C)(Fn×n)3(A,B,C)\in (\mathbb{F}^{n\times n})^3 is a functional triple if and only if AA and BB are tt-strictly lower triangular matrices (tSLT)(t-SLT) and CC is tt-diagonal matrix (tDiag)(t-Diag). Here, tt is the size of the input. Note that the Prover obtains tSLTt-SLT matrices AA, BB and tDiagt-Diag matrix CC for the arithmetic circuit based on the following construction: 1- Initialize three zero square matrices A,B,CA, B, C over F\mathbb{F} of order ng+ni+1n_g +n_i + 1 where ngn_g is the number of gates and nin_i is the number of inputs. Here, the gate ii is corresponding to tuple (li,ri,si)(l_i, r_i, s_i) where lil_i and rir_i are left and right input wire indices, respectively and sis_i is gate selector, addition or multiplication. Also in the following construction nin_i is the number of inputs. 2- For i=0..,ng1: i=0.., n_g-1: a)a) C1+ni+i,1+ni+i=1C_{1+n_i+i, 1+n_i+i}=1 b)b) if si s_i is addition - A1+ni+i,0=1A_{1+n_i+i,0}=1 - B1+ni+i,li=1B_{1+n_i+i,l_i}=1 ( if the left input is a number, value of input is placed ) - B1+ni+i,ri=1B_{1+n_i+i,r_i}=1 ( if the right input is a number, value of input is placed) c)c) If sis_i is multiplication - A1+ni+i,li=1A_{1+n_i+i,l_i}=1 ( if the left input is a number, value of input is placed) - B1+ni+i,ri=1B_{1+n_i+i,r_i}=1 ( if the right input is a number, value of input is placed) 3- Outputs matrices A,BA, B and CC. Note that the Prover encodes each matrix A,BA, B and CC by three polynomials such that encodes matrix MM, M{A,B,C}M\in\{A, B, C\}, by polynomials rowM(x)row_{M}(x), colM(x)col_M(x) and valM(x)val_M(x) so that rowM(γi)=ωrirow_M(\gamma^i)=\omega^{r_i}, colM(γi)=ωcicol_M(\gamma^i)=\omega^{c_i} and valM(γi)=vival_M(\gamma^i)=v_i for i{0,1,2,..,m1}i\in\{0,1,2,..,m-1\} where γ\gamma is a generator of multiplicative subgroup K\mathbb{K}of F\mathbb{F} of order mm (K=<γ>\mathbb{K}=<\gamma> and K=m|\mathbb{K}|=m) and ω\omega is a generator of multiplicative subgroup H\mathbb{H} of F\mathbb{F} of order n (H=<ω>\mathbb{H}=<\omega> and H=n|\mathbb{H}|=n). Also mm is maximum of the number of nonzero entries in the matrix MM. nn is the order of the matrix. Also ri,ci{0,1,...,n1}r_i,c_i\in \{0,1,...,n-1\} and viFv_i\in \mathbb{F} are row number, column number and value of ithi^{th} nonzero entry, respectively. Therefore O=(rowA(x),colA(x),valA(x),rowB(x),colB(x),valB(x),rowC(x),colC(x),valC(x))\overrightarrow{O}=(row_A(x),col_A(x),val_A(x),row_B(x),col_B(x),val_B(x),row_C(x),col_C(x),val_C(x)). C- For isAHP(0)i\in s_{AHP}(0), cO0,i=PC.Commit(ck,O[i],dAHP(N,0,i),rO0,i)c_{O_{0,i}}=PC.Commit(ck,\overrightarrow{O}[i],d_{AHP}(N,0,i),r_{O_{0,i}}).

For example, if the polynomial commitment schemeKZGKZG is used, cO0,i=i{0,1,...,degO[i]}(gdi)aic_{O_{0,i}}=\prod_{i\in\{0,1,...,deg_{\overrightarrow{O}[i]}\}}(g^{d^i})^{a_i} where aia_i is coefficient of xix^i in polynomial O0,iO_{0,i}.

We now review the last step for the commitment phase D- Output c=(cO0,1,cO0,2,...,cO0,sAHP(0))c=(c_{O_{0,1}},c_{O_{0,2}},...,c_{O_{0,s_{AHP}(0)}}).

  • Eval(PE(pp,i,r,x,y),VE(pp,c,x,y))\red{Eval(P_E(pp,i,r,x,y),V_E(pp,c,x,y))} .\huge{\bold{.}} The Prover PEP_E and the Verifier VEV_E parse pp=(ck,vk)pp=(ck,vk). .\huge{\bold{.}} The Prover PEP_E computes o=EncAHP(i)\overrightarrow{o}=Enc_{AHP}(i). .\huge{\bold{.}} The Prover PEP_E and the Verifier VEV_E run polynomial interactive oracle proofs (pioppiop) , AHPAHP or PFRPFR.

A- PFRPFR commitment checking The Prover PfP_f and the Verifier VfV_f run polynomial oracle proof PFRPFR <Pf(O,,i),VfO()><P_f(\overrightarrow{O},,i),V_f^{\overrightarrow{O}}()>. This polynomial oracle proof is described in Supplement1\red{ Supplement \hspace{1mm}1}. Note that in this polynomial oracle proof, the Prover wants to prove three following claims: 1.1. O[1]=rowA(x)\overrightarrow{O}[1]=row_A(x) , O[2]=colA(x)\overrightarrow{O}[2]=col_A(x) andO[3]=valA(x)\overrightarrow{O}[3]=val_A(x)is encoding of a tSLTt-SLT matrix. 2.2. O[4]=rowB(x)\overrightarrow{O}[4]=row_B(x) , O[5]=colB(x)\overrightarrow{O}[5]=col_B(x) andO[6]=valB(x)\overrightarrow{O}[6]=val_B(x)is encoding of a tSLTt-SLT matrix. 3.3. O[7]=rowC(x)\overrightarrow{O}[7]=row_C(x) , O[8]=colC(x)\overrightarrow{O}[8]=col_C(x) andO[9]=valC(x)\overrightarrow{O}[9]=val_C(x)is encoding of a tDiagt-Diag matrix.

B- PFRPFR andAHPAHP proof generating and verifying The Prover PAHPP_{AHP} and the Verifier VAHPV_{AHP} run polynomial oracle proof AHPAHP <PAHP(i,(x,y),w),VAHPO((x,y))><P_{AHP}(i,(x,y),w),V_{AHP}^{\overrightarrow{O}}((x,y))>. Note that in this polynomial oracle proof, by keeping the function (A,B,C)(A,B,C) hidden, the Prover wants to prove that input xx gives output yy.

.\huge{\bold{.}} For all i[kpiop]i\in[k_{piop}] and jspiop(i)j\in s_{piop}(i) when PpiopP_{piop} sends oracle polynomial oi,jo_{i,j} . PEP_E computes and sends coi,j=PC.Commit(ck,oi,j,dpiop(N,i,j),roi,j)c_{o_{i,j}}=PC.Commit(ck,o_{i,j},d_{piop}(N,i,j),r_{o_{i,j}})

.\huge{\bold{.}} When VpiopV_{piop} derives an oracle oo that is a linear combination of other oracles, VEV_E derives coc_o through the PCSPCS homomorphism. PEP_E similarly derives the commitment randomness ror_o.

.\huge{\bold{.}}When VpiopV_{piop} queries oracle polynomial oo with degree bound dod_oat zFz\in \mathbb{F} to receive y=o(z)y=o(z) : .\huge{.} VEV_E sends zz. .\huge{.} PEP_E retrieves ror_o, then computes π=PC.Eval(ck,o,do,ro,z)\pi=PC.Eval(ck,o,d_o,r_o,z)and sends π\pi and y=o(z)y=o(z). For example, if polynomial commitment scheme KZGKZG is used, π=gq(d)\pi=g^{q(d)} where q(x)=o(x)yxzq(x)=\frac{o(x)-y}{x-z}.

.\huge{.} PEP_E retrieves ror_o, then computes π=PC.Eval(ck,o,do,ro,z)\pi=PC.Eval(ck,o,d_o,r_o,z)and sends π\pi and y=o(z)y=o(z).

For example, if polynomial commitment scheme KZGKZG is used, π=gq(d)\pi=g^{q(d)} where q(x)=o(x)yxzq(x)=\frac{o(x)-y}{x-z}.

.\huge{.}VEV_E retrieves coc_o and asserts 1=PC.Check(vk,co,do,z,y,π)1=PC.Check(vk,c_o,d_o,z,y,\pi). For example, if polynomial commitment scheme KZGKZG is used, π\pi check as following: e(cogy,g)=e(π,gdgz)e(\frac{c_o}{g^y},g)=e(\pi,\frac{g^d}{g^z}) , e(go(d)y,g)=e(gq(d),gdz)e(g^{o(d)-y},g)=e(g^{q(d)},g^{d-z}), e(g,g)o(d)y=e(g,g)q(d)(dz)e(g,g)^{o(d)-y}=e(g,g)^{q(d)(d-z)} and o(d)y=q(d)(dz)o(d)-y=q(d)(d-z).

Supplement1\red{Supplement\hspace{1mm}1}

polyIOP PFRPFR includes: 1)1)To prove strictly lower triangularity of the matrices AA and BB must prove that logωrowM(γi)>logωcolM(γi)\log^{row_M(\gamma^i)}_{\omega}> \log^{col_M(\gamma^i)}_{\omega} for i{0,1,..,m1}i \in \{0,1,..,m-1\}and M{A,B}M\in\{A,B\}. This does by Discretelogcomparisonprotocol\red{Discrete-log\hspace{1mm} comparison\hspace{1mm} protocol}. 2)2) To prove the first tt rows of AA and BB are all zeros must prove that rowM(K){ωt,ωt+1,...,ωn1}row_M(\mathbb{K})\subseteq\{\omega^t,\omega^{t+1},...,\omega^{n-1}\}. This does by subsetoverKprotocol\red{subset\hspace{1mm} over \hspace{1mm}\mathbb{K}\hspace{1mm} protocol}. 3)3) To prove the diagonality of the matrix CC must prove that seqK(rowC)=seqK(colC)seq_{\mathbb{K}}(row_C)=seq_{\mathbb{K}}(col_C)where seqK(h)=(h(k):kK)seq_{\mathbb{K}}(h)=(h(k):k\in\mathbb{K}). This does by Geometricsequence\red{Geometric\hspace{1mm} sequence} and zerooverKprotocols\red{zero\hspace{1mm}over\hspace{1mm}\mathbb{K}\hspace{1mm}protocols}. 4)4) To prove the first tt rows of CC are all zeros must prove that there is a vector v(F)ntv\in(\mathbb{F^*})^{n-t} so that seqK(valC)=v0seq_{\mathbb{K}}(val_C)=\vec{v}||\vec{0} . This does by Geometricsequence\red{Geometric\hspace{1mm} sequence} and zerooverKprotocols\red{zero\hspace{1mm}over\hspace{1mm}\mathbb{K}\hspace{1mm}protocols}.

33 and 44 result that all the non-zero entries of the matrix CC are in the positions (ωt,ωt),(ωt+1,ωt+1),...,(ωn,ωn)(\omega^t,\omega^t),(\omega^{t+1},\omega^{t+1}),...,(\omega^n,\omega^n).

Supplement2\red{Supplement\hspace{1mm}2}

polyIOP AHPAHP includes:

Example

40380552: 02f407b3 mul a1,s0,5 4038055e: 004c addi a1,s0,11 40380552: 02f407b3 mul a1,s0,26

LD R1, 4 Mul R1, 5 => Gate 1, p=181 Add R1, 11 => Gate 2, p=181 Mul R1, 26 (== Div R1, 7) => Gate 3, p=181

R1(1)4=0R_1^{(1)}-4=0 R1(2)5R1(1)=0R_1^{(2)}-5R_1^{(1)}=0 R1(3)R1(2)11=0R_1^{(3)}-R_1^{(2)}-11=0 R1(4)R1(3)7=0R_1^{(4)}-\frac{R_1^{(3)}}{7}=0

  • Setup(1λ,N)\red{Setup(1^{\lambda},N)}:

Suppose d=111213119d=111213119. Run PC.Setup(1λ,d)PC.\hspace{1mm}Setup(1^{\lambda},d) based on KZGKZG as following: PC.Setup(1λ,d)PC.\hspace{1mm}Setup(1^{\lambda},d) outputs pp=(g,gd,gd2,...,gdl)pp=(g,\hspace{1mm}g^d,\hspace{1mm}g^{d^2},...,\hspace{1mm}g^{d^l}) where ll is the maximum degree of polynomials that are used in scheme . Let the computation be done in F\mathbb{F} of order p=181p=181. A generator of F\mathbb{F} is g=2g=2, therefore pp=(g,gd,gd2,...,gdl)=(2,2111213119,...,21112131198)pp=(g,\hspace{1mm}g^d,\hspace{1mm}g^{d^2},...,\hspace{1mm}g^{d^l})=(2,2^{111213119},...,2^{111213119^8}). Because ord(2)=180ord(2)=180, then 2111213119=(2180)6178502119211966(mod181)2^{111213119}=(2^{180})^{617850}2^{119} \equiv2^{119}\equiv66(\textrm{mod}\hspace{1mm}181). Similarly, the rest of entries are computed and as a result pp=(2,66,83,91,96,24,2,66,83)pp=(2,66,83,91,96,24,2,66,83).

  • Commit(pp=(2,66,83,91,96,24,2,66,83),i=(A,B,C),rR=RsAHP(0))\red{Commit(pp=(2,66,83,91,96,24,2,66,83),i=(A,B,C),r\in R=\mathbb{R}^{s_{AHP}(0)})}:

A- Parse r=(r1,...,rsAHP(0))r=(r_1,...,r_{s_{AHP}(0)}) and pp=(ck,vk)pp=(ck,vk).

B- Set o=EncAHP(i)\overrightarrow{o}=Enc_{AHP}(i).

We consider z=(1,x,w1,w2,y)z=(1,x,w_1,w_2,y) where w1=5xw_1=5x, w2=w1+11w_2=w_1+11 and y=w27y=\frac{w_2}{7}. Therefore with input x=4x=4, z=(1,4,20,31,82)z=(1,4,20,31,82). Note that the inverse of number aa in this field is ap2(modp)a^{p-2} (\textrm{mod}\hspace{1mm}p) , so 7126(mod181)7^{-1}\equiv 26\hspace{1mm}(mod\hspace{1mm}181).

Based on Construction\blue{\bold{Construction}} obtain:

A=[0000000000010001000000010]A=\begin{bmatrix} 0&0&0&0&0\\ 0&0&0&0&0\\ 0&1&0&0&0\\ 1&0&0&0&0\\ 0&0&0&1&0\\ \end{bmatrix}, B=[000000000050000110100260000]B=\begin{bmatrix}0&0&0&0&0\\0&0&0&0&0\\5&0&0&0&0\\11&0&1&0&0\\26&0&0&0&0\\\end{bmatrix}and C=[0000000000001000001000001]C=\begin{bmatrix}0&0&0&0&0\\0&0&0&0&0\\0&0&1&0&0\\0&0&0&1&0\\0&0&0&0&1\\\end{bmatrix}.

It can be seen that matrices AA and BB are 2SLT2-SLT and matrix CC is 2Diag2-Diag. Also AzoBz=[00203182]=CzAz\hspace{1mm}o\hspace{1mm}Bz=\begin{bmatrix}0\\0\\20\\31\\82\\\end{bmatrix}=Cz.

To encode matrix AA, consider multiplicative subgroup H\mathbb{H} of order n=ng+ni+1=5n=n_g+n_i+1=5 with generator ω=23659(mod181)\omega=2^{36}\equiv 59 (\textrm{mod}\hspace{1mm}181). Note that if gg is a generator of field F\mathbb{F} of order pp, then gp1ng^{\frac{p-1}{n}}is a generator of a multiplicative subgroup of it of order nn. Therefore H={1,ω,ω2,ω3,ω4}={1,59,42,125,135}\mathbb{H}=\{1,\omega,\omega^2,\omega^3,\omega^4\}=\{1,59,42,125,135\}.

Also, consider multiplicative subgroup K\mathbb{K} of order m=n2n2t2t2=9m=\frac{n^2-n}{2}-\frac{t^2-t}{2}=9 where t=ni+1t=n_i+1 with generator γ=gp1m=22043(mod181)\gamma=g^{\frac{p-1}{m}}=2^{20}\equiv43(\textrm{mod}\hspace{1mm}181). Therefore K={1,γ,γ2,...,γ8}={1,43,39,48,73,62,132,65,80}\mathbb{K}=\{1,\gamma,\gamma^2,...,\gamma^8\}=\{1,43,39,48,73,62,132,65,80\}.

First, build the polynomial rowA(x)row_A(x). Since matrix AA has three non-zero entries the first of them is in the second row, so c0=2c_0=2 and rowA(γ0)=ω2row_A(\gamma^0)=\omega^2 , note that rows numbered of zero, the second is in the third row, so c1=3c_1=3 and rowA(γ1)=ω3row_A(\gamma^1)=\omega^3 and the third is in the fourth row, so c2=4c_2=4 and rowA(γ2)=ω4row_A(\gamma^2)=\omega^4.

According to the values ​​defined for γ\gamma and ω\omega, we have rowA(1)=42row_A(1)=42, rowA(43)=125row_A(43)=125 and rowA(39)=135row_A(39)=135. Therefore based on Lagrange polynomials, have rowA(x)=i=13yiLi(x)row_A(x)=\sum_{i=1}^{3}y_iL_i(x), sorowA(x)=42L1(x)+125L2(x)+135L3(x)row_A(x)=42L_1(x)+125L_2(x)+135L_3(x), where L1(x)=(x43)(x39)(143)(139)=(x43)(x39)(42)(38)L_1(x)=\frac{(x-43)(x-39)}{(1-43)(1-39)}=\frac{(x-43)(x-39)}{(-42)(-38)}. Now, since 42139(mod181)-42\equiv139\hspace{1mm}(\textrm{mod}\hspace{1mm}181), 38143(mod181)-38\equiv143\hspace{1mm}(\textrm{mod}\hspace{1mm}181), 43138(mod181)-43\equiv138\hspace{1mm}(\textrm{mod}\hspace{1mm}181)and 39142(mod181)-39\equiv142\hspace{1mm}(\textrm{mod}\hspace{1mm}181), therefore L1(x)=(x+138)(x+142)(139)(143)L_1(x)=\frac{(x+138)(x+142)}{(139)(143)}and since (139)(143)148(mod181)(139)(143)\equiv 148\hspace{1mm}(\textrm{mod}\hspace{1mm}181)and 1481170(mod181)148^{-1}\equiv 170\hspace{1mm}(\textrm{mod}\hspace{1mm}181), have L1(x)=170(x+138)(x+142)=170x2+178x+15L_1(x)=170(x+138)(x+142)=170x^2+178x+15. We get in a similar way that L2(x)=167x2+17x+178L_2(x)=167x^2+17x+178 and L3(x)=25x2+167x+170L_3(x)=25x^2+167x+170. Therefore rowA(x)=77x2+109x+37row_A(x)=77x^2+109x+37.

Now, we obtain colA(x)col_A(x). Since matrix AA has three non-zero entries the first of them is in the first column, so r0=1r_0=1 and colA(γ0)=ω1col_A(\gamma^0)=\omega^1 , note that columns numbered of zero, the second is in the zero column, so r1=0r_1=0 and colA(γ1)=ω0col_A(\gamma^1)=\omega^0 and the third is in the third column, so r2=3r_2=3 and colA(γ2)=ω3col_A(\gamma^2)=\omega^3. Therefore colA(1)=59col_A(1)=59, colA(43)=1col_A(43)=1 and colA(39)=125col_A(39)=125. So colA(x)=59L1(x)+L2(x)+125L3(x)=109x2+81x+50col_A(x)=59L_1(x)+L_2(x)+125L_3(x)=109x^2+81x+50.

Now, we obtain valA(x)val_A(x). Since matrix AA has three non-zero entries such that the value of all of them is one, therefore v0=v1=v2=1v_0=v_1=v_2=1. So, valA(x)=L1(x)+L2(x)+L3(x)=1val_A(x)=L_1(x)+L_2(x)+L_3(x)=1.

Therefore, the matrix AA encodes by rowA(x)=77x2+109x+37row_A(x)=77x^2+109x+37, colA(x)=109x2+81x+50col_A(x)=109x^2+81x+50 and valA(x)=1val_A(x)=1.

Now, encode the matrix BB. First, build the polynomial rowB(x)row_B(x). Since matrix BB has four non-zero entries such that the first of them is in the second row, so c0=2c_0=2 and rowB(γ0)=ω2row_B(\gamma^0)=\omega^2 . The second and the third are in the third row, so c1=c2=3c_1=c_2=3 and rowB(γ1)=rowB(γ2)=ω3row_B(\gamma^1)=row_B(\gamma^2)=\omega^3 and the fourth is in the fourth row, so c3=4c_3=4 and rowB(γ3)=ω4row_B(\gamma^3)=\omega^4. Therefore, rowB(1)=42row_B(1)=42, rowB(43)=125row_B(43)=125, rowB(39)=125row_B(39)=125 and rowB(48)=135row_B(48)=135. So rowB(x)=42L1(x)+125L2(x)+125L3(x)+135L4(x)row_B(x)=42L_1(x)+125L_2(x)+125L_3(x)+135L_4(x) where L1(x)=(x43)(x39)(x48)(143)(139)(148)=(x+138)(x+142)(x+133)(139)(143)(134)=(x+138)(x+142)(x+133)103L_1(x)=\frac{(x-43)(x-39)(x-48)}{(1-43)(1-39)(1-48)}=\frac{(x+138)(x+142)(x+133)}{(139)(143)(134)}=\frac{(x+138)(x+142)(x+133)}{103}. Since 103158(mod181)103^{-1}\equiv58\hspace{1mm}(\textrm{mod}\hspace{1mm}181), so L1(x)=58(x+138)(x+142)(x+133)=58x3+62x2+116x+127L_1(x)=58(x+138)(x+142)(x+133)=58x^3+62x^2+116x+127. We get in a similar way that L2(x)=39x3+7x2+19x+116L_2(x)=39x^3+7x^2+19x+116, L3(x)=138x3+155x2+7x+62L_3(x)=138x^3+155x^2+7x+62 and L4(x)=127x3+138x2+39x+58L_4(x)=127x^3+138x^2+39x+58. Therefore rowB(x)=76x3+35x2+174x+119row_B(x)=76x^3+35x^2+174x+119.

Now, we obtain colB(x)col_B(x). Since matrix BB has four non-zero entries that the first, second and fourth of them are in zero column, so r0=r1=r3=0r_0=r_1=r_3=0 and colB(γ0)=colB(γ1)=colB(γ3)=ω0col_B(\gamma^0)=col_B(\gamma^1)=col_B(\gamma^3)=\omega^0 and the third is in the second column, so r2=2r_2=2 and colB(γ2)=ω2col_B(\gamma^2)=\omega^2 . Therefore colB(1)=1col_B(1)=1, colB(43)=1col_B(43)=1, colB(39)=42col_B(39)=42and colB(48)=1col_B(48)=1. So colB(x)=L1(x)+L2(x)+42L3(x)+L4(x)=47x3+20x2+106x+9col_B(x)=L_1(x)+L_2(x)+42L_3(x)+L_4(x)=47x^3+20x^2+106x+9.

Now, we obtain valB(x)val_B(x). Since matrix BB has four non-zero entries that value of them are 55, 1111, 11 and 2626, respectively. Therefore v0=v1=v2=1v_0=v_1=v_2=1valB(γ0)=5val_B(\gamma^0)=5, valB(γ1)=11val_B(\gamma^1)=11, valB(γ2)=1val_B(\gamma^2)=1and valB(γ3)=26val_B(\gamma^3)=26. So, valB(1)=5val_B(1)=5, valB(43)=11val_B(43)=11, valB(39)=1val_B(39)=1and valB(48)=26val_B(48)=26. Therefore valB(x)=5L1(x)+11L2(x)+L3(x)+26L4(x)=177x3+148x2+42val_B(x)=5L_1(x)+11L_2(x)+L_3(x)+26L_4(x)=177x^3+148x^2+42.

Therefore, the matrix BB encodes by rowB(x)=76x3+35x2+174x+119row_B(x)=76x^3+35x^2+174x+119, colB(x)=47x3+20x2+106x+9col_B(x)=47x^3+20x^2+106x+9 and valB(x)=177x3+148x2+42val_B(x)=177x^3+148x^2+42.

Now, build polynomial rowC(x)row_C(x). In a similar way, Since matrix CC has three non-zero entries that are in the third, fourth and fifth rows, therefore rowC(γ0)=ω2row_C(\gamma^0)=\omega^2 , rowC(γ1)=ω3row_C(\gamma^1)=\omega^3 and rowC(γ2)=ω4row_C(\gamma^2)=\omega^4. Then rowC(1)=42row_C(1)=42 , rowC(43)=125row_C(43)=125 and rowC(39)=135row_C(39)=135. SorowC(x)=42L1(x)+125L2(x)+135L3(x)row_C(x)=42L_1(x)+125L_2(x)+135L_3(x), therefore rowC(x)=77x2+109x+37row_C(x)=77x^2+109x+37.

Now, since CC is a diagonal matrix, polynomials rowC(x)row_C(x) and colC(x)col_C(x)are equal. Also, since the matrix CC has three non-zero entries such that the value of all of them is one, therefore v0=v1=v2=1v_0=v_1=v_2=1. So, valC(x)=L1(x)+L2(x)+L3(x)=1val_C(x)=L_1(x)+L_2(x)+L_3(x)=1.

Therefore, the matrix CC encodes by rowC(x)=77x2+109x+37row_C(x)=77x^2+109x+37, colC(x)=77x2+109x+37col_C(x)=77x^2+109x+37 and valC(x)=1val_C(x)=1.

Therefore encoding of i=(A,B,C)i=(A,B,C) obtain as following:

O=(rowA(x),colA(x),valA(x),rowB(x),colB(x),valB(x),rowC(x),colC(x),valC(x))\overrightarrow{O}=(row_A(x),col_A(x),val_A(x),row_B(x),col_B(x),val_B(x),row_C(x),col_C(x),val_C(x)).

C- Now, by using of KZG commitment scheme obtain commitment to each of entry O[i]=O0,i\overrightarrow{O}[i]=O_{0,i} as following:

cO0,i=i{0,1,...,degO[i]}(gdi)aic_{O_{0,i}}=\prod_{i\in\{0,1,...,deg_{\overrightarrow{O}[i]}\}}(g^{d^i})^{a_i} where aia_i is coefficient of xix^i in polynomial O0,iO_{0,i}.

Therefore

crowA(x)=i=02(gdi)ia=i=02ck(i)ai=ck(0)37ck(1)109ck(2)77=237661098377118×57×7632(mod181)c_{row_A(x)}=\prod_{i=0}^{2}(g^{d^i})^a_i=\prod_{i=0}^{2}ck(i)^{a_i}=ck(0)^{37}ck(1)^{109}ck(2)^{77}=2^{37}66^{109}83^{77}\equiv118\times 57\times76\equiv 32\hspace{1mm}(\textrm{mod}\hspace{1mm}181)

ccolA(x)=i=02(gdi)ia=i=02ck(i)ai=ck(0)50ck(1)81ck(2)109=250668183109116×31×5856(mod181)c_{col_A(x)}=\prod_{i=0}^{2}(g^{d^i})^a_i=\prod_{i=0}^{2}ck(i)^{a_i}=ck(0)^{50}ck(1)^{81}ck(2)^{109}=2^{50}66^{81}83^{109}\equiv116\times 31\times58\equiv 56\hspace{1mm}(\textrm{mod}\hspace{1mm}181)

cvalA(x)=i=00(gdi)ia=ck(0)a0=ck(0)1=212(mod181)c_{val_A(x)}=\prod_{i=0}^{0}(g^{d^i})^a_i=ck(0)^{a_0}=ck(0)^{1}=2^{1}\equiv 2\hspace{1mm}(\textrm{mod}\hspace{1mm}181)

and similarly

crowB(x)=135c_{row_B(x)}=135, ccolB(x)=3c_{col_B(x)}=3, cvalB(x)=50c_{val_B(x)}=50, crowC(x)=73c_{row_C(x)}=73, ccolC(x)=73c_{col_C(x)}=73 and cvalC(x)=2c_{val_C(x)}=2.

D- Therefore, output

c=(32,56,2,135,3,50,73,73,2)c=(32,56,2,135,3,50,73,73,2).

-Eval(PE(pp,i,r,x,y),VE(pp,c,x,y))\red{Eval(P_E(pp,i,r,x,y),V_E(pp,c,x,y))}

.\huge{\bold{.}} The Prover PEP_E and the Verifier VEV_E parse pp=(ck,vk)pp=(ck,vk).

.\huge{\bold{.}} The Prover PEP_E computesO=EncAHP(i)=(rowA(x),colA(x),valA(x),rowB(x),colB(x),valB(x),rowC(x),colC(x),valC(x))\overrightarrow{O}=Enc_{AHP}(i)=(row_A(x),col_A(x),val_A(x),row_B(x),col_B(x),val_B(x),row_C(x),col_C(x),val_C(x)).

.\huge{\bold{.}} The Prover PEP_E and the Verifier VEV_E run polynomial interactive oracle proofs (pioppiop) , AHPAHP or PFRPFR.

A- PFRPFR commitment checking

The Prover PfP_f and the Verifier VfV_f run polynomial oracle proof PFRPFR <Pf(O,,i),VfO()><P_f(\overrightarrow{O},,i),V_f^{\overrightarrow{O}}()> as following:

A- PFRPFR commitment checking The Prover

This pioppiop want to verify that three polynomials rowA(x)row_A(x), colA(x)col_A(x) and valA(x)val_A(x), also three polynomials rowB(x)row_B(x), colB(x)col_B(x), valB(x)val_B(x) are corresponding to tSLTt-SLT and three polynomials rowC(x)row_C(x), colC(x)col_C(x)and valC(x)val_C(x) is corresponding to a tDiagt-Diag matrix. This pioppiop includes:

The first, see pioppiop to prove tSLTt-SLTof the matrix AA in the following steps:

1)1) The Prover interpolates polynomial hh such that seqK(h)=ωt,ωt+1,..,ωn1,0,..,0seq_{\mathbb{K}}(h)=\omega^t,\omega^{t+1},..,\omega^{n-1},0,..,0. Here t=2t=2 and n=5n=5, therefore seqK(h)=ω2,ω3,ω4,0,..,0seq_{\mathbb{K}}(h)=\omega^2,\omega^3,\omega^4,0,..,0. This means that {h(k):kK={1,43,39,48,73,62,132,65,80}}={ω2,ω3,ω4,0,..,0}={42,125,135,0,0,0,0,0,0}\{h(k):\hspace{1mm}k\in\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\}=\{\omega^2,\omega^3,\omega^4,0,..,0\}=\{42,125,135,0,0,0,0,0,0\}. Therefore h(1)=42h(1)=42, h(43)=125h(43)=125 , h(39)=135h(39)=135, h(48)=h(73)=h(62)=h(132)=h(65)=h(80)=0h(48)=h(73)=h(62)=h(132)=h(65)=h(80)=0. So h(x)=42L1(x)+125L2(x)+135L3(x)h(x)=42L_1(x)+125L_2(x)+135L_3(x)where L1(x)=(x43)(x39)(x48)(x73)(x62)(x132)(x65)(x80)(42)(38)(47)(72)(61)(131)(64)(79)=161x8+161x7+161x6+161x5+161x4+161x3+161x2+161x+161L_1(x)=\frac{(x-43)(x-39)(x-48)(x-73)(x-62)(x-132)(x-65)(x-80)}{(-42)(-38)(-47)(-72)(-61)(-131)(-64)(-79)}=161x^8+161x^7+161x^6+161x^5+161x^4+161x^3+161x^2+161x+161,

L2(x)=45x8+125x7+126x6+169x5+27x4+75x3+148x2+29x+161L_2(x)=45x^8+125x^7+126x^6+169x^5+27x^4+75x^3+148x^2+29x+161,

L3(x)=125x8+169x7+75x6+29x5+45x4+126x3+27x2+148x+161L_3(x)=125x^8+169x^7+75x^6+29x^5+45x^4+126x^3+27x^2+148x+161,

Therefore h(x)=121x8+133x7+57x6+127x5+103x4+24x3+128x2+140x+114h(x)=121x^8+133x^7+57x^6+127x^5+103x^4+24x^3+128x^2+140x+114. The Prover sends\bold{\pink{sends}} hh to the Verifier.

2)2) The Prover and the Verifier do GeometricSequenceTest\red{Geometric\hspace{1mm}Sequence\hspace{1mm}Test} on hh (to verify correct construction of polynomial hh). In GeometricSequenceTestGeometric\hspace{1mm} Sequence\hspace{1mm} Test want to prove that SeqK(h)=a1,a1r,..,a1rc11,a2,a2r,...,a2rc21,...,av,avr,...,avrcv1Seq_{\mathbb{K}}(h)=a_1,a_1r,..,a_1r^{c_1-1},a_2, a_2r,..., a_2r^{c_2-1},...,a_v,a_vr,...,a_vr^{c_v-1}.

StartofGeometricSequenceTest\red{Start\hspace{1mm} of\hspace{1mm} Geometric\hspace{1mm} Sequence\hspace{1mm} Test }

Since h(γ0)=ω2h(\gamma^0)=\omega^2, h(γ1)=ω3h(\gamma^1)=\omega^3 ,h(γ2)=ω4h(\gamma^2)=\omega^4 and h(γ3)=...=h(γ8)=0h(\gamma^3)=...=h(\gamma^8)=0, then Geometric Sequence Test with a1=ω2a_1=\omega^2, a2=0a_2=0, r=ωr=\omega, c1=nt=3c_1=n-t=3 and c2=m(nt)=93=6c_2=m-(n-t)=9-3=6 run. Let pi=j<icjp_i=\sum_{j<i}c_j for i{1,2,..,v}i\in \{1,2,..,v\}. Here vv is the number of cic_i that are non-zero. Therefore v=2v=2 p1=0p_1=0 and p2=c1=3p_2=c_1=3.

3)3) The Verifier checks h(γpi)=aih(\gamma^{p_i})=a_i for i{1,2,...,v}i\in \{1,2,...,v\}. Here checks h(γp1)=h(γ0)=a1=ω2h(\gamma^{p_1})=h(\gamma^0)=a_1=\omega^2 and h(γp2)=h(γ3)=a2=0h(\gamma^{p_2})=h(\gamma^3)=a_2=0. There the Verifier checks\bold{\green{checks}} h(1)=42h(1)=42 and h(48)=0h(48)=0.

4)4) The Prover and the Verifier run ZeroOverK\red{Zero\hspace{1mm}Over\hspace{1mm}\mathbb{K}} to check that for all kKk\in\mathbb{K}, have (h(γk)rh(k))i=1v(kγpi+ci1)=0(h(\gamma k)-rh(k))\prod_{i=1}^{v}(k-\gamma^{p_i+c_i-1})=0. Here, ZeroOverKZero\hspace{1mm}Over\hspace{1mm}\mathbb{K} run to check that for all kK={1,γ,γ2,..,γ8}k\in\mathbb{K}=\{1,\gamma,\gamma^2,..,\gamma^8\}, have (h(γk)ωh(k))(kγ2)(kω8)=0(h(\gamma k)-\omega h(k))(k-\gamma^2)(k-\omega^8)=0. Note\blue{Note}: It is clear that if the construction of hh is correct, it applies this equality, because if k=1k=1, h(γk)=h(γ)=ωh(1)h(\gamma k)=h(\gamma)=\omega h(1) then h(γk)ωh(k)=0h(\gamma k)-\omega h(k)=0. If k=γk=\gamma, h(γk)=h(γ2)=ωh(γ)h(\gamma k)=h(\gamma^2)=\omega h(\gamma), then h(γk)ωh(k)=0h(\gamma k)-\omega h(k)=0. If k=γ2k=\gamma^2, then kγ2=0k-\gamma^2=0. If k=ω3,...,ω7k=\omega^3,...,\omega^7, then h(γk)=ωh(k)=0h(\gamma k)=\omega h(k)=0 and if k=γ8k=\gamma^8, then kγ8=0k-\gamma^8=0.

StartofZeroOverK\red{Start\hspace{1mm}of\hspace{1mm} Zero\hspace{1mm} Over\hspace{1mm} \mathbb{K}}

In ZeroOverKZero\hspace{1mm}Over\hspace{1mm}\mathbb{K}, want to prove that for all kKk\in\mathbb{K}, F(k)=0F(k)=0 where F(x)=G(x,fj1(α1x),fj2(α2x),...,fjt(αtx))F(x)=G(x,f_{j_1}(\alpha_1x),f_{j_2}(\alpha_2x),...,f_{j_{t}}(\alpha_{t}x)). Here F(x)=(h(γx)ωh(x))(xγ2)(xγ8)F(x)=(h(\gamma x)-\omega h(x))(x-\gamma^2)(x-\gamma^8), therefore since t=2t=2, F(x)=G(x,fj1(α1x),fj2(α2x))=(h(γx)ωh(x))(xγ2)(xγ8)F(x)=G(x,f_{j_1}(\alpha_1x),f_{j_2}(\alpha_2x))=(h(\gamma x)-\omega h(x))(x-\gamma^2)(x-\gamma^8), so h1=fj1=hh_1=f_{j_1}=h, h2=fj2=hh_2=f_{j_2}=h, α1=γ\alpha_1=\gamma and α2=1\alpha_2=1.

5)5) The Prover selects polynomials riF<2[x]r_i\in \mathbb{F}^{<2}[x], i{1,2,..,t}i\in \{1,2,..,t\}. Then computes masks mi(x)=ri(αi1x)ZK(αi1x)m_i(x)=r_i(\alpha_i^{-1}x)Z_{\mathbb{K}}(\alpha_i^{-1}x) and computes hi(x)=hi(x)+mi(x)h'_i(x)=h_i(x)+m_i(x) for i{1,2,..,t}i\in\{1,2,..,t\}.

Here, the Prover selects r1,r2r_1,r_2. For example, let r1(x)=2+xr_1(x)=2+x and r2(x)=2xr_2(x)=2x. Therefore m1(x)=r1(α11x)ZK(α11x)m_1(x)=r_1(\alpha_1^{-1}x)Z_{\mathbb{K}}(\alpha_1^{-1}x) where α1=γ=48\alpha_1=\gamma=48 and ZK(x)=xK(xk)=(x1)(x43)(x39)(x48)(x73)(x62)(x132)(x65)(x80)=x9+180Z_{\mathbb{K}}(x)=\prod_{x\in\mathbb{K}}(x-k)=(x-1)(x-43)(x-39)(x-48)(x-73)(x-62)(x-132)(x-65) (x-80)=x^9+180. Therefore m1(x)=r1(80x)ZK(80x)=80x10+2x9+101x+179m_1(x)=r_1(80x)Z_{\mathbb{K}}(80x)=80x^{10}+2x^9+101x+179 m2(x)=r2(α21x)ZK(α21x)=r2(x)ZK(x)=2x(x9+180)=2x10+179xm_2(x)=r_2(\alpha_2^{-1}x)Z_{\mathbb{K}}(\alpha_2^{-1}x)=r_2(x)Z_{\mathbb{K}}(x)=2x(x^9+180)=2x^{10}+179x. Then computes h1(x)=h1(x)+m1(x)=h(x)+m1(x)=80x10+2x9+121x8+133x7+57x6+127x5+103x4+h'_1(x)=h_1(x)+m_1(x)=h(x)+m_1(x)=80x^{10}+2x^9+121x^8+133x^7+57x^6+127x^5+103x^4+ 24x3+128x2+60x+11224x^3+128x^2+60x+112 and h2(x)=h2(x)+m2(x)=h(x)+m2(x)=2x10+121x8+133x7+h'_2(x)=h_2(x)+m_2(x)=h(x)+m_2(x)=2x^{10}+121x^8+133x^7+ 57x6+127x5+103x4+24x3+128x2+138x+11457x^6+127x^5+103x^4+24x^3+128x^2+138x+114.

6)6) The Prover computes F(x)=G(x,h1(α1x),h2(α2x),...,ht(αtx))F'(x)=G(x,h'_1(\alpha_1x),h'_2(\alpha_2x),...,h'_t(\alpha_tx)) and q1(x)=F(x)ZK(x)q_1(x)=\frac{F'(x)}{Z_{\mathbb{K}}(x)} then the Prover sends {mi}i\{m_i\}_i, {ri}i\{r_i\}_i and q1q_1. Here F(x)=G(x,h1(43x),h2(x))=(h1(43x)ωh2(x))(xγ2)(xγ8)=64x12+169x11+168x10F'(x)=G(x,h'_1(43x),h'_2(x))=(h'_1(43x)-\omega h'_2(x))(x-\gamma^2)(x-\gamma^8)=64x^{12}+169x^{11}+168x^{10} +51x9+117x3+12x2+13x+130+51x^9+117x^3+12x^2+13x+130 and then q1(x)=F(x)ZK(x)=64x3+169x2+168x+51q_1(x)=\frac{F'(x)}{Z_{\mathbb{K}}(x)}=64x^3+169x^2+168x+51.

The Prover sends\bold{\pink{sends}} m1(x)=80x10+2x9+101x+179m_1(x)=80x^{10}+2x^9+101x+179 , m2(x)=2x10+179xm_2(x)=2x^{10}+179x, r1(x)=2+xr_1(x)=2+x , r2(x)=2xr_2(x)=2x and q1(x)=64x3+169x2+168x+51q_1(x)=64x^3+169x^2+168x+51 to the Verifier.

7)7) The Verifier derives\bold{\green{derives}} hi=hi+mih'_i=h_i+m_i through additive homomorphism. Then samples β1\beta_1, β2\beta_2 and cc of FK\mathbb{F}^{*}-\mathbb{K} and sends cc to the Prover. Suppose β1=65\beta_1=65, β2=21\beta_2=21 and c=171c=171. The Verifier sends\bold{\green{sends}} c=171c=171 to the Prover.

8)8) The Prover computes q2=r1+cr2+...+ct1rtq_2=r_1+cr_2+...+c^{t-1}r_t and the Verifier derives concrete oracle q2q_2 through additive homomorphism. Here, the Prover computes q2(x)=r1(x)+cr2(x)=2+x+171(2x)=162x+2q_2(x)=r_1(x)+cr_2(x)=2+x+171(2x)=162x+2.

9)9) Let M(x)=m1(α1x)+cm2(α2x)+...+ct1mt(αtx)M(x)=m_1(\alpha_1 x)+cm_2(\alpha_2 x)+...+c^{t-1}m_t(\alpha_t x). The Verifier computes ZK(β1)Z_{\mathbb{K}}(\beta_1), ZK(β2)Z_{\mathbb{K}}(\beta_2), queries q1(β1)q_1(\beta_1)and q2(β2)q_2(\beta_2) and for i{1,2,..,t}i\in \{1,2,..,t\}, queries hi(αiβ1)h'_i(\alpha_i\beta_1) and mi(αiβ2)m_i(\alpha_i\beta_2)to compute F(β1)F'(\beta_1) and M(β2)M(\beta_2). The Verifier asserts two identities M(β2)q2(β2)ZK(β2)=0M(\beta_2)-q_2(\beta_2)Z_{\mathbb{K}}(\beta_2)=0 and F(β1)q1(β1)ZK(β1)=0F'(\beta_1)-q_1(\beta_1)Z_{\mathbb{K}}(\beta_1)=0.

Here, M(x)=m1(α1x)+cm2(α2x)=m1(γx)+171m2(x)=162x10+2x9+19x+179M(x)=m_1(\alpha_1 x)+cm_2(\alpha_2 x)=m_1(\gamma x)+171m_2(x)=162x^{10}+2x^9+19x+179. The Verifier computes ZK(β1)=ZK(65)=659+180=0Z_{\mathbb{K}}(\beta_1)=Z_{\mathbb{K}}(65)=65^9+180=0 and ZK(β2)=ZK(21)=219+180=30Z_{\mathbb{K}}(\beta_2)=Z_{\mathbb{K}}(21)=21^9+180=30 and queries\bold{\green{queries}} q1(β1)=86q_1(\beta_1)=86 and q2(β2)=146q_2(\beta_2)=146. Also queries\bold{\green{queries}} values h1(α1β1)=h1(γ×65)=h1(80)=0h'_1(\alpha_1\beta_1)=h'_1(\gamma\times 65)=h'_1(80)=0 , h2(α2β1)=h2(65)=0h'_2(\alpha_2\beta_1)=h'_2(65)=0, m1(α1β2)=m1(γ×21)=m1(179)=147m_1(\alpha_1\beta_2)=m_1(\gamma\times 21)=m_1(179)=147 and m2(α2β2)=m2(21)=174m_2(\alpha_2\beta_2)=m_2(21)=174. Then checks\bold{\green{checks}} M(β2)q2(β2)ZK(β2)=0M(\beta_2)-q_2(\beta_2)Z_{\mathbb{K}}(\beta_2)=0 , that means 3630×146=36360(mod181)36-30\times 146=36-36\equiv 0\hspace{1mm}(\textrm{mod}\hspace{1mm}181), and F(β1)q1(β1)ZK(β1)=0F'(\beta_1)-q_1(\beta_1)Z_{\mathbb{K}}(\beta_1)=0, that means 086×00(mod181)0-86\times 0\equiv 0\hspace{1mm}(\textrm{mod}\hspace{1mm}181).

EndofZeroOverK\red{End\hspace{1mm}of\hspace{1mm} Zero\hspace{1mm} Over\hspace{1mm} \mathbb{K}}

10)10) The Verifier outputs\bold{\green{outputs}} accept if all checks pass, otherwise reject. Here, outputs accept.

EndofGeometricSequenceTest\red{End\hspace{1mm}of\hspace{1mm} Geometric\hspace{1mm} Sequence\hspace{1mm} Test}

11)11) The Prover and the Verifier run SubsetoverK\red{Subset\hspace{1mm}over\hspace{1mm}\mathbb{K}} between rowArow_A and hh to prove that rowA(K)h(K)row_A(\mathbb{K})\subset h(\mathbb{K}) where rowA(K)={rowA(k):kK}row_A(\mathbb{K})=\{row_A(k)\hspace{1mm}:\hspace{1mm}k\in\mathbb{K}\}and h(K)={h(k):kK}h(\mathbb{K})=\{h(k)\hspace{1mm}:\hspace{1mm}k\in\mathbb{K}\}.

StartofSubsetoverK\red{Start\hspace{1mm}of\hspace{1mm} Subset\hspace{1mm} over\hspace{1mm} \mathbb{K}}

.................

EndofSubsetoverK\red{End\hspace{1mm}of\hspace{1mm} Subset\hspace{1mm} over\hspace{1mm} \mathbb{K}}

12)12) The Prover and the Verifier run DiscretelogComparison\red{Discrete-log\hspace{1mm} Comparison} between rowArow_A and colAcol_A as following:

StartofDiscretelogComparison\red{Start\hspace{1mm}of\hspace{1mm}Discrete-log\hspace{1mm}Comparison}

Let parameters (ΔF,n=H)(\Delta \in \mathbb{F}, n = |\mathbb{H}|) such that ord(Δ)=2nord(\Delta) = 2n and Δ2=ω\Delta^2=\omega. Here, ω=59\omega=59, Δ=56\Delta=56 and ord(Δ)=2n=10ord(\Delta)=2n=10.

13)13) The Prover interpolates polynomial ss so that agrees with rowAcolA\frac{row_A}{col_A} on K\mathbb{K}. Then send them to the Verifier. Here, s(1)=rowA(1)colA(1)=425959(mod181)s(1)=\frac{row_A(1)}{col_A(1)}=\frac{42}{59}\equiv 59\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(43)=rowA(43)colA(43)125(mod181)s(43)=\frac{row_A(43)}{col_A(43)}\equiv125\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(39)=rowA(39)colA(39)=13512559(mod181)s(39)=\frac{row_A(39)}{col_A(39)}=\frac{135}{125}\equiv59\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(48)=rowA(48)colA(48)=4845170(mod181)s(48)=\frac{row_A(48)}{col_A(48)}=\frac{48}{45}\equiv 170\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(73)=rowA(73)colA(73)=362251(mod181)s(73)=\frac{row_A(73)}{col_A(73)}=\frac{36}{22}\equiv 51\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(62)=rowA(62)colA(62)=1511662(mod181)s(62)=\frac{row_A(62)}{col_A(62)}=\frac{151}{166}\equiv 2\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(132)=rowA(132)colA(132)=214628(mod181)s(132)=\frac{row_A(132)}{col_A(132)}=\frac{21}{46}\equiv 28\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(65)=rowA(65)colA(65)=131127135(mod181)s(65)=\frac{row_A(65)}{col_A(65)}=\frac{131}{127}\equiv 135\hspace{1mm}(\textrm{mod}\hspace{1mm}181) and s(80)=rowA(80)colA(80)=640154(mod181)s(80)=\frac{row_A(80)}{col_A(80)}=\frac{6}{40}\equiv 154\hspace{1mm}(\textrm{mod}\hspace{1mm}181). Therefore, s(x)=59L1(x)+125L2(x)+59L3(x)+170L4(x)+51L5(x)+2L6(x)+28L7(x)+135L8(x)+s(x)=59L_1(x)+125L_2(x)+59L_3(x)+170L_4(x)+51L_5(x)+2L_6(x)+28L_7(x)+135L_8(x)+ 154L9(x)154L_9(x).

where L1(x)L_1(x), L2(x)L_2(x) and L3(x)L_3(x) are computed in step 11 and the rest of Li(x)sL_i(x)s are L4(x)=126x8+75x7+161x6+126x5+75x4+161x3+126x2+75x+161L_4(x)=126x^8+75x^7+161x^6+126x^5+75x^4+161x^3+126x^2+75x+161, L5(x)=169x8+29x7+126x6+148x5+125x4+75x3+45x2+27x+161L_5(x)=169x^8+29x^7+126x^6+148x^5+125x^4+75x^3+45x^2+27x+161, L6(x)=27x8+45x7+75x6+125x5+148x4+126x3+29x2+169x+161L_6(x)=27x^8+45x^7+75x^6+125x^5+148x^4+126x^3+29x^2+169x+161, L7(x)=75x8+126x7+161x6+75x5+126x4+161x3+75x2+126x+161L_7(x)=75x^8+126x^7+161x^6+75x^5+126x^4+161x^3+75x^2+126x+161, L8(x)=148x8+27x7+126x6+45x5+29x4+75x3+169x2+125x+161L_8(x)=148x^8+27x^7+126x^6+45x^5+29x^4+75x^3+169x^2+125x+161and L9(x)=29x8+148x7+75x6+27x5+169x4+126x3+125x2+45x+161L_9(x)=29x^8+148x^7+75x^6+27x^5+169x^4+126x^3+125x^2+45x+161.

Therefore s(x)=41x8+101x7+34x6+38x5+x4+25x3+152x2+123x+87s(x)=41x^8+101x^7+34x^6+38x^5+x^4+25x^3+152x^2+123x+87. The Prover sends\pink{sends} s(x)s(x) to the Verifier.

14)14) For b{rowA,colA,s}b\in\{row_A, col_A, s\}, the Prover interpolates polynomial bb' so that for all kKk\in \mathbb{K}, b(k)=Δlogωb(k)b'(k)=\Delta^{\log_{\omega}^{b(k)}}.

Here, if b=rowAb=row_A, rowA(k)=ΔlogωrowA(k)=56log59rowA(k)row'_A(k)=\Delta^{\log_{\omega}^{row_A(k)}}=56^{\log_{59}^{row_A(k)}}that means rowA(1)=56log5942=56259(mod181)row'_A(1)=56^{\log_{59}^{42}}=56^2\equiv 59\hspace{1mm}(\textrm{mod}\hspace{1mm}181), rowA(43)=56log59125=56346(mod181)row'_A(43)=56^{\log_{59}^{125}}=56^3\equiv 46\hspace{1mm}(\textrm{mod}\hspace{1mm}181), rowA(39)=56log59135=56442(mod181)row'_A(39)=56^{\log_{59}^{135}}=56^4\equiv 42\hspace{1mm}(\textrm{mod}\hspace{1mm}181), rowA(48)=56log594849(mod181)row'_A(48)=56^{\log_{59}^{48}} \equiv 49\hspace{1mm}(\textrm{mod}\hspace{1mm}181), rowA(73)=56log5936114(mod181)row'_A(73)=56^{\log_{59}^{36}} \equiv 114\hspace{1mm}(\textrm{mod}\hspace{1mm}181), rowA(62)=56log59151(mod181)row'_A(62)=56^{\log_{59}^{151}} \equiv \hspace{1mm}(\textrm{mod}\hspace{1mm}181).

Therefore rowA(x)=59L1(x)+46L2(x)+42L3(x)+49L4(x)+114L5(x)+...row'_A(x)=59L_1(x)+46L_2(x)+42L_3(x)+49L_4(x)+114L_5(x)+....

if b=colAb=col_A, colA(k)=ΔlogωcolA(k)=56log59colA(k)col'_A(k)=\Delta^{\log_{\omega}^{col_A(k)}}=56^{\log_{59}^{col_A(k)}}that means colA(1)=56log5959=56156(mod181)col'_A(1)=56^{\log_{59}^{59}}=56^1\equiv 56\hspace{1mm}(\textrm{mod}\hspace{1mm}181), colA(48)=56log591=565180(mod181)col'_A(48)=56^{\log_{59}^{1}}=56^5\equiv 180\hspace{1mm}(\textrm{mod}\hspace{1mm}181) and colA(132)=56log59125=56346(mod181)col'_A(132)=56^{\log_{59}^{125}}=56^3\equiv 46\hspace{1mm}(\textrm{mod}\hspace{1mm}181). Therefore colA(x)=56L1(x)+180L2(x)+46L3(x)=96x2+47x+94col'_A(x)=56L_1(x)+180L_2(x)+46L_3(x)=96x^2+47x+94.

if b=sb=s, s(k)=Δlogωs(k)=56log59s(k)s'(k)=\Delta^{\log_{\omega}^{s(k)}}=56^{\log_{59}^{s(k)}}that means s(1)=56log5959=56156(mod181)s'(1)=56^{\log_{59}^{59}}=56^1\equiv 56\hspace{1mm}(\textrm{mod}\hspace{1mm}181), s(48)=56log59125=56346(mod181)s'(48)=56^{\log_{59}^{125}}=56^3\equiv 46\hspace{1mm}(\textrm{mod}\hspace{1mm}181) and s(132)=56log5959=56156(mod181)s'(132)=56^{\log_{59}^{59}}=56^1\equiv 56\hspace{1mm}(\textrm{mod}\hspace{1mm}181). Therefore s(x)=56L1(x)+46L2(x)+56L3(x)=21x2+103x+113s'(x)=56L_1(x)+46L_2(x)+56L_3(x)=21x^2+103x+113.

Then the Prover sends rowArow'_A, colAcol'_A and ss' to the Verifier.

4153)4-1-5-3) The Prover interpolates polynomial hh so that seqK(h)=1,Δ,Δ2,..,Δn1,0,0,..,0seq_{\mathbf{K}}(h)=1,\Delta,\Delta^2,..,\Delta^{n-1},0,0,..,0.

Here seqK(h)=1,56,59,46,42seq_{\mathbf{K}}(h)=1, 56, 59, 46, 42.

B- PFRPFR andAHPAHP proof generating and verifying

AHP

1)1)Let z=(1,x,w)=(1,4,20,31,82)z=(1,x,w)=(1,4,20,31,82). Also, let zA=Az=[0000000000010001000000010][14203182]=[004131]z_A=Az=\begin{bmatrix}0&0&0&0&0\\0&0&0&0&0\\0&1&0&0&0\\1&0&0&0&0\\0&0&0&1&0\\ \end{bmatrix}\begin{bmatrix}1\\4\\20\\31\\82\\\end{bmatrix}=\begin{bmatrix}0\\0\\4\\1\\31\\\end{bmatrix}, zB=Bz=[000000000050000110100260000][14203182]=[0053126]z_B=Bz=\begin{bmatrix}0&0&0&0&0\\0&0&0&0&0\\5&0&0&0&0\\11&0&1&0&0\\26&0&0&0&0\\\end{bmatrix}\begin{bmatrix}1\\4\\20\\31\\82\end{bmatrix}=\begin{bmatrix}0\\0\\5\\31\\26\\\end{bmatrix}and zC=Cz=[0000000000001000001000001][14203182]=[00203182]z_C=Cz=\begin{bmatrix}0&0&0&0&0\\0&0&0&0&0\\0&0&1&0&0\\0&0&0&1&0\\0&0&0&0&1\\\end{bmatrix}\begin{bmatrix}1\\4\\20\\31\\82\\\end{bmatrix}=\begin{bmatrix}0\\0\\20\\31\\82\\\end{bmatrix}

2)2)obtain the polynomial zA(x)z_A(x)using indexing zAz_A by elements of H\mathbb{H} that mean zA(x)z_A(x) is the polynomial that zA(1)=0z_A(1)=0, zA(59)=0z_A(59)=0, zA(42)=4z_A(42)=4, zA(125)=1z_A(125)=1 and zA(135)=31z_A(135)=31.

Then obtain polynomial z^A(x)\hat{z}_A(x) using the polynomial zA(x)z_A(x)so that z^A(x)F<H+b[x]\hat{z}_A(x)\in \mathbb{F}^{<|\mathbb{H}|+b}[x] that agree with zA(x)z_A(x) on H\mathbb{H} . Note that values of up to bb locations in this polynomial reveals no information about the witness wwprovided the locations are in FH\mathbb{F}-\mathbb{H}. Here, for simplicity, let b=2b=2 and obtain z^A(x)\hat{z}_A(x) so that agree with zA(x)z_A(x) on H\mathbb{H} and also z^A(150)=5\hat{z}_A(150)=5, z^A(80)=47\hat{z}_A(80)=47.

Therefore, we have z^A(x)=4L3(x)+L4(x)+31L5(x)+5L6(x)+47L7(x)\hat{z}_A(x)=4L_3(x)+L_4(x)+31L_5(x)+5L_6(x)+47L_7(x) where L3(x)=133x6+155x5+117x4+27x3+48x2+73x+171L_3(x)=133x^6+155x^5+117x^4+27x^3+48x^2+73x+171, L4(x)=4x6+123x5+25x4+48x3+27x2+113x+22L_4(x)=4x^6+123x^5+25x^4+48x^3+27x^2+113x+22, L5(x)=75x6+115x5+27x4+25x3+117x2+154x+30L_5(x)=75x^6+115x^5+27x^4+25x^3+117x^2+154x+30, L6(x)=132x6+119x5+49x+62L_6(x)=132x^6+119x^5+49x+62 and L7(x)=97x6+111x5+84x+70L_7(x)=97x^6+111x^5+84x+70. So z^A(x)=116x6+165x5+63x4+26x3+45x2+141x+168\hat{z}_A(x)=116x^6+165x^5+63x^4+26x^3+45x^2+141x+168.

Similarly, obtain polynomial z^B(x)\hat{z}_B(x) so that z^B(x)FH+b[x]\hat{z}_B(x)\in \mathbb{F}^{|\mathbb{H}|+b}[x] that agree with zB(x)z_B(x) on H\mathbb{H} that mean z^B(1)=0\hat{z}_B(1)=0, z^B(59)=0\hat{z}_B(59)=0, z^B(42)=5\hat{z}_B(42)=5, z^B(125)=31\hat{z}_B(125)=31, z^B(135)=26\hat{z}_B(135)=26 and also b=2b=2 random locations z^B(150)=15\hat{z}_B(150)=15 and z^B(80)=170\hat{z}_B(80)=170. So z^B(x)=5L3(x)+31L4(x)+26L5(x)+15L6(x)+170L7(x)=32x6+178x5+74x4+101x3+137x2+81x+124\hat{z}_B(x)=5L_3(x)+31L_4(x)+26L_5(x)+15L_6(x)+170L_7(x)=32x^6+178x^5+74x^4+101x^3+137x^2+81x+124

Similarly, obtain polynomial z^C(x)\hat{z}_C(x) so that z^C(x)FH+b[x]\hat{z}_C(x)\in \mathbb{F}^{|\mathbb{H}|+b}[x] that agree with zC(x)z_C(x) on H\mathbb{H} that mean z^C(1)=0\hat{z}_C(1)=0, z^C(59)=0\hat{z}_C(59)=0, z^C(42)=20\hat{z}_C(42)=20, z^C(125)=31\hat{z}_C(125)=31, z^C(135)=82\hat{z}_C(135)=82 and also b=2b=2 random locations z^C(150)=1\hat{z}_C(150)=1 and z^C(80)=100\hat{z}_C(80)=100. So z^C(x)=20L3(x)+31L4(x)+82L5(x)+L6(x)+100L7(x)=123x6+50x5+80x4+96x3+169x2+157x+49\hat{z}_C(x)=20L_3(x)+31L_4(x)+82L_5(x)+L_6(x)+100L_7(x)=123x^6+50x^5+80x^4+96x^3+169x^2+157x+49

Now, obtain polynomial w^(x)Fw+b[x]\hat{w}(x)\in \mathbb{F}^{|w|+b}[x]that agree with wˉ(x)\bar{w}(x) on H[>x]\mathbb{H}[>|x|] where

wˉ:H[>x]={42,125,135}F\bar{w}:\mathbb{H}[>|x|]=\{42,125,135\}\to \mathbb{F}

wˉ(h)=w(h)x^(h)vH[x](h)\bar{w}(h)=\frac{w(h)-\hat{x}(h)}{v_{\mathbb{H}[\leq |x|]}(h)}

where vH[x(h)v_{\mathbb{H}[\leq |x|}(h)is vanishing polynomial on H[x]={1,59}\mathbb{H}[\leq |x|]=\{1,59\}, therefore vH[x(h)=(h1)(h59)v_{\mathbb{H}[\leq |x|}(h)=(h-1)(h-59). Also x^(h)\hat{x}(h)is the polynomial so that x^(1)=1\hat{x}(1)=1 and x^(59)=4\hat{x}(59)=4, therefore x^(h)=128h+54\hat{x}(h)=128h+54. Therefore

wˉ(42)=w(42)x^(42)(421)(4259)=200(41)(17)108(mod181)\bar{w}(42)=\frac{w(42)-\hat{x}(42)}{(42-1)(42-59)}=\frac{20-0}{(41)(-17)}\equiv 108\hspace{1mm}(\textrm{mod}\hspace{1mm}181), wˉ(125)=w(125)x^(125)(1251)(12559)=31126(124)(66)160(mod181)\bar{w}(125)=\frac{w(125)-\hat{x}(125)}{(125-1)(125-59)}=\frac{31-126}{(124)(66)}\equiv 160\hspace{1mm}(\textrm{mod}\hspace{1mm}181) and wˉ(135)=w(135)x^(135)(1351)(13559)=82139(134)(76)78(mod181)\bar{w}(135)=\frac{w(135)-\hat{x}(135)}{(135-1)(135-59)}=\frac{82-139}{(134)(76)}\equiv 78\hspace{1mm}(\textrm{mod}\hspace{1mm}181).

Now, obtain w^(x)Fw+b=3+2[x]\hat{w}(x)\in\mathbb{F}^{|w|+b=3+2}[x] so that w^(42)=108\hat{w}(42)=108, w^(125)=160\hat{w}(125)=160 , w^(135)=78\hat{w}(135)=78 and also b=2b=2 random locations w^(150)=42\hat{w}(150)=42 and w^(80)=180\hat{w}(80)=180. Therefore w^(x)=108L1(x)+160L2(x)+78L3(x)+42L4(x)+180L5(x)\hat{w}(x)=108L_1(x)+160L_2(x)+78L_3(x)+42L_4(x)+180L_5(x) where L1(x)=(x125)(x135)(x150)(x80)(83)(93)(108)(38)152x4+92x3+73x2+43x+112(mod181)L_1(x)=\frac{(x-125)(x-135)(x-150)(x-80)}{(-83)(-93)(-108)(-38)}\equiv 152x^4+92x^3+73x^2+43x+112\hspace{1mm}(\textrm{mod}\hspace{1mm}181), L2(x)=156x4+39x3+84x2+86x+171L_2(x)=156x^4+39x^3+84x^2+86x+171, L3(x)=161x4+157x3+131x2+159x+6L_3(x)=161x^4+157x^3+131x^2+159x+6, L4(x)=60x4+67x3+118x2+50x+20L_4(x)=60x^4+67x^3+118x^2+50x+20 and L5(x)=14x4+7x3+137x2+24x+54L_5(x)=14x^4+7x^3+137x^2+24x+54. Therefore w^(x)=149x4+97x3+161x2+121x+166\hat{w}(x)=149x^4+97x^3+161x^2+121x+166.

3)3) Find polynomial h0(x)h_0(x) so that z^A(x)z^B(x)z^C(x)=h0(x)vH(x)\hat{z}_A(x)\hat{z}_B(x)-\hat{z}_C(x)=h_0(x)v_{\mathbb{H}}(x). Since z^A(x)z^B(x)z^C(x)=\hat{z}_A(x)\hat{z}_B(x)-\hat{z}_C(x)= 92x12+45x11+164x10+x9+20x8+61x7+152x6+49x5+180x4+161x3+28x2+165x+14992x^{12}+45x^{11}+164x^{10}+x^9+20x^8+61x^7+152x^6+49x^5+180x^4+161x^3+28x^2+165x+149 and vH(x)=hH(xh)=(x1)(x59)(x42)(x125)(x135)=x5+180v_{\mathbb{H}}(x)=\prod_{h\in\mathbb{H}}(x-h)=(x-1)(x-59)(x-42)(x-125)(x-135)=x^5+180, obtain h0(x)=92x7+45x6+164x5+x4+20x3+153x2+16x+32h_0(x)=92x^7+45x^6+164x^5+x^4+20x^3+153x^2+16x+32.

4)4) Sample a fully random s(x)F2H+b1=11[x]s(x)\in\mathbb{F}^{2|\mathbb{H}|+b-1=11}[x]. Consider s(x)=5x10+101x8+17x7+x5+20x4+3x+115s(x)=5x^{10}+101x^8+17x^7+x^5+20x^4+3x+115. Compute sum σ1=kHs(k)=\sigma_1=\sum_{k\in \mathbb{H}}s(k)= s(1)+s(59)+s(42)+s(125)+s(135)=81+47+141+46+10962(mod181)s(1)+s(59)+s(42)+s(125)+s(135)=81+47+141+46+109\equiv 62\hspace{1mm}(\hspace{1mm}\textrm{mod}\hspace{1mm}181).

5)5)The Prover sends z^A(x)\hat{z}_A(x), z^B(x)\hat{z}_B(x), z^C(x)\hat{z}_C(x), w^(x)\hat{w}(x), h0(x)h_0(x), s(x)s(x)and σ1\sigma_1to the Verifier.

6)6)The Verifier chooses random numbers α\alpha, ηA\eta_A, ηB\eta_B, ηC\eta_C of F\mathbb{F} and sends to the Prover. Let α=10\alpha=10, ηA=2\eta_A=2, ηB=30\eta_B=30 and ηC=100\eta_C=100.

7)7) The Prover and the Verifier run sumcheckprotocol\bold{sum\hspace{1mm}check\hspace{1mm}protocol} for s(x)+r(α,x)MηMz^M(x)(MηMrM(α,x))z^(x)s(x)+r(\alpha,x)\sum_{M}\eta_M\hat{z}_M(x)-(\sum_{M}\eta_Mr_M(\alpha,x))\hat{z}(x)

The Prover finds polynomials g1(x)g_1(x) and h1(x)h_1(x) so that

s(x)+r(α,x)MηMz^M(x)(MηMrM(α,x))z^(x)=h1(x)vH(x)+xg1(x)+σ1Hs(x)+r(\alpha,x)\sum_{M}\eta_M\hat{z}_M(x)-(\sum_{M}\eta_Mr_M(\alpha,x))\hat{z}(x)=h_1(x)v_{\mathbb{H}}(x)+xg_1(x)+\frac{\sigma_1}{|\mathbb{H}|} (1)(1)

where r(x,y)=uH(x,y)=vH(x)vH(y)xyr(x,y)=u_{\mathbb{H}}(x,y)=\frac{v_{\mathbb{H}}(x)-v_{\mathbb{H}}(y)}{x-y} , vH(x)=hH(xh)=xH1v_{\mathbb{H}}(x)=\prod_{h\in \mathbb{H}}(x-h)=x^{|\mathbb{H}|}-1. Therefore r(x,y)=xHyHxyr(x,y)=\frac{x^{|\mathbb{H}|}-y^{|\mathbb{H}|}}{x-y}. (Note that r(x,y)r(x,y)satisfies two useful algebraic properties. First, the univariate polynomials (r(x,a))aH(r(x,a))_{a\in \mathbb{H}} are linearly independent and r(x,y)r(x,y) is their (unique) low-degree extension. Second, r(x,y)r(x,y) vanishes on the square H×H\mathbb{H}\times \mathbb{H} except for on the diagonal, where it takes on the (non-zero) values (r(a,a))aH(r(a,a))_{a\in \mathbb{H}}.) Therefore r(x,y)=x5y5xyr(x,y)=\frac{x^5-y^5}{x-y} . Also rM(x,y)=kHr(x,k)M^(k,y)r_M(x,y)=\sum_{k\in \mathbb{H}}r(x,k)\hat{M}(k,y) for M{A,B,C}M\in \{A,B,C\}.

Now, Since MηMz^M(x)=ηAz^A(x)+ηBz^B(x)+ηCz^C(x)=98x6+172x5+120x4+12x3+104x2+131x+87\sum_M\eta_M\hat{z}_M(x)=\eta_A\hat{z}_A(x)+\eta_B\hat{z}_B(x)+\eta_C\hat{z} _C(x)=98x^6+172x^5+120x^4+12x^3+104x^2+131x+87and r(α,x)=r(10,x)=105x510xr(\alpha,x)=r(10,x)=\frac{10^5-x^5}{10-x}, so the second term of the left of equation (1)(1) is r(α,x)MηMz^M(x)=98x10+66x9+56x8+29x7+32x6+153x5+56x4+136x3+123x2+42x+114r(\alpha,x)\sum_M\eta_M\hat{z}_M(x)=98x^{10}+66x^9+56x^8+29x^7+32x^6+153x^5+56x^4+136x^3+123x^2+42x+114

Also, z^(x)=w^(x)vH[x+1](x)+x^(x)=(149x4+97x3+161x2+121x+166)(x1)(x59)+128x+54=149x6+26x5+55x4+166x3+52x2+22x+74\hat{z}(x)=\hat{w}(x)v_{\mathbb{H}[\leq |x|+1]}(x)+\hat{x}(x)=(149x^4+97x^3+161x^2+121x+166)(x-1)(x-59)+128x+54=149x^6+26x^5+55x^4+166x^3+52x^2+22x+74 that agree with zz on H\mathbb{H} and rA(10,x)=kHr(10,k)A^(k,x)r_A(10,x)=\sum_{k\in \mathbb{H}}r(10,k)\hat{A}(k,x) where A^(x,y)\hat{A}(x,y) is a polynomial so that A^(42,59)=1\hat{A}(42,59)=1, A^(125,1)=1\hat{A}(125,1)=1, A^(135,125)=1\hat{A}(135,125)=1 and A^(x,y)=0\hat{A}(x,y)=0 for the rest of points in H×H\mathbb{H}\times\mathbb{H}. So A^(x,y)\hat{A}(x,y) is a bivariate polynomial that passes from these 25 points. This polynomial can obtain as following: A^(x,y)=kKuH(x,rowA^(k))uH(y,colA^(k))valA^(k)=kKx5rowA^(k)5xrowA^(k)y5colA^(k)5ycolA^(k)valA^(k)\hat{A}(x,y)=\sum_{k\in \mathbb{K}}u_{\mathbb{H}}(x,\hat{row'_A}(k))u_{\mathbb{H}}(y,\hat{col'_A}(k))\hat{val_A}(k)=\sum_{k\in \mathbb{K}}\frac{x^5-\hat{row'_A}(k)^5}{x-\hat{row'_A}(k)}\frac{y^5-\hat{col'_A}(k)^5}{y-\hat{col'_A}(k)}\hat{val'_A}(k)

where rowA:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}row'_A:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} with rowA(k=γi)=ωrirow'_A(k=\gamma^i)=\omega^{r_i} for 1iA1\leq i\leq ||A|| , A||A|| is the number of nonzero entries in AA, and rir_i is row number of ithi^{th} nonzero entry and otherwise rowA(k)row'_A(k) returns an arbitrary element in H\mathbb{H}. So rowA(k)row'_A(k) on K\mathbb{K} is a polynomial so that rowA(1)=42row'_A(1)=42 , rowA(43)=125row'_A(43)=125, rowA(39)=135row'_A(39)=135, rowA(k)row'_A(k) returns arbitrary elements of H\mathbb{H}, for example rowA(48)=1row'_A(48)=1, rowA(73)=135row'_A(73)=135, rowA(62)=125row'_A(62)=125, rowA(132)=59row'_A(132)=59, rowA(65)=42row'_A(65)=42 and rowA(80)=1row'_A(80)=1.

Also, colA:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}col'_A:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} with colA(k=γi)=ωcicol'_A(k=\gamma^i)=\omega^{c_i} for 1iA1\leq i\leq ||A|| and cic_i is column number of ithi^{th} nonzero entry and otherwise colA(k)col'_A(k) returns an arbitrary element in H\mathbb{H}. So colA(k)col'_A(k) on K\mathbb{K} is a polynomial so that colA(1)=59col'_A(1)=59 , colA(43)=1col'_A(43)=1, colA(39)=125col'_A(39)=125, colA(k)col'_A(k) returns arbitrary elements of H\mathbb{H}, for example colA(48)=42col'_A(48)=42, colA(73)=1col'_A(73)=1, colA(62)=135col'_A(62)=135, colA(132)=125col'_A(132)=125, colA(65)=59col'_A(65)=59 and colA(80)=42col'_A(80)=42.

And , valA:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}val'_A:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} with valA(k=γi)=viuH(rowA(k),rowA(k))uH(colA(k),colA(k))val'_A(k=\gamma^i)=\frac{v_i}{u_{\mathbb{H}}(row'_A(k),row'_A(k))u_{\mathbb{H}}(col'_A(k),col'_A(k))} for 1iA1\leq i\leq ||A|| where viv_i is value of ithi^{th} nonzero entry and otherwise valA(k)val'_A(k) returns zero. Note that based on definition of uH(x,y)u_{\mathbb{H}}(x,y), for each xHx \in \mathbb{H}, uH(x,x)=HxH1=5x4u_{\mathbb{H}}(x,x)=|\mathbb{H}|x^{|\mathbb{H}|-1}=5x^4. So valA(1)=1(5rowA4(1))(5colA4(1))=15×424×5×594=11455(mod181)val'_A(1)=\frac{1}{(5row'^4_A(1))(5col'^4_A(1))}=\frac{1}{5\times 42^4\times5\times59^4}=\frac{1}{145}\equiv 5\hspace{1mm}(\textrm{mod}\hspace{1mm}181), valA(43)=1(5rowA4(43))(5colA4(43))=15×1254×5×14=11455(mod181)val'_A(43)=\frac{1}{(5row'^4_A(43))(5col'^4_A(43))}=\frac{1}{5\times 125^4\times5\times1^4}=\frac{1}{145}\equiv 5\hspace{1mm}(\textrm{mod}\hspace{1mm}181) , valA(39)=1(5rowA4(39))(5colA4(39))=15×1354×5×1254=148132(mod181)val'_A(39)=\frac{1}{(5row'^4_A(39))(5col'^4_A(39))}=\frac{1}{5\times 135^4\times5\times 125^4}=\frac{1}{48}\equiv 132\hspace{1mm}(\textrm{mod}\hspace{1mm}181) and valA(k)=0val'_A(k)=0 for kK{1,43,39}k\in \mathbb{K}-\{1,43,39\}.

Now, rowA^\hat{row'_A}, colA^\hat{col'_A} and valA^\hat{val'_A} are extensions of rowArow'_A, colAcol'_A and valAval'_A so that are agree on K\mathbb{K}. Therefore A^(x,y)=5x51x42y51y59+5x51x125y51y1+132x51x135y51y125\hat{A}(x,y)=5\frac{x^5-1}{x-42}\frac{y^5-1}{y-59}+5\frac{x^5-1}{x-125}\frac{y^5-1}{y-1}+132\frac{x^5-1}{x-135}\frac{y^5-1}{y-125}. So rA(10,x)=kHr(10,k)A^(k,x)=70A^(1,x)+13A^(59,x)+150A^(42,x)+26A^(125,x)+147A^(135,x)r_A(10,x)=\sum_{k\in\mathbb{H}}r(10,k)\hat{A}(k,x)=70\hat{A}(1,x)+13\hat{A}(59,x)+150\hat{A}(42,x)+26\hat{A}(125,x)+147\hat{A}(135,x) where A^(1,x)=A^(59,x)=0\hat{A}(1,x)=\hat{A}(59,x)=0, A^(42,x)=5×82×x51x59=48(x4+59x3+42x2+125x+135)=48x4+117x3+25x2+27x+145\hat{A}(42,x)=5\times82\times\frac{x^5-1}{x-59}=48(x^4+59x^3+42x^2+125x+135)=48x^4+117x^3+25x^2+27x+145, A^(125,x)=5×29×x51x1=145(x4+x3+x2+x+1)=145x4+145x3+145x2+145x+145\hat{A}(125,x)=5\times 29\times\frac{x^5-1}{x-1}=145(x^4+x^3+x^2+x+1)=145x^4+145x^3+145x^2+145x+145, A^(135,x)=132×114×x51x125=25(x4+125x3+59x2+135x+42)=25x4+48x3+27x2+117x+145\hat{A}(135,x)=132\times 114\times\frac{x^5-1}{x-125}=25(x^4+125x^3+59x^2+135x+42)=25x^4+48x^3+27x^2+117x+145

Now, obtain B^(x,y)\hat{B}(x,y) similarly as following: B^(x,y)=kKuH(x,rowB^(k))uH(y,colB^(k))valB^(k)=kKx5rowB^(k)5xrowB^(k)y5colB^(k)5ycolB^(k)valB^(k)\hat{B}(x,y)=\sum_{k\in \mathbb{K}}u_{\mathbb{H}}(x,\hat{row'_B}(k))u_{\mathbb{H}}(y,\hat{col'_B}(k))\hat{val_B}(k)=\sum_{k\in \mathbb{K}}\frac{x^5-\hat{row'_B}(k)^5}{x-\hat{row'_B}(k)}\frac{y^5-\hat{col'_B}(k)^5}{y-\hat{col'_B}(k)}\hat{val'_B}(k) where similarly, rowB:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}row'_B:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} so that rowB(1)=42row'_B(1)=42, rowB(43)=125row'_B(43)=125, rowB(39)=125row'_B(39)=125, rowB(48)=135row'_B(48)=135 and for the rest values of K\mathbb{K}, rowB(k)row'_B(k) returns arbitrary elements of H\mathbb{H}, for example rowB(73)=59row'_B(73)=59, rowB(62)=1row'_B(62)=1, rowB(132)=42row'_B(132)=42, rowB(65)=135row'_B(65)=135 and rowB(80)=59row'_B(80)=59.

Also, colB:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}col'_B:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} so that colB(1)=1col'_B(1)=1 , colB(43)=1col'_B(43)=1, colB(39)=42col'_B(39)=42, colB(48)=1col'_B(48)=1 and for the rest values of K\mathbb{K} , colB(k)col'_B(k) returns arbitrary elements of H\mathbb{H}, for example colB(73)=59col'_B(73)=59, colB(62)=42col'_B(62)=42, colB(132)=125col'_B(132)=125, colB(65)=1col'_B(65)=1 and colB(80)=135col'_B(80)=135.

And , valB:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}val'_B:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} so that valB(1)=5(5rowB4(1))(5colB4(1))=55×424×5×14=548117(mod181)val'_B(1)=\frac{5}{(5row'^4_B(1))(5col'^4_B(1))}=\frac{5}{5\times 42^4\times5\times1^4}=\frac{5}{48}\equiv 117\hspace{1mm}(\textrm{mod}\hspace{1mm}181), valB(43)=11(5rowB4(43))(5colB4(43))=115×1254×5×14=1114555(mod181)val'_B(43)=\frac{11}{(5row'^4_B(43))(5col'^4_B(43))}=\frac{11}{5\times 125^4\times5\times1^4}=\frac{11}{145}\equiv 55\hspace{1mm}(\textrm{mod}\hspace{1mm}181) , valB(39)=1(5rowB4(39))(5colB4(39))=15×1254×5×424=12529(mod181)val'_B(39)=\frac{1}{(5row'^4_B(39))(5col'^4_B(39))}=\frac{1}{5\times 125^4\times5\times 42^4}=\frac{1}{25}\equiv 29\hspace{1mm}(\textrm{mod}\hspace{1mm}181) , valB(48)=26(5rowB4(48))(5colB4(48))=265×1354×5×14=262768(mod181)val'_B(48)=\frac{26}{(5row'^4_B(48))(5col'^4_B(48))}=\frac{26}{5\times 135^4\times5\times 1^4}=\frac{26}{27}\equiv 68\hspace{1mm}(\textrm{mod}\hspace{1mm}181) and valA(k)=0val'_A(k)=0 for kK{1,43,39,48}k\in \mathbb{K}-\{1,43,39,48\}.

Now, rowB^\hat{row'_B}, colB^\hat{col'_B} and valB^\hat{val'_B} are extensions of rowBrow'_B, colBcol'_B and valBval'_B so that are agree on K\mathbb{K}. Therefore B^(x,y)=117x51x42y51y1+55x51x125y51y1+29x51x125y51y42+68x51x135y51y1\hat{B}(x,y)=117\frac{x^5-1}{x-42}\frac{y^5-1}{y-1}+55\frac{x^5-1}{x-125}\frac{y^5-1}{y-1}+29\frac{x^5-1}{x-125}\frac{y^5-1}{y-42}+68\frac{x^5-1}{x-135}\frac{y^5-1}{y-1}. So rB(10,x)=kHr(10,k)B^(k,x)=70B^(1,x)+13B^(59,x)+150B^(42,x)+26B^(125,x)+147B^(135,x)r_B(10,x)=\sum_{k\in\mathbb{H}}r(10,k)\hat{B}(k,x)=70\hat{B}(1,x)+13\hat{B}(59,x)+150\hat{B}(42,x)+26\hat{B}(125,x)+147\hat{B}(135,x) where B^(1,x)=B^(59,x)=0\hat{B}(1,x)=\hat{B}(59,x)=0, B^(42,x)=117×82×x51x1=1×(x4+x3+x2+x+1)=x4+x3+x2+x+1\hat{B}(42,x)=117\times 82\times \frac{x^5-1}{x-1}=1\times(x^4+x^3+x^2+x+1)=x^4+x^3+x^2+x+1, B^(125,x)=55×29×x51x1+29×29×x51x42=147(x4+x3+x2+x+1)+117(x4+42x3+135x2+59x+125)=83x4+174x3+14x2+172x+111\hat{B}(125,x)=55\times 29\times\frac{x^5-1}{x-1}+29\times 29\times\frac{x^5-1}{x-42}=147(x^4+x^3+x^2+x+1)+117(x^4+42x^3+135x^2+59x+125)=83x^4+174x^3+14x^2+172x+111and B^(135,x)=68×114×x51x1=150(x4+x3+x2+x+1)=150x4+150x3+150x2+150x+150\hat{B}(135,x)=68\times 114\times \frac{x^5-1}{x-1}=150(x^4+x^3+x^2+x+1)=150x^4+150x^3+150x^2+150x+150

Now, obtain C^(x,y)\hat{C}(x,y) similarly as following: C^(x,y)=kKuH(x,rowC^(k))uH(y,colC^(k))valC^(k)=kKx5rowC5^(k)xrowC^(k)y5colC5^(k)ycolC^(k)valC^(k)\hat{C}(x,y)=\sum_{k\in \mathbb{K}}u_{\mathbb{H}}(x,\hat{row'_C}(k))u_{\mathbb{H}}(y,\hat{col'_C}(k))\hat{val_C}(k)=\sum_{k\in \mathbb{K}}\frac{x^5-\hat{row'^5_C}(k)}{x-\hat{row'_C}(k)}\frac{y^5-\hat{col'^5_C}(k)}{y-\hat{col'_C}(k)}\hat{val'_C}(k) where similarly, rowC:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}row'_C:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} so that rowC(1)=42row'_C(1)=42, rowC(43)=125row'_C(43)=125, rowC(39)=135row'_C(39)=135, rowC(48)=1row'_C(48)=1 and for the rest values of K\mathbb{K}, rowC(k)row'_C(k) returns arbitrary elements of H\mathbb{H}, for example rowC(73)=59row'_C(73)=59, rowC(62)=125row'_C(62)=125, rowC(132)=1row'_C(132)=1, rowC(65)=135row'_C(65)=135 and rowC(80)=42row'_C(80)=42.

Also, colC:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}col'_C:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} so that colC(1)=42col'_C(1)=42 , colC(43)=125col'_C(43)=125, colC(39)=135col'_C(39)=135, colC(48)=125col'_C(48)=125 and for the rest values of K\mathbb{K} , colC(k)col'_C(k) returns arbitrary elements of H\mathbb{H}, for example colC(73)=59col'_C(73)=59, colC(62)=1col'_C(62)=1, colC(132)=1col'_C(132)=1, colC(65)=42col'_C(65)=42 and colC(80)=59col'_C(80)=59.

And , valC:K={1,43,39,48,73,62,132,65,80}H={1,59,42,125,135}val'_C:\mathbb{K}=\{1,43,39,48,73,62,132,65,80\}\to\mathbb{H}=\{1,59,42,125,135\} so that valC(1)=1(5rowC4(1))(5colC4(1))=15×424×5×424=127114(mod181)val'_C(1)=\frac{1}{(5row'^4_C(1))(5col'^4_C(1))}=\frac{1}{5\times 42^4\times5\times42^4}=\frac{1}{27}\equiv 114\hspace{1mm}(\textrm{mod}\hspace{1mm}181), valC(43)=1(5rowC4(43))(5colC4(43))=15×1254×5×1254=111782(mod181)val'_C(43)=\frac{1}{(5row'^4_C(43))(5col'^4_C(43))}=\frac{1}{5\times 125^4\times5\times125^4}=\frac{1}{117}\equiv 82\hspace{1mm}(\textrm{mod}\hspace{1mm}181) , valC(39)=1(5rowC4(39))(5colC4(39))=15×1354×5×1354=11455(mod181)val'_C(39)=\frac{1}{(5row'^4_C(39))(5col'^4_C(39))}=\frac{1}{5\times 135^4\times5\times135 ^4}=\frac{1}{145}\equiv 5\hspace{1mm}(\textrm{mod}\hspace{1mm}181) and valC(k)=0val'_C(k)=0 for kK{1,43,39}k\in \mathbb{K}-\{1,43,39\}.

Now, rowC^\hat{row'_C}, colC^\hat{col'_C} and valC^\hat{val'_C} are extensions of rowCrow'_C, colCcol'_C and valCval'_C so that are agree on K\mathbb{K}. Therefore C^(x,y)=114x51x42y51y42+82x51x125y51y125+5x51x135y51y135\hat{C}(x,y)=114\frac{x^5-1}{x-42}\frac{y^5-1}{y-42}+82\frac{x^5-1}{x-125}\frac{y^5-1}{y-125}+5\frac{x^5-1}{x-135}\frac{y^5-1}{y-135}. So rC(10,x)=70C^(1,x)+13C^(59,x)+150C^(42,x)+26C^(125,x)+147C^(135,x)r_C(10,x)=70\hat{C}(1,x)+13\hat{C}(59,x)+150\hat{C}(42,x)+26\hat{C}(125,x)+147\hat{C}(135,x) where C^(1,x)=C^(59,x)=0\hat{C}(1,x)=\hat{C}(59,x)=0, C^(42,x)=114×82×x51x42=117(x4+42x3+135x2+59x+125)=117x4+27x3+48x2+25x+145\hat{C}(42,x)=114\times 82\times\frac{x^5-1}{x-42}=117(x^4+42x^3+135x^2+59x+125)=117x^4+27x^3+48x^2+25x+145, C^(125,x)=82×29×x51x125=25(x4+125x3+59x2+135x+42)=25x4+48x3+27x2+117x+145\hat{C}(125,x)=82\times 29\times\frac{x^5-1}{x-125}=25(x^4+125x^3+59x^2+135x+42)=25x^4+48x^3+27x^2+117x+145and C^(135,x)=5×114×x51x135=27(x4+135x3+125x2+42x+59)=27x4+25x3+117x2+48x+145\hat{C}(135,x)=5\times 114\times\frac{x^5-1}{x-135}=27(x^4+135x^3+125x^2+42x+59)=27x^4+25x^3+117x^2+48x+145

So the third term of the left of equation (1)(1) is (MηMrM(α,x))z^(x)=(2rA(10,x)+30rB(10,x)+100rC(10,x))z^(x)=(23x4+72x3+144x2+10x+19)(149x6+26x5+55x4+166x3+52x2+22x+74)=169x10+104x9+158x8+161x7+86x6+57x5+85x4+43x3+99x2+72x+139(\sum_M \eta_M r_M(\alpha,x))\hat{z}(x)=(2r_A(10,x)+30r_B(10,x)+100r_C(10,x))\hat{z}(x)=(23x^4+72x^3+144x^2+10x+19)(149x^6+26x^5+55x^4+166x^3+52x^2+22x+74)=169x^{10}+104x^9+158x^8+161x^7+86x^6+57x^5+85x^4+43x^3+99x^2+72x+139

Therefore the left of equation (1)(1) is s(x)+r(α,x)MηMz^M(x)(MηMrM(α,x))z^(x)=115x10+143x9+180x8+66x7+127x6+97x5+172x4+93x3+24x2+154x+90s(x)+r(\alpha,x)\sum_M \eta_M \hat{z}M(x)-(\sum_M \eta_M r_M(\alpha,x))\hat{z}(x)=115x^{10}+143x^9+180x^8+66x^7+127x^6+97x^5+172x^4+93x^3+24x^2+154x+90

Now, the Prover finds polynomials g1(x)g_1(x) and h1(x)h_1(x) so that h1(x)vH(x)+xg1(x)+σ1H=115x10+143x9+180x8+66x7+127x6+97x5+172x4+93x3+24x2+154x+90h_1(x)v_{\mathbb{H}}(x)+xg_1(x)+\frac{\sigma_1}{|\mathbb{H}|}=115x^{10}+143x^9+180x^8+66x^7+127x^6+97x^5+172x^4+93x^3+24x^2+154x+90

that means, the Prover finds polynomials g1(x)g_1(x) and h1(x)h_1(x) so that h1(x)(x5+180)+xg1(x)+121=115x10+143x9+180x8+66x7+127x6+97x5+172x4+93x3+24x2+154x+90h_1(x)(x^5+180)+xg_1(x)+121=115x^{10}+143x^9+180x^8+66x^7+127x^6+97x^5+172x^4+93x^3+24x^2+154x+90

In this case, polynomials g1(x)=134x3+92x2+90x+100g_1(x)= 134x^3+92x^2+90x+100 and h1(x)=115x5+143x4+180x3+66x2+127x+31h_1(x)=115x^5+143x^4+180x^3+66x^2+127x+31 are obtained. The Prover sends g1(x)g_1(x) and h1(x)h_1(x) to the Verifier.

8)8) The Verifier selects β1FH\beta_1\in \mathbb{F}-\mathbb{H}. For example β1=22\beta_1=22. The Verifier sends β1=22\beta_1=22 to the Prover.

9)9) The Prover and the Verifier run sumcheckprotocol\bold{sum\hspace{1mm}check\hspace{1mm}protocol} for r(α,x)(ηAA^(x,β1)+ηBB^(x,β1)+ηCC^(x,β1))r(\alpha,x)(\eta_A\hat{A}(x,\beta_1)+\eta_B\hat{B}(x,\beta_1)+\eta_C\hat{C}(x,\beta_1)) The Prover calculate σ2=kHr(α,k)MηMM^(k,β1)=r(10,1)MηMM^(1,22)+r(10,59)MηMM^(59,22)+r(10,42)MηMM^(42,22)+r(10,125)MηMM^(125,22)+r(10,135)MηMM^(135,22)\sigma_2=\sum_{k\in\mathbb{H}}r(\alpha,k)\sum_{M}\eta_M\hat{M}(k,\beta_1)=r(10,1)\sum_{M}\eta_M\hat{M}(1,22)+r(10,59)\sum_{M}\eta_M\hat{M}(59,22)+r(10,42)\sum_{M}\eta_M\hat{M}(42,22)+r(10,125)\sum_{M}\eta_M\hat{M}(125,22)+r(10,135)\sum_{M}\eta_M\hat{M}(135,22) That is σ2=70×0+13×0+150×135+26×88+147×22=70\sigma_2=70\times 0+13\times 0+150\times 135+26\times 88+147\times 22=70.

Then, the Prover finds g2(x)g_2(x) and h2(x)h_2(x) so that r(α,x)MηMM^(x,β1)=h2(x)vH(x)+xg2(x)+σ2Hr(\alpha,x)\sum_M \eta_M\hat{M}(x,\beta_1)=h_2(x)v_{\mathbb{H}}(x)+xg_2(x)+\frac{\sigma_2}{|\mathbb{H}|}

where r(α,x)MηMM^(x,β1)=r(10,x)(2A^(x,22)+30B^(x,22)+100C^(x,22))r(\alpha,x)\sum_M\eta_M \hat{M}(x,\beta_1)=r(10,x)(2\hat{A}(x,22)+30\hat{B}(x,22)+100\hat{C}(x,22)) that A^(x,22)=5x51x4222512259+5x51x1252251221+132x51x135225122125=159x51x42+56x51x125+114x51x135=159(x4+42x3+135x2+59x+125)+56(x4+125x3+59x2+135x+42)+114(x4+135x3+125x2+42x+59)=148x4+108x3+104x2+9x+174\hat{A}(x,22)=5\frac{x^5-1}{x-42}\frac{22^5-1}{22-59}+5\frac{x^5-1}{x-125}\frac{22^5-1}{22-1}+132\frac{x^5-1}{x-135}\frac{22^5-1}{22-125}=159\frac{x^5-1}{x-42}+56\frac{x^5-1}{x-125}+114\frac{x^5-1}{x-135}=159(x^4+42x^3+135x^2+59x+125)+56(x^4+125x^3+59x^2+135x+42)+114(x^4+135x^3+125x^2+42x+59)=148x^4+108x^3+104x^2+9x+174,B^(x,22)=117x51x422251221+55x51x1252251221+29x51x12522512242+68x51x1352251221=146x4+37x3+95x2+100x+165\hat{B}(x,22)=117\frac{x^5-1}{x-42}\frac{22^5-1}{22-1}+55\frac{x^5-1}{x-125}\frac{22^5-1}{22-1}+29\frac{x^5-1}{x-125}\frac{22^5-1}{22-42}+68\frac{x^5-1}{x-135}\frac{22^5-1}{22-1}=146x^4+37x^3+95x^2+100x+165and C^(x,22)=114x51x4222512242+82x51x125225122125+5x51x135225122135=6(x4+42x3+135x2+59x+125)+5(x4+125x3+59x2+135x+42)+177(x4+135x3+125x2+42x+59)=7x4+156x3+62x2+137x\hat{C}(x,22)=114\frac{x^5-1}{x-42}\frac{22^5-1}{22-42}+82\frac{x^5-1}{x-125}\frac{22^5-1}{22-125}+5\frac{x^5-1}{x-135}\frac{22^5-1}{22-135}=6(x^4+42x^3+135x^2+59x+125)+5(x^4+125x^3+59x^2+135x+42)+177(x^4+135x^3+125x^2+42x+59)=7x^4+156x^3+62x^2+137x

Therefore r(α,x)MηMM^(x,β1)=105x510x(127x4+93x3+27x2+66x+49)=(x4+10x3+100x2+95x+45)(127x4+93x3+27x2+66x+49)=127x8+96x7+82x6+162x5+40x4+84x3+77x2+23x+33r(\alpha,x)\sum_M \eta_M \hat{M}(x,\beta_1)=\frac{10^5-x^5}{10-x}(127x^4+93x^3+27x^2+66x+49)=(x^4+10x^3+100x^2+95x+45)(127x^4+93x^3+27x^2+66x+49)=127x^8+96x^7+82x^6+162x^5+40x^4+84x^3+77x^2+23x+33

So, the Prover find g2(x)=40x3+30x2+173x+105g_2(x)=40x^3+30x^2+173x+105 and h2(x)=127x3+96x2+82x+162h_2(x)=127x^3+96x^2+82x+162so that h2(x)vH(x)+xg2(x)+σ2H=h2(x)(x5+180)+xg2(x)+705=127x8+96x7+82x6+162x5+40x4+84x3+77x2+23x+33h_2(x)v_{\mathbb{H}}(x)+xg_2(x)+\frac{\sigma_2}{\mathbb{H}}=h_2(x)(x^5+180)+xg_2(x)+\frac{70}{5}=127x^8+96x^7+82x^6+162x^5+40x^4+84x^3+77x^2+23x+33 The Prover sends σ2\sigma_2, g2(x)g_2(x) and h2(x)h_2(x) to the Verifier.

10)10) The Verifier selects β2FH\beta_2\in \mathbb{F}-\mathbb{H}. For example β2=80\beta_2=80. The Verifier sends β2=80\beta_2=80 to the Prover.

11)11) The Prover and the Verifier run sumcheckprotocol\bold{sum\hspace{1mm}check\hspace{1mm}protocol} for MηMvH(β2)vH(β1)valM^(x)(β2rowM^(x))(β1colM^(x))\sum_M \eta_M\frac{v_{\mathbb{H}}(\beta_2)v_{\mathbb{H}}(\beta_1)\hat{val_M}(x)}{(\beta_2-\hat{row_M}(x))(\beta_1-\hat{col_M}(x))} over K\mathbb{K}.

The Prover calculates σ3=kK(MηMvH(β2)vH(β1)valM^(k)(β2rowM^(k))(β1colM^(k)))=(272×18×538×144+3072×18×11738×21+10072×18×11438×161)+(272×18×5136×21+3072×18×55136×21+10072×18×82136×78)+(272×18×132126×78+3072×18×29136×161+10072×18×5126×68)+(3072×18×68126×21)=84\sigma_3=\sum_{k\in\mathbb{K}}(\sum_M \eta_M\frac{v_{\mathbb{H}}(\beta_2)v_{\mathbb{H}}(\beta_1)\hat{val'_M}(k)}{(\beta_2-\hat{row'_M}(k))(\beta_1-\hat{col'_M}(k))})=(2\frac{72\times 18\times 5}{38\times 144}+30\frac{72\times 18\times 117}{38\times 21}+100\frac{72\times 18\times 114}{38\times 161})+(2\frac{72\times 18\times 5}{136\times 21}+30\frac{72\times 18\times 55}{136\times 21}+100\frac{72\times 18\times 82}{136\times 78})+(2\frac{72\times 18\times 132}{126\times 78}+30\frac{72\times 18\times 29}{136\times 161}+100\frac{72\times 18\times 5}{126\times 68})+(30\frac{72\times 18\times 68}{126\times 21})=84 Then, the Prover finds polynomials g3(x)g_3(x) and h3(x)h_3(x) so that h3(x)vK(x)=a(x)b(x)(xg3(x)+σ3K)h_3(x)v_{\mathbb{K}}(x)=a(x)-b(x)(xg_3(x)+\frac{\sigma_3}{|\mathbb{K}|}) where a(x)=M{A,B,C}ηMvH(β2)vH(β1)valM^(x)N{A,B,C}{M}(β2rowN^(x))(β1colN^(x))a(x)=\sum_{M\in \{A,B,C\}} \eta_M v_{\mathbb{H}}(\beta_2)v_{\mathbb{H}}(\beta_1)\hat{val'_M}(x)\prod_{N\in\{A,B,C\}-\{M\}}(\beta_2-\hat{row'_N}(x))(\beta_1-\hat{col'_N}(x))and b(x)=M{A,B,C}(β2rowM^(x))(β1colM^(x))b(x)=\prod_{M\in\{A,B,C\}}(\beta_2-\hat{row'_M}(x))(\beta_1-\hat{col'_M}(x)).

where polynomials rowM(x)row'_M(x), colM(x)col'_M(x) and valM(x)val'_M(x) for M{A,B,C}M\in\{A,B,C\} are obtained based on features above by using Lagrange polynomials as following:

rowA(x)row'_A(x) is a polynomial so that rowA(1)=42row'_A(1)=42 , rowA(43)=125row'_A(43)=125, rowA(39)=135row'_A(39)=135, rowA(48)=1row'_A(48)=1, rowA(73)=135row'_A(73)=135, rowA(62)=125row'_A(62)=125, rowA(132)=59row'_A(132)=59, rowA(65)=42row'_A(65)=42 and rowA(80)=1row'_A(80)=1. Therefore rowA(x)=i=19yiLi(x)=2x8+2x7+20x6+27x5+29x4+101x3+63x2+66x+94row'_A(x)=\sum_{i=1}^{9}y_iL_i(x)=2x^8+2x^7+20x^6+27x^5+29x^4+101x^3+63x^2+66x+94.

colA(x)col'_A(x) is a polynomial so that colA(1)=59col'_A(1)=59 , colA(43)=1col'_A(43)=1, colA(39)=125col'_A(39)=125, colA(48)=42col'_A(48)=42, colA(73)=1col'_A(73)=1, colA(62)=135col'_A(62)=135, colA(132)=125col'_A(132)=125, colA(65)=59col'_A(65)=59 and colA(80)=42col'_A(80)=42. Therefore colA(x)=i=19yiLi(x)=24x8+31x7+114x6+83x5+158x4+97x3+172x2+119x+166col'_A(x)=\sum_{i=1}^{9}y_iL_i(x)=24x^8+31x^7+114x^6+83x^5+158x^4+97x^3+172x^2+119x+166

valA(x)val'_A(x) is a polynomial so that valA(1)=5val'_A(1)=5, valA(43)=5val'_A(43)=5, valA(39)=132val'_A(39)=132 and valA(k)=0val'_A(k)=0 for kK{1,43,39}k\in \mathbb{K}-\{1,43,39\}. Therefore valA(x)=i=19yiLi(x)=154x8+27x7+113x6+48x5+2x4+74x3+41x2+33x+56val'_A(x)=\sum_{i=1}^{9}y_iL_i(x)=154x^8+27x^7+113x^6+48x^5+2x^4+74x^3+41x^2+33x+56.

rowB(x)row'_B(x) is a polynomial so that rowB(1)=42row'_B(1)=42, rowB(43)=125row'_B(43)=125, rowB(39)=125row'_B(39)=125, rowB(48)=135row'_B(48)=135, rowB(73)=59row'_B(73)=59, rowB(62)=1row'_B(62)=1, rowB(132)=42row'_B(132)=42, rowB(65)=135row'_B(65)=135 and rowB(80)=59row'_B(80)=59. Therefore rowB(x)=i=19yiLi(x)=40x8+119x7+95x6+141x5+98x4+139x3+40x2+74x+20row'_B(x)=\sum_{i=1}^{9}y_iL_i(x)=40x^8+119x^7+95x^6+141x^5+98x^4+139x^3+40x^2+74x+20

colB(x)col'_B(x) is a polynomial so that colB(1)=1col'_B(1)=1 , colB(43)=1col'_B(43)=1, colB(39)=42col'_B(39)=42, colB(48)=1col'_B(48)=1, colB(73)=59col'_B(73)=59, colB(62)=42col'_B(62)=42, colB(132)=125col'_B(132)=125, colB(65)=1col'_B(65)=1 and colB(80)=135col'_B(80)=135. Therefore colB(x)=i=19yiLi(x)=79x8+119x7+32x6+123x5+38x4+126x3+5x2+17x+5col'_B(x)=\sum_{i=1}^{9}y_iL_i(x)=79x^8+119x^7+32x^6+123x^5+38x^4+126x^3+5x^2+17x+5

valB(x)val'_B(x) is a polynomial so that valB(1)=117val'_B(1)=117 , valB(43)=55val'_B(43)=55, valB(39)=29val'_B(39)=29, valB(48)=68val'_B(48)=68 and valB(k)=0val'_B(k)=0 for kK{1,43,39,48}k\in \mathbb{K}-\{1,43,39,48\}. Therefore valB(x)=i=19yiLi(x)=20x8+56x7+156x6+74x5+120x4+97x3+128x2+140x+50val'_B(x)=\sum_{i=1}^{9}y_iL_i(x)=20x^8+56x^7+156x^6+74x^5+120x^4+97x^3+128x^2+140x+50

rowC(x)row'_C(x) is a polynomial so that rowC(1)=42row'_C(1)=42, rowC(43)=125row'_C(43)=125, rowC(39)=135row'_C(39)=135, rowC(48)=1row'_C(48)=1, rowC(73)=59row'_C(73)=59, rowC(62)=125row'_C(62)=125, rowC(132)=1row'_C(132)=1, rowC(65)=135row'_C(65)=135 and rowC(80)=42row'_C(80)=42. Therefore rowC(x)=i=19yiLi(x)=114x8+155x7+62x6+38x5+87x4+100x3+103x2+13x+94row'_C(x)=\sum_{i=1}^{9}y_iL_i(x)=114x^8+155x^7+62x^6+38x^5+87x^4+100x^3+103x^2+13x+94

colC(x)col'_C(x) is a polynomial so that colC(1)=42col'_C(1)=42 , colC(43)=125col'_C(43)=125, colC(39)=135col'_C(39)=135, colC(48)=125col'_C(48)=125 , colC(73)=59col'_C(73)=59, colC(62)=1col'_C(62)=1, colC(132)=1col'_C(132)=1, colC(65)=42col'_C(65)=42 and colC(80)=59col'_C(80)=59. Therefore colC(x)=i=19yiLi(x)=24x8+79x7+102x6+56x5+80x4+150x3+168x2+122x+166col'_C(x)=\sum_{i=1}^{9}y_iL_i(x)=24x^8+79x^7+102x^6+56x^5+80x^4+150x^3+168x^2+122x+166

valC(x)val'_C(x) is a polynomial so that valC(1)=114val'_C(1)=114 , valC(43)=82val'_C(43)=82, valC(39)=5val'_C(39)=5 and valC(k)=0val'_C(k)=0 for kK{1,43,39}k\in \mathbb{K}-\{1,43,39\}. Therefore valC(x)=i=19yiLi(x)=44x8+127x7+101x6+139x5+159x4+156x3+36x2+114x+143val'_C(x)=\sum_{i=1}^{9}y_iL_i(x)=44x^8+127x^7+101x^6+139x^5+159x^4+156x^3+36x^2+114x+143

Therefore, since vH(β1)=225+180=18v_{\mathbb{H}}(\beta_1)=22^5+180=18 and vH(β2)=805+180=72v_{\mathbb{H}}(\beta_2)=80^5+180=72 , a(x)=2×72×18valA^(x)(80rowB^(x))(22colB^(x))(80rowC^(x))(22colC^(x))+30×72×18valB^(x)(80rowA^(x))(22colA^(x))(80rowC^(x))(22colC^(x))+100×72×18valC^(x)(80rowB^(x))(22colB^(x))(80rowB^(x))(22colB^(x))=51x40+33x39+99x38+73x37+24x36+75x35+81x34+142x33+21x32+119x31+81x30+2x29+81x28+9x27+141x26+69x25+61x24+16x23+32x22+44x21+77x20+149x19+160x18+29x17+24x16+70x15+134x14+14x13+56x12+57x11+168x10+30x9+126x8+93x7+160x6+122x5+35x4+117x3+64x2+100x+177a(x)=2\times 72\times 18 \hat{val_A}(x)(80-\hat{row_B}(x))(22-\hat{col_B}(x))(80-\hat{row_C}(x))(22-\hat{col_C}(x))+30\times 72\times 18 \hat{val_B}(x)(80-\hat{row_A}(x))(22-\hat{col_A}(x))(80-\hat{row_C}(x))(22-\hat{col_C}(x))+100\times 72\times 18 \hat{val_C}(x)(80-\hat{row_B}(x))(22-\hat{col_B}(x))(80-\hat{row_B}(x))(22-\hat{col_B}(x))=51x^{40}+33x^{39}+99x^{38}+73x^{37}+24x^{36}+75x^{35}+81x^{34}+142x^{33}+21x^{32}+119x^{31}+81x^{30}+2x^{29}+81x^{28}+9x^{27}+141x^{26}+69x^{25}+61x^{24}+16x^{23}+32x^{22}+44x^{21}+77x^{20}+149x^{19}+160x^{18}+29x^{17}+24x^{16}+70x^{15}+134x^{14}+14x^{13}+56x^{12}+57x^{11}+168x^{10}+30x^9+126x^8+93x^7+160x^6+122x^5+35x^4+117x^3+64x^2+100x+177and b(x)=(80rowA^(x))(22colA^(x))(80rowB^(x))(22colB^(x))(80rowC^(x))(22colC^(x))=42x48+67x47+.....+18b(x)=(80-\hat{row'_A}(x))(22-\hat{col'_A}(x))(80-\hat{row'_B}(x))(22-\hat{col'_B}(x))(80-\hat{row'_C}(x))(22-\hat{col'_C}(x))=42x^{48}+67x^{47}+.....+18

References:

[1] Boneh, Dan, Wilson Nguyen, and Alex Ozdemir. "Efficient functional commitments: How to commit to a private function." Cryptology ePrint Archive (2021).‏

[2] de Castro, Leo, and Chris Peikert. "Functional commitments for all functions, with transparent setup and from SIS." Annual International Conference on the Theory and Applications of Cryptographic Techniques. Cham: Springer Nature Switzerland, 2023.‏

[3] Gabizon, Ariel, and Zachary J. Williamson. "plookup: A simplified polynomial protocol for lookup tables." Cryptology ePrint Archive (2020).‏

[4] Wee, Hoeteck, and David J. Wu. "Lattice-based functional commitments: Fast verification and cryptanalysis." International Conference on the Theory and Application of Cryptology and Information Security. Singapore: Springer Nature Singapore, 2023.‏

Last updated