1- The Prover puts X=(7,11,0,1,0,1,0,0,0,2,0,0,0,0,0,0,0,0,7,0,0,...,0) in ComAHPX1 . We consider z=(1,x1,x2,...,x32,w1,w2,y1,y2) where w1=x1+5, w2=x2×x10 , y1=w2+10 and y2=w1×x19. Therefore
z=(1,X,W,Y)=(1,7,11,0,1,0,1,0,0,0,2,0,0,0,0,0,0,0,0,7,0,0,...,0,12,22,32,84) The Prover calculates:
2- The Prover calculates the polynomial zA(x)using indexing zA by elements of H that mean zA(x) is the polynomial where zA(1)=...=zA(ω32)=0, zA(ω33)=1, zA(ω34)=11, zA(ω35)=1 and zA(ω36)=12.
Then calculates polynomial z^A(x) using the polynomial zA(x) such that z^A(x)∈F<∣H∣+b[x] that agree with zA(x) on H . Note that values of up to b locations in this polynomial reveals no information about the witness w provided the locations are in F−H.
Here, for simplicity, let b=2. The Prover calculates z^A(x) such that agree with zA(x) on H and also z^A(3)=3, z^A(4)=4.
Similarly, calculates polynomial z^B(x) so that z^B(x)∈F<∣H∣+b[x] that agree with zB(x) on H that mean z^B(1)=...=z^B(ω32)=0, z^B(ω33)=12, z^B(ω34)=2, z^B(ω35)=32 and z^B(ω36)=7 and also b=2 random locations z^B(3)=3 and z^B(4)=4. So, z^B(x)=12L34(x)+2L35(x)+32L36(x)+7L37(x)+3L38(x)+4L39(x)=161089x38+1433536x37+238219x36+346226x35+1104416x34+613699x33+1378515x32+108992x31+95427x30+329078x29+86471x28+228443x27+395171x26+62079x25+1633970x24+379821x23+1501801x22+1249926x21+616403x20+1137937x19+1001808x18+883357x17+807358x16+1538605x15+1046489x14+969902x13+1160416x12+1109343x11+1454517x10+483212x9+1314862x8+565414x7+875354x6+128579x5+915543x4+1574629x3+1309763x2+450382x+1197347
Similarly, calculates polynomial z^C(x) such that z^C(x)∈F<∣H∣+b[x] that agree with zC(x) on H that mean z^C(1)=...=z^C(ω32)=0, z^C(ω33)=12 , z^C(ω34)=22, z^C(ω35)=32 and z^C(ω36)=84 and also b=2 random locations z^C(3)=3 and z^C(4)=4. So, z^C(x)=12L34(x)+22L35(x)+32L36(x)+84L37(x)+3L38(x)+4L39(x)=411621x38+1135315x37+1041565x36+1267429x35+702672x34+1544342x33+1289612x32+70607x31+1084584x30+418963x29+406701x28+1248319x27+849425x26+1422362x25+1308156x24+475901x23+287621x22+1484809x21+835172x20+192385x19+1001678x18+1374779x17+456462x16+64473x15+948391x14+258251x13+1536835x12+1216001x11+27794x10+1666393x9+1197528x8+118632x7+1415153x6+1478306x5+227473x4+521470x3+1270694x2+856256x+452290
The Prover calculates polynomial W^(x)∈F<ng+b[x] that agree with Wˉ(x) on H[>∣X∣+1] where
Wˉ:H[>∣X∣+1]={ω33,ω34,ω35,ω36}→F
Wˉ(h)=vH[≤∣X∣+1](h)W(h)−X^(h),h∈{w33,w34}
Wˉ(h)=vH[≤∣X∣+1](h)Y(h)−X^(h),h∈{w35,w36}
and vH[≤∣X∣+1](h) is vanishing polynomial on H[≤∣X∣+1]={1,ω,...,ω32}, therefore vH[≤∣X∣+1](h)=(h−1)(h−ω)...(h−ω32). Also X^(h) is the polynomial such that X^(1)=1 and X^(ω)=7, X^(ω2)=11, X^(ω4)=1, X^(ω6)=1, X^(ω10)=2, X^(ω19)=7, X^(ωi)=0 for i∈{1,...,32}−{1,2,4,6,10,19}, therefore X^(x)=1609426x32+145361x31+1059045x30+558036x29+838324x28+732837x27+976113x26+1264050x25+1273306x24+173112x23+551049x22+69676x21+904932x20+1127571x19+546454x18+227060x17+368192x16+552618x15+1053934x14+1614372x13+339618x12+826651x11+852561x10+649028x9+350872x8+760561x7+761015x6+1256843x5+750361x4+868552x3+1432254x2+741241x+1618112Therefore,
3- The Prover finds polynomial h0(x) so that z^A(x)z^B(x)−z^C(x)=h0(x)vH(x). Since z^A(x)z^B(x)−z^C(x)=1014490x76+91446x75+1040499x74+247239x73+340507x72+198429x71+1248016x70+1122641x69+1067491x68+1268939x67+926637x66+270789x65+35309x64+1572201x63+1392158x62+1197501x61+1269609x60+225080x59+236470x58+1171130x57+988x56+1073543x55+1461879x54+1490686x53+314250x52+974543x51+772228x50+1301945x49+1393100x48+842325x47+148723x46+632720x45+1426141x44+178796x43+1520995x42+913282x41+716999x40+1535044x39+506626x38+188456x37+1431082x36+1337814x35+1479892x34+430305x33+555680x32+610830x31+409382x30+751684x29+1407532x28+1643012x27+106120x26+286163x25+480820x24+408712x23+1453241x22+1441851x21+507191x20+1677333x19+604778x18+216442x17+187635x16+1364071x15+703778x14+906093x13+376376x12+285221x11+835996x10+1529598x9+1045601x8+252180x7+1499525x6+157326x5+765039x4+961322x3+807108x2+1080249x+449366
and vH(x)=∏h∈H(x−h)=x37+1, The Prover finds
h0(x)=1014490x39+91446x38+1040499x37+247239x36+340507x35+198429x34+1248016x33+1122641x32+1067491x31+1268939x30+926637x29+270789x28+35309x27+1572201x26+1392158x25+1197501x24+1269609x23+225080x22+236470x21+1171130x20+988x19+1073543x18+1461879x17+1490686x16+314250x15+974543x14+772228x13+1301945x12+1393100x11+842325x10+148723x9+632720x8+1426141x7+178796x6+1520995x5+913282x4+716999x3+871213x2+598072x+1228955
4- The Prover samples a fully random s(x)∈F<2∣H∣+b−1=71[x]. Consider s(x)=7x10+100x8+2x3+1. Then, the Prover computes sum σ1=∑k∈Hs(k)=4255
5- The Prover sends ComAHPX2=∑i=0degW^(x)w^ick(i)=1058742,
ComAHPX3=∑i=0degz^A(x)z^Aick(i)=1287898, ComAHPX4=∑i=0degz^B(x)z^Bick(i)=937880,
ComAHPX5=∑i=0degz^C(x)z^Cick(i)=1199255, ComAHPX6=∑i=0degh0(x)h0ick(i)=255923 and
ComAHPX7=∑i=0degs(x)sick(i)=490704.
6- The Verifier chooses random numbers α, ηA, ηB, ηC and sends them to the Prover. ( Note that the Prover can choose α=hash(s(0)), ηA=hash(s(1)), ηB=hash(s(2)), ηC=hash(s(3)). Let α=10, ηA=2, ηB=30 and ηC=100.
7- The Prover finds polynomials g1(x) and h1(x) such that
where r(x,y)=uH(x,y)=x−yvH(x)−vH(y) , vH(x)=∏h∈H(x−h)=x∣H∣−1. Therefore r(x,y)=x−yx37−y37 . Also rM(x,y)=∑k∈Hr(x,k)M^(k,y) for M∈{A,B,C}.
Now, since ∑MηMz^M(x)=ηAz^A(x)+ηBz^B(x)+ηCz^C(x)and r(α,x)=r(10,x)=10−x1037−x37, so the second term of the left of equation (1) is r(α,x)∑MηMz^M(x)=1254201x74+951966x73+113589x72+498811x71+1098223x70+623670x69+506831x68+1427824x67+170669x66+1564892x65+456048x64+783754x63+911524x62+1557714x61+1027780x60+1574033x59+142618x58+1400297x57+282168x56+1384750x55+197195x54+1663151x53+118626x52+518880x51+143413x50+254527x49+1480415x48+1393054x47+890674x46+1601841x45+234410x44+600518x43+570901x42+601977x41+1491129x40+827957x39+851643x38+345650x37+347482x36+330919x35+857128x34+883439x33+1523863x32+1228455x31+1360072x30+1477512x29+1221548x28+1641696x27+92216x26+1513130x25+606487x24+1664443x23+814464x22+1431125x21+1550828x20+646554x19+1535880x18+1048877x17+1232429x16+1017318x15+1153784x14+1454648x13+885815x12+852481x11+26667x10+127017x9+957446x8+137943x7+729959x6+1418974x5+1383097x4+1529852x3+637155x2+1142934x+830201
Also, z^(x)=W^(x)vH[≤∣X∣+1](x)+X^(x)=379888x38+554258x37+249703x36+693580x35+237592x34+1271221x33+247551x32+1512810x31+759758x30+1072537x29+253693x28+25719x27+1222503x26+1627866x25+1384100x24+548181x23+649897x22+258321x21+1617844x20+354870x19+637040x18+767176x17+1615730x16+1214248x15+326060x14+1213865x13+1172680x12+65141x11+118953x10+478016x9+1051458x8+1675614x7+949880x6+108738x5+1497503x4+486095x3+958242x2+1278901x+1350868 that agree with z on H. Also, rA(10,x)=∑k∈Hr(10,k)A^(k,x) where A^(x,y) is a polynomial such that A^(ω33,1)=1, A^(ω34,ω2)=1, A^(ω35,1)=1, A^(ω36,ω33)=1, and A^(x,y)=0 for the rest of points in H×H. So, A^(x,y) is a bivariate polynomial that passes from these 1369 points. This polynomial can obtain as following:
A^(x,y)=∑k∈KuH(x,rowA′^(k))uH(y,colA′^(k))valA^(k)=∑k∈Kx−rowA′^(k)x37−rowA′^(k)37y−colA′^(k)y37−colB′^(k)37valA′^(k)
So rA(10,x)=∑k∈Hr(10,k)A^(k,x)=535865x36+426856x35+475596x34+458091x33+1506591x32+1335527x31+552969x30+1601654x29+745399x28+1280385x27+671303x26+934855x25+898910x24+1158968x23+641386x22+323675x21+1562721x20+775117x19+327316x18+1420073x17+1643380x16+1205782x15+1516893x14+985877x13+986845x12+1246093x11+815873x10+1148146x9+734510x8+147988x7+284318x6+1525335x5+891280x4+360740x3+448902x2+980633x+1111155 where
The Prover sends,
ComAHPX8=∑i=0degg1(x)g1ick(i)=704382 and ComAHPX9=∑i=0degh1(x)h1ick(i)=1412858 to the Verifier where g1i is coefficient of xi of polynomial g1(x) and h1i is coefficient of xi of polynomial h1(x).
8- The Verifier selects β1∈F−H and sends it to the Prover. (The Prover can selects β1=hash(s(8))). Let β1=22.
9- The Prover calculates σ2=∑k∈Hr(α,k)∑MηMM^(k,β1)=378950 .
Then, the Prover finds g2(x) and h2(x) such that r(α,x)∑MηMM^(x,β1)=h2(x)vH(x)+xg2(x)+∣H∣σ2
where r(α,x)∑MηMM^(x,β1)=r(10,x)(2A^(x,22)+30B^(x,22)+100C^(x,22))
Hence, the Prover finds g2(x)=1642895x35+90753x34+973057x33+203253x32+1006080x31+1489126x30+387500x29+1186430x28+1306295x27+1025414x26+283540x25+568732x24+1586788x23+249151x22+1530172x21+534579x20+915635x19+1483029x18+1130676x17+1240225x16+1493112x15+322151x14+923375x13+860164x12+1387904x11+80620x10+1293397x9+993372x8+1650351x7+464181x6+347427x5+158650x4+634398x3+166024x2+87553x+322087
and
The Prover sends , ComAHPX10=∑i=0degg2(x)g2ick(i)=1380487 and
ComAHPX11=∑i=0degh2(x)h2ick(i)=259428 where g2i is coefficient of xi of polynomial g2(x) and h2i is coefficient of xi of polynomial h2(x).
10- The Verifier selects β2∈F−H and sends it to the Prover. For example β2=80.
11- The Prover calculates σ3=∑k∈K(∑MηM(β2−rowM′^(k))(β1−colM′^(k))vH(β2)vH(β1)valM′^(k))=1162153 . Then, the Prover finds polynomials g3(x) and h3(x) such that h3(x)vK(x)=a(x)−b(x)(xg3(x)+∣K∣σ3) where a(x)=∑M∈{A,B,C}ηMvH(β2)vH(β1)valM′^(x)∏N∈{A,B,C}−{M}(β2−rowN′^(x))(β1−colN′^(x))=1296906x35+1631745x34+612500x33+526824x32+42462x31+818776x30+1402893x29+949566x28+616603x27+986171x26+460008x25+1582261x24+1077886x23+595820x22+1014838x21+1426636x20+118993x19+1092349x18+2468x17+425912x16+662080x15+665736x14+1149617x13+1658716x12+817522x11+616119x10+1252653x9+1566732x8+839662x7+1069376x6+1211198x5+1604604x4+1470873x3+289754x2+317183x+1271979
and b(x)=∏M∈{A,B,C}(β2−rowM′^(x))(β1−colM′^(x))=916454x42+1260873x41+570130x40+932807x39+205150x38+1351730x37+1505570x36+119616x35+661575x34+1229440x33+1192933x32+11364x31+164433x30+929209x29+661767x28+82832x27+968909x26+553623x25+282790x24+780101x23+444918x22+1247671x21+553487x20+1667118x19+498300x18+338714x17+1340147x16+917454x15+1066984x14+1408571x13+566713x12+741597x11+828088x10+727848x9+1313411x8+1457306x7+827199x6+569669x5+24811x4+1103826x3+579226x2+1603084x+624045
Therefore
g3(x)=423903x6+1432943x5+936488x4+482019x3+31948x2+604913x+651087
and
The Prover sends , ComAHPX12=∑i=0degg3(x)g3ick(i)=1418032 and ComAHPX13=∑i=0degh3(x)h3ick(i)=1079279
where g3i is coefficient of xi of polynomial g3(x) and h3i is coefficient of xi of polynomial h3(x).
12- The Prover sends πAHP1=4255, πAHP2=(1299562,1492556,55492,1130442,1037474,379888), πAHP3=(692083,703489,1216744,1167473,321181,1322746,1506753,1498609,1459683,604857,482390,...)πAHP4=(), πAHP5=(), πAHP6=() and πAHP7=()
to the Verifier that are value of σ1, coefficients of polynomials w^(x), z^A(x), z^B(x), z^C(x),h0(x) and s(x), respectively.
13- The Prover sends πAHP8=() and πAHP9=() to the Verifier that are coefficients of polynomials g1(x) and h1(x), respectively.
14-The Prover sends πAHP10=378950, πAHP11=() and πAHP12=() that are value of σ2 and coefficients of polynomials g2(x) and h2(x), respectively.
15- The Prover sends πAHP13=1162153, πAHP14=() and πAHP15=() that are value of σ3 and coefficients of polynomials g3(x) and h3(x), respectively.
16- The Prover chooses random values ηw^, ηz^A, ηz^B, ηz^C, ηh0, ηs, ηg1, ηh1, ηg2, ηh2, ηg3 and ηh3 of F. For example, ηw^=1, ηz^A=4, ηz^B=10, ηz^C=8, ηh0=32, ηs=45, ηg1=92, ηh1=11, ηg2=1, ηh2=5, ηg3=25 and ηh3=63.
17- The Prover calculates the linear combinationp(x)=ηw^w^(x)+ηz^Az^A(x)+ηz^Bz^B(x)+ηz^Cz^C(x)+ηh0h0(x)+ηss(x)+ηg1g1(x)+ηh1h1(x)+ηg2g2(x)+ηh2h2(x)+ηg3g3(x)+ηh3h3(x).
The Prover obtains
p(x)=1380454x41+849817x40+159830x39+1591067x38+1280259x37+129759x36+1642325x35+1231259x34+1091449x33+1071613x32+608376x31+1671687x30+1634568x29+794532x28+450142x27+1460185x26+849620x25+1337323x24+1094067x23+1046543x22+1173097x21+922535x20+166446x19+1212718x18+116006x17+657804x16+39944x15+289261x14+209333x13+1276111x12+363314x11+103604x10+554869x9+513127x8+586495x7+1263408x6+1598951x5+20405x4+276795x3+1644690x2+238507x+242842
18- The Prover calculates p(x) in x=x′ (value of x′ is received from the Verifier), then puts it in πAHP16 . Therefore πAHP16=p(x′)=y′. For example, if x′=2, then πAHP16=p(2)=627433.
19- The Prover computes πAHP17=PC.Eval(ck,p(x),dp,rp,x′) where dp is degree bound of p(x) and rp is a random value.
For example, if the polynomial commitment scheme KZG is used, then the Prover builds polynomial
q(x)=x−x′p(x)−y′=1380454x40+254083x39+667996x38+1248738x37+421093x36+971945x35+229573x34+12084x33+1115617x32+1624526x31+500786x30+994938x29+267802x28+1330136x27+1432093x26+967729x25+1106757x24+194195x23+1482457x22+654815x21+804406x20+853026x19+194177x18+1601072x17+1639829x16+580820x15+1201584x14+1014108x13+559228x12+716246x11+117485x10+338574x9+1232017x8+1298840x7+1505854x6+918474x5+79257x4+178919x3+634633x2+1235635x+1031456
and calculates πAHP17=gq(τ) by using ck as following:
πAHP17=∑i=0degq(x)qick(i)=588602 where qi is the coefficient of xi of q(x).