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,row^AHPA(k))uH(y,col^AHPA(k))valA^(k)=∑k∈Kx−row^AHPA(k)x37−row^AHPA(k)37y−col^AHPA(k)y37−col^AHPB(k)37val^AHPA(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
Now, calculates B^(x,y) similarly as following:
B^(x,y)=∑k∈KuH(x,row^AHPB(k))uH(y,col^AHPB(k))val^AHPB(k)=∑k∈Kx−row^AHPB(k)x37−row^AHPB(k)37y−col^AHPB(k)y37−col^AHPB(k)37val^AHPB(k)
So, rB(10,x)=∑k∈Hr(10,k)B^(k,x)=1620326x36+1066668x35+96125x34+603567x33+558242x32+351383x31+1220164x30+1113220x29+511617x28+218379x27+543077x26+178907x25+1329682x24+58568x23+1146533x22+948877x21+45785x20+1231010x19+398692x18+1334094x17+506342x16+28965x15+158706x14+657240x13+506136x12+484833x11+713105x10+498148x9+1237146x8+95520x7+1145960x6+1517154x5+414812x4+1548405x3+614052x2+1634786x+1454002
Now, calculates C^(x,y) similarly as following:
C^(x,y)=∑k∈KuH(x,row^AHPC(k))uH(y,col^AHPC(k))val^AHPC(k)=∑k∈Kx−row^AHPC(k)x37−row^AHPC37(k)y−col^AHPC(k)y37−col^AHPC37(k)val^AHPC(k)
So, rC(10,x)=∑k∈Hr(10,k)C^(k,x)=564874x36+158712x35+1068273x34+705225x33+585350x32+1605845x31+41353x30+177119x29+934488x28+418387x27+217275x26+277881x25+544871x24+906984x23+1088639x22+730223x21+114465x20+205097x19+1381442x18+366209x17+1014467x16+30473x15+1671297x14+539462x13+45399x12+1575452x11+676582x10+1015618x9+1425352x8+26812x7+661279x6+93349x5+1038786x4+203161x3+277282x2+1676177x+1111155
Therefore, the third term of the left of equation (1) is
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.
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).
πAHP6=(1228955,598072,871213,716999,913282,1520995,178796,1426141,632720,148723,842325,1393100,1301945,772228,974543,1490686,1461879,1073543,988,1171130,236470,225080,1269609,1197501,1392158,1572201,35309,270789,926637,1268939,926637,1268939,1067491,1122641,1248016,198429,340507,247239,1040499,91446,1014490)
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).