From 1be2ac1bd910e7a6b6148aecbb9ed5cd95866d8f Mon Sep 17 00:00:00 2001 From: flyingnobita <46126470+flyingnobita@users.noreply.github.com> Date: Tue, 5 Mar 2024 23:28:38 +0800 Subject: [PATCH 1/2] tests: add end to end test for proof and verify --- zk_prover/proofs/proof_0 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_1 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_10 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_11 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_12 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_13 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_14 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_15 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_2 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_3 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_4 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_5 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_6 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_7 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_8 | Bin 0 -> 2144 bytes zk_prover/proofs/proof_9 | Bin 0 -> 2144 bytes zk_prover/src/circuits/tests.rs | 66 +++++++++++++++++++++++++++++++- 17 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 zk_prover/proofs/proof_0 create mode 100644 zk_prover/proofs/proof_1 create mode 100644 zk_prover/proofs/proof_10 create mode 100644 zk_prover/proofs/proof_11 create mode 100644 zk_prover/proofs/proof_12 create mode 100644 zk_prover/proofs/proof_13 create mode 100644 zk_prover/proofs/proof_14 create mode 100644 zk_prover/proofs/proof_15 create mode 100644 zk_prover/proofs/proof_2 create mode 100644 zk_prover/proofs/proof_3 create mode 100644 zk_prover/proofs/proof_4 create mode 100644 zk_prover/proofs/proof_5 create mode 100644 zk_prover/proofs/proof_6 create mode 100644 zk_prover/proofs/proof_7 create mode 100644 zk_prover/proofs/proof_8 create mode 100644 zk_prover/proofs/proof_9 diff --git a/zk_prover/proofs/proof_0 b/zk_prover/proofs/proof_0 new file mode 100644 index 0000000000000000000000000000000000000000..2c8ec1aa769c1e57bc70c049bc7964cbe856e7b0 GIT binary patch literal 2144 zcmV-m2%q;1`3>;$b6_y%DVEM?7_r5}S$R3F=A17*Z*;ybK*35F(u|543$PvB;zH!~ zs12+?lQKdPfG4;|GZWoul8DI;Fc!8_+!HjdMpx3?`C z#9h3S z39987(w;Gpls7^r7Yvci$0Et+BgF4D&0;P_oLai zE?@X}29>~K>k<3^a#86cuTDF79pG>B&o!(X_-i4IIssbznKu5dIGLe4XZUO%tMBXhg`Kop^6gYdLK$T@02!N#4!-ENfy~eZMCUbNLZbH3QG#{q#En z0Pzz^e;C92`;dp%F>5jg#*1SUh(}~aT(FS6R^>SxH#Gd#_RaPJsp{{LX?x$rZ&nou za~CfDO*(MNwVud@4ut?YB~ngTb*V%E(Z(b|7_ema#oI?Ms_L&Fu zWZz3A@V@(2h9Tph5aj_p@tP6TXi5-2fq|Px$dE}j#;(H#owd43NN?KsP!UKcygU3r zow<?_r)+(@f6uljT>cxOtN($S$xwFa_xSM>9lsb?ap6;4=d- zd^8Q#L#3cEMmp(yi=Eh_ehBU(&<%x+S8w^o_sA{eFJ6N%^ zmB+C#FcV{rUnC0z3dsXcNLUjD8Joa1!jIOu`b|P`n;}-WVVQfkzo`g0G1cYtV-PAB z+-aC&Q|FI6XR-Fw01q4L>sj+biZMVbr#DjwLKod21nvx0v9~;7nVeo?YC6F7Ik)Ua z;0LRqN^EVl9^xJxu*+F+;z_%PYG)WqKqoAd1Rx#k?6vqCMH?c~)VMAQbOBq5$hUaJ zbv0xm9qYf`4!&V0TVp{*T-@8u zY_5P5^$Fij^YL_(l7A;$^=Jnkmz;?k!G!*sgbuYK%DWV`CiEl|Y};SZ z=b)^HVe*V5x-!gz0znrq&>_;t-A-^+}1ckC3PGO|2%jE7TQN1(wZ0=ttUg0Vj zagY7uhbcl(WAi0wpPd@ths`7wD#{ioLeKr#p3l^dE5aKRD=dq+pqpc_&EJcaQf$Hs z_zUgoMq%Z~+wM0}T1cQ1ax(O9h7a3$xCb;6wTXZTGa@b?yi1G8gD9b;P+utNiQN<> zwVwPkl3^F~TOmje8{O3F1>DLz*CTl5UA@t%EOI|1rSqDIRl(^_DWC@}EERUSC75WI zq(KYlgK)%=p0s;3mgS*yn{WzATX!xY?DY0OFd6t>)s%&YlN7wRC{CAjg+|LgQ{m`{ zh<|w~`1p|g^W0XnXPT5C+wkWfV73=?m;Arr_oMctRbK}xm|wQXz{!N{TMApo0twS* zk;wl?P8Z~I{fDQ>SJ*TTHWYI%iqPhZ$h;G&YAfWBzrOs;W#=Gux|O!=g5JLzzZrD?zi1mGeLV7Km~CY2S%vs7>;>OXt2Ejf|JDty z`!J(atY$MIskzi`O5J4MtXm_?MTkqH(=E8}-aOEIgR2A{dhII^*aqIz9EbDEO?ITa z$@@qPGbYP4T0I%nrEbiOG~VVLXKRCbyIy;P1Lc4ctI)SqW|cX*OB4{O8Gv2L6)Nur z<+By8HaXu{6N|TWnO?7Kwpg^NBvJ2A(DI$8Z@mr|>{P2#X0cD@>k=m^c&MGK91hNq zKR3Gf216h9Vh27Q*-8RE+}SNC%ORMk^-eU8`KReTa__EdBNVX~7&0RoNJYhSU8pC` zGDDtv-vo7Hp-o$mpU9R-{yl_@{JT&uB^4a}lmaWhbwEWRGofsg7-(!xoUs+Oy_^^a zKSyvOPx5|+a_Y9>HDWV!ZzwrIV0Vuqq|aL=K$k5neUL8_*Q`BBCqLdR`oLb)ank85 zi4u}*79~jzO29*;>ZidixH9wkT1;q()ZYGw4rRTZK!uCq*U5X50kb){ecjdp*XW+; z4U3gR9#4i(DdgcvYtKRksa8@Uth!2D+p1_9D}tG#kbR-JV(r1>@6c$9W3#wF@%#(3 z=++(b=p?%eo;hiX!ICHNDU;tZDBEf-p|Pg|rsipkHsoro17KP&&smmmp@n{`$Z-em Wh9AXfyG6`iJoew9C~ll}zwsXuH6g_S literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_1 b/zk_prover/proofs/proof_1 new file mode 100644 index 0000000000000000000000000000000000000000..deb8e6046239cf7c64592018718cd5863a127414 GIT binary patch literal 2144 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 W#Nw7(uo+0M_UFe+KJjBMM88nLI{}3N literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_10 b/zk_prover/proofs/proof_10 new file mode 100644 index 0000000000000000000000000000000000000000..2734c07129eca2cfe9c40731159185ef27a92b22 GIT binary patch literal 2144 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 WfOI1h62%M5D%bBEE2^4 literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_11 b/zk_prover/proofs/proof_11 new file mode 100644 index 0000000000000000000000000000000000000000..0f25b45e5b7c9b2bf71a576eda02d47bff9ef00d GIT binary patch literal 2144 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 Wzm+73t}cqym(<7OJR!Yqj7i|1)Fj#f literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_13 b/zk_prover/proofs/proof_13 new file mode 100644 index 0000000000000000000000000000000000000000..3179d813e1fdabb5f18cd64ade87b6493ab03aea GIT binary patch literal 2144 zcmV-m2%q-?g@P|f^K6>g9K!U#mpdc|oM2WJCBb6UVL`~)VeD}q&u&T7ekNyH#&?i& z2-z$dX4cyJj=;KtQu>j=A9vR*C#&1T6%xb$9|~h0J@5A|SIVBIIv!qCM#xuxPF!>s zdLGGSb2FMhPEBKz98rn7uEQfUBT8;v=hlsq4O#6Mw5&T%Glj(6g@VDA;1o6NNR;FO*r)i;O|9MoYq?$4rklRt2ty10pPOdRz zLQbU*v{JicprKjyoST|b8FU!%GG}J~<;k(ggznwGYPj_-`7N5OQCgf}1}JR zuP_T7S0T?AE9(PP>&?||V9vOy8|%La;3=>+{>WDSb>zCBaRDalM(iHgb8tgIBgBKJd zF7#|FgoU~(e7Uk{jo$#+;5`RMmbcv5*?uEfqc6dvBwaqtg8WP zk)iySAL7iD{`ek&4zT-=n#{BF@Wf6Dj~}}2j%RQ&&#$wm=kUwoPE3<X5bN&)*XKgNKfmdMZ{XK?=HIDz7hWlf7w49X!JSn^Zx?x({etq6S=ohskE7Nx= zEx>Mt-;=~F4gF(8#r|}z^R1`zfen@d-+*amv#%Qp%nvS8+|3HmMDGI{qsRvjq6W12 z!DFZg=b`irKv>)rZWor)NiMxM0g~{(eJkQB*99pIkf}=??zu>=Yex+n;&uvQKR%^M z(?0i^hEfQOM$u%`3;_NQKZ)q`KJUYQc-J23I zgtaGvwZ$4?EUWL~tivo7T>Tv;Do&bk+LVz1NW>kJznG-S+N8}+o*z04IB1O}coO5~ zW95CV;Wc#U&E_O*JT_RKIjYX&7}EV9?qcEu-?kyq?!sLTzvG`yg<=W)^cE|mM*l2w z>qJ5D%&SKc@6)){+)@IH$mj^|$vI7H=WQQX>zT~x?|K*ib>CbUeYOSGkJQ{maP!!{ zjK>r#v9s$JhUorUJD70OW!6FtBY1g1Y#?Z~g`M@9b8{$5+}IDJ?RR(s{AGR~EQhue z*_v^o6Zy;fQL2fMNc7b)K+P*MbENdlDUB_=#V52WQMhk$R;i(| z-v1BnZIy4=sMGh$e8y1fEJBAJq*$(MD!{2uw0xt~?OsvK4jRo`EIHfA|n#>-2ym&=RuX z@%(#7z=zZbtB!cN`=YeocDjM@SX|-<6DW@e^CQk>qR>4=wJlBqNv5%8I1lSkp;DyR zAlvR_E6yVq1;hPNcRV zkvZF^)+SU3D?D)@AmdCT;}biY9?faQIj~FH??TiaTN-|6m2842LY?et#wXr1^qO-) zzV0M%DIq>;W(3w8@z#zfjeC$6c{7iPfDGdKx8`HEOp$;lT+V9Piz%KdvnAnV#8XM9 zzZZzzCgJYeWOQqpa9b@pJ;SIQIPUeeE+T9`PoX2uB?}d(*1_$w4NC(dr?;o7WgTaFvp=$rkhlieW2%HaYeHlZM9v}EiN?dr_wK~;b9V{3eFSFT)(1Cn7Jt#*Yv0uQ72-i zlS%pp_BU_@dmA}Ulv`PUXav=RI*aYrwWd!CwHBC>3^T`OX7A-^C1dPd5qtM>rWe%8 z+Lq!)3CMjM_O7axOX|`tTLD=L?ahBjc4AKik0}B(C7dm;idh;20XCqpA63PQSfPA^ WB3xvJpJ}+JS(-(j2qqAc40 literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_14 b/zk_prover/proofs/proof_14 new file mode 100644 index 0000000000000000000000000000000000000000..9384c858dd9f580725d800e05decc6428b7cc66f GIT binary patch literal 2144 zcmV-m2%q;DQc|`qHzp%#xmuFuQsFx-r8YbGvYJdBwq~{hPY@a7!(d(~|+ zqmt`2NgM}E|7d?mRg`aKfM3BIudYm}v0Gjo$^wrpulk1STNbB2+3)6N0cU4Wv-=4m z!yB_k+V8Z@{gGX=Xh+npO$?K!!h&Z+yCb<0_yXlBMb7Z9)(Bv@9h2pMl3++Y%wl)E zZ@rTNg=O@6h!&F__sT2Vq=s9$Q99c2405#S>n~G7mwG8(o;iR|>x6;>ko5~!LE-Zu zv{KYxALPmHRWPLhW`XS}Ir2u8zF?*jaHdkbNrnuOGJ(+zpU`b-EnVa~3&Lg-^?Uvu zY=J@^es1@h7!u-jf*eBJ=?p=a5h+#2NVhiN z-^ZyAF;W*3SHdLN<$pm5%JM&}PsVPgyn7|@1tMsKhnKJ6&Siww?d=_%0dwvruAg3; zKBaf~h;HXJv=dM=Mekz&s;M^BhGN+-v50OBmZ++~Q#0hN=@P6grz#p=c9zn*&+yk+ z#k@ejJgZ0w;&_>sse+(^0yzrW&Ux`7^5B5^Gq$9|`MEz4 z(S!S0X-RSLqrRUFYDwp$H6_K<*`T-|IYp4#sSm7zth ztI5>^GGW8mjv4hR@iPc~CEK zL;nr9hRzg;I=f?XgpS)Ar#$ACj}@0^ zWODCDERsGgIPQvSQ5xqJ*~Q??%c#KcT-#BX{0w)NP}TPC@tcnu3f!BbaZ|@b?$3TB zPs)!m)I#w7@c|(7LG&Hp?v+9!;<6hW2b)ut9uS#v^K8}bx)62!d+!ooc|Wu!nJxwf zC%Iv__|Kr11-YE_b?D{X5h3F0C1II2$UnaAy%v-XdpCpAj^cTKo>pcQvqvN<(4XRP zY=74Z8b7Vp>AK4p!T3jELqFKZLBdn){eZ@s4b<>Q(%8W-3~m5}!3zHd&vbn21wcmB z;r8w59TNkXRt17Y(`S+BhfipvlT9rHeRt?yVzE!7;uL4smx3$8%nSU?oxpg|1d~^a zc#~c&y1VQ@>F`xe+(J6CLZq`tyJ=yG{E=Y9=P(CvT;)6jl=c1(AO;Jo+2zjHjE9(z z5vXFH(9v;@={Z(|eBd80rn5U|mYmm8R8D$Q22^{%i=#R68gZT19fOqR|A#RkyewR? z67uR-8lYpbdAMG;MV2{!Vabv^zRRM4RoR3d^cwp$TBac7H%AT?03yTYRX~>0E9J5_ zhIcrz%9qLkS^*1oMa}=3;7?%;I0rs}HY&y#D3~+Y-M{=DrdfCp&?aIlg@4w#sDn2A z5=juN(SV`%bz%;`TRHr=e?a0d!GDz8&zd@J` zYEk@>ToxNC!veASO6w6!8jTC8KdV%hKRPJuGX<>%mCIO-K+V9RNC(LMF~4lWpD>lB zG*d1?{Y96vdeJ@*-7;Qn1yz@;G)vJIc@e#3Ik#*`mx=h<=fpppVUn5>XzYnBF};iX z_}WRM!*Lg-KP^zajXU52^jQSupQUXO0SQe>``d&}>JTZns69_7xk*MO4e(MI<7FrKUdD_1 zNNou6;?jnS_We@K7A06mN3TQlZlyB}cy literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_15 b/zk_prover/proofs/proof_15 new file mode 100644 index 0000000000000000000000000000000000000000..5e2ae9f4091be86dd88c48caeeaba1a73d0596e3 GIT binary patch literal 2144 zcmV-m2%q;aLb@zx$nE=9XITClu}x|?a9QOEGc>!YlTRUO9P7*l_hTjz=Gix$^iHBw zlTWMEO}8CxY+nyFm?%n45Fi`^P!x7wfCIxlSLQQC@J%jUXdh1|SaiaK+!=owjx2bmKfG_2i|}XsP)c*iX;Hb! z%8d#dJ-19-7-t+A9e7}?sV)mIe}`Xys(gfMmo0#ZFnuci@v*A>`u+bY{@WQoKHBfV zD!v(MO-!IIZlQMvRN0r#AUH={Qwakoo+v=};c~Q~Oi2_x zmhSNxWXMO_)n(OIwV!iJOAIAf9S#7>G4rg;6>O}p5|AwhV2^qhnC0Qp&buSp^r!dQ98ma{`n`sP0St&9xqT$Tmp%c& z>lzL4gXT*kUwxs9b}x>*mY_m!22=uSj)OaZ%0i^|Yzy#DC;ns)e*{j%-3qAS$37&h zWJRfpo!oYrDdDs2sk*3FCTvZ0otGu9@&e!TZiZ2e`jAjSWpxi z6n!QkPU<8Ta?Aw77!OnGD<_eWT+Jq0VtLX6y%5(GD1o(rjv(KtGFeurBK>J8Y+^J0 zw8bA~i)zvGSjPYbI;sKj=KXw(UCLUvpoi0U3JXur5^eH{NNTM#=vT2F-Rq=smSY*` zF)-}f)jRVhQK4&H08Hz<5I;L-7%*=uze&?snx{AgtadK|%(_qa%B&*?O5Oa`O4_Vi zRxGreLjNeCtV~@M!AHHY4GQdFS z{ZW!T>T88&`EyqyzcLB*00FyaW%f)>Q_FZD#e5}krG;*rI?!+`jF{vf`sB(`0nCDa zn2(0Fr4-!nEvbyz+x=rS&wuT};PBfm%B=8QyR&$f2mnzwmpPk(`6(D2_uq#<_YE|= z&=zGB6w=gB-Oj=^*w3QE30Y1zIv<;wrnu{Y5;SDOt_0x@ja+{$C!zoFL$m(dk-lMH zcBa{u8u0~`bjEla%WR1TT7Skf{+bYSBeV~!6V0vwymSvO&iw%`yN0a880$rPZmz9lBEYA?Ux-RnS z;sngEDp)KL+lbVaP%y>&SK`KdTowF)tEo?AsA;JelSla-JmGruO^&}^DS7uwc* z>IP!Tad+rtz^d)RlQ`Gs72lgBH0PB!#X|Fh9hLgCsi;g|)?Y*zw&1EWB7l_MjKa+Z zitLRUgzl{8Ct6u%5E+~@^On_Jp*RY*kKRMjy(^X&ZQg->JBl>CKisi|l2vTkh|v5! zoZs~Ln_!;=U6f-pg^4p#5o z24QI}K4bymkT@tJhIPH`^x7YPF4yFKU6oF z<9Y|Tax}+J4Uj~zKR|}&SZ2Edur^oeOqxk0 za_-M0vDG>t=2nT0{6f_*M8La-w3o;Q$bmvf*RN`|c#;Km$L@L|wv%7m^+M5`W`Ix; zNh?RPdUz(CCq0aIr2Li=4kqQX8YnJ(4q7BZ+yZ5g9Ao(w~!H; zb2E9Ox5=+9+)DM1H%h1lCnVinqtAs5Veq9c4%!s`vRMXa-w8eT=n?Jtwx1x+7c_^6 z6AfP^v-&`mrzma>3}|zA3#=BUUl2u3wBW!nUbw)ErWTa}5FgAz{Hjcy^(S1of~Rme zLg#J>D8mTXR~Pb!vrLL6RVt=XxWqyQr?3GJ@UtVlOoR&@0-01_&uv{+LekboSzV7afQf=#|Z;io?Rh+UW&Wi`EiE& z4mrK-kd&h!9919s!ga`zZz>QfEqQ8Ab$P&v?ZbzQ9nCqjFALomQkc&@!_Q)AW$Ff` WI~JUW&bN#X=yJQEiLvyzTBjTtg%W%K literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_2 b/zk_prover/proofs/proof_2 new file mode 100644 index 0000000000000000000000000000000000000000..c332cee1b08222ca283fefeec627d4ce19dc53ba GIT binary patch literal 2144 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 W_>peT+Zqu3U);Ee4b6{bUVC;O%@~RR literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_5 b/zk_prover/proofs/proof_5 new file mode 100644 index 0000000000000000000000000000000000000000..7bb1b19474d4d130c3e853b1ef8ec5a29bc89db4 GIT binary patch literal 2144 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 W5E=AS4^res(EeN{GAL)Jh6flbX&X8K literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_7 b/zk_prover/proofs/proof_7 new file mode 100644 index 0000000000000000000000000000000000000000..549c241b73f93f6a3e1152fa5424f8849f855844 GIT binary patch literal 2144 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 WR#sOZALn%sFKN&{2K5G6>4JkSK?i^U literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_8 b/zk_prover/proofs/proof_8 new file mode 100644 index 0000000000000000000000000000000000000000..2aef7af184b9084464c01be5896a314acad08c29 GIT binary patch literal 2144 zcmV-m2%q-{5En9lqQA~p8&v08Ox`0deR1Iu?XSvoCjK1*Y%nttVpxqk(|Ni^=hA~- zs$``0%_<;j*4t6n{Y&Ckz-SR0O*~reMUbp7X?2SfaGS0#`gA8NOZK@d+t%5v7_6=U z^<8uoLcOigLHC!ReazVO)N8NZ4a6`ZUe!)%{2 zof45L!;fXau=`L?T$a3tl>Q3#Kyg@|)InD(gd9c&eQL~s19A41I>Q(h$JINgB+SHOSJXPfdUA<4fOKu zGhs^&Pj$=f5_?!-8jIbQ6Pd9CyZ>PBNt3vM#zdktX{sbNrc;IWcS$Sa_P)V9&dbg) z6H7M^>;g$f=-l2uF(~8}yfi*K0f0Ne1Pt+1Sh9x}#Ev2}?QWVNm+uNUp|0qgvM=y9 zDK>~f!RNKHvcE|c3(@qdEhl{T)g}?{+ksFT_K-k7C;RUuTEWGQ*9T<_E>XHCu@WcY z1fR&>k2u`0@X&j!4PJ}d7F+jo)41~xH4^oce6r!Bb}P8>x`M8de~K-@FmPT$2`Ey3 za{)64AAY7{V14u&gxBDxZnL<4G~`H97!a^DQJ!_{J9M}d=+);Y(o(gY38~yEV0WxK znv;}Yjs*%pII3xK+W0^XWSYARLd?Nl#>}rY!3Q*-E-riU$4Yj=X{>Wj!3b3i9<&c2 zMYfJ!b#&R~9aXg4jAcRf`EE0f45C9T$B=pgyS1s?@M3TCq5QnzPgz`7^myw&d4qVk z{$z%RSYvl8ErxLWk(7--PZp09G!M5`~WL=za#}5b||?CsO}~!#xdN&m3zjNa^`G``QOf0H_&r*Srm6CK!QT zs$zbD+pNU1GJ8iByR@&@g8bk?U_rc71W^jM2mc@GRb2rzBz}Bm?cUuQ@dzXT6MMt6 z?35%D2wLEE;w#`nShNM*7J$oc`DYI%Ex6Y6$+t9W-P8G6(J6#A*1(7oT;=q_hW*L& zFm^&Fzbv=w2p%p_Sf3Q~W&|^ltLoQr>&rKLLOs$UyhKVDuY6q{PhRN)R+$-0?wu>S zIV2fHx*FZ+G!>+y9HECH2{`9y9ET*qiJnGddk&bwZvBoqBoWbCv zqDNh)@0VM2NU1C|)-G+`j^xj~JM9_xLF@h@CGp0C$Y4V-Mm>zhWa(Q$+&^fpSd24= zoy~FqCPaB7J{_4Gy$brJJW*a5{v7rH;=;g{#R3TWfzh?bg!IB6P_C#)Apv=D54gIh zBGY7XOGVmT4^6waL6S~Y4spp4rlyD4CZ&iI;8~z{>a@`VZQ==@>Z#dg@6DenQKShB z*G~oKO_Xtxt)*L;eS7>wS7mn}09GLhBf5e3hH|(UJ9Mem{8F{)F1%CKGyHT3;V&i1 zU!~-$X)oGdcy?I_c;18rkwcEHMpR{7UYZ^W9R>75>ibrT+H$=#`R3RUAeRS$Vp=Cv zx9mheoNgDoslMd5o&=g(Y_sa4?6Th>f*R*2$k??}^9f~60U^Y#$epG29&=jFSCty8#HQhW8 zGK^^Gd}&CoDxomiK{m$4ygHU!m~w3MTXCTAM9<sD5`-$`xch<6F45h67rx3Kl=6Xr1mpgkqD{@FQks1wp4+D+mysxQ{f@@9 z?k!;=HEt@ciO2PMxsZ3}uuTa@X!a-mKXM9xqM=?BxTH-h#~T=bVT=u;*@eDi-#9~@ z9xOpCQJ3T2iT(z9FBE(xM^+jkz>zgISao(#|4aWJOZ&ZL9Rd}Y?Mrq*nI}XX0R>Vq zlpho>eYEot W5wAeAI-jr)7_T7Ukok-fWN(~KFcP-_ literal 0 HcmV?d00001 diff --git a/zk_prover/proofs/proof_9 b/zk_prover/proofs/proof_9 new file mode 100644 index 0000000000000000000000000000000000000000..d0800b38a97ddbeda5c1a1f0156043d3ed673509 GIT binary patch literal 2144 zcmV-m2%q;PbNL<&OBMn>F30tdmM;`Aid0LJPaG%-gqR4xuy2wcG@%}`F4z^1M^@5K ze=q>`!umw9djq|?ZXGcd-bb_vi2w;o5!!oiLSbbdSt<_q(m4`*aX+jfVcmLH28;Iz zqXtij1q4=%Kv#iW2AH;=-S8LzOUxjI@F+*@@(eT%P9|`k!jt=Itev;P-#PAg+l7k&H|0#i^k z@C9rncX-dq?fVx68phmhC}-T+Q1D z!>AD4EX!3GzLx1L=|`m`UDHKNBVI;#4_xzGI1z7jDyaw-LnYU6E!+(0r3D57qiNFx z`4^3M@t!d$7%Vo=u?|CzuHqeK>^RX?-+BBQZ*snq2-?`TAbOHd2*IwO`RtnEobg#i zJM#(-N2z!M*m@H!1XdHArf-58Vs{ z*YTN@F`dCnL@W?LQ0V582~(S8MTdN1MLo92HOZ6{bBY{udf?94Yo}A`tz(!Cp6Kj5 z#UvzziKVyD&EP@}PSzl?ka9H@$~|Eu9O0+~^qI>gYKCcPhsuqgHfP}}vSDB(<GcSjIWjbJ zHVu5Lq4wn)Z!78l{hxygF<|eSoUsk2EIb796kz_g2EnzUzl2`8?NYqFc(`c+{VQ!MW7x7i2f7D768>%My-|p1zf0& zDHK`jidH5T#i|JA!BPT6DP@$sHOJf%0F2z#_T)P8tqMoBa=d^WR_);9(oGCWvrPb| zEi;yXt=Qvxhn%+|+MLZMZc%;4acXG3lgcGyBRT+s1VI`w zP;h(dv13yITpbv?x+{=#IqT397r+Siw&8`H%y=govK+Jsbao z3*=-#WFbRX`a=;+x)~xhEZEd#U`BTtROloI2jm^eEY-P~n>~1<%*CVWDd|Bf0sDOL z$L**d{+2z~r=i_*pZ(0jV#y<}O;8@yphROS8)a?#o`8G^a{a}0n<7G)Tcb$RKUweq z({9JCPXh3Y<7KjhP+lD)S`*b<_Tt=yC510`4*|-i+j#c6##v27^F+8C)%v9i+EFEs$w6qzJi??DzBx-#JG|%@OYAPTZZuZ)&V!g=Ai8@+a@Q)rIxQ!q^y)%-0 zOyva%Jd+(RZ_BDiUge$k78VC5UYl1q>SO>D8sve+nyT+zawfC`TJm6PKFpACH=$Hse?<8mk56{(#0>W%Hk zV>K&T&Mb8+Y=%;Ja~&B3+d9neStxiLT|22_thI~#>vP?nmL(L$Wm%pmb7p zBn9^PmyJOanpYv@y%lY;=w;IX)p;Mz+NkV4o=sDKXhcExskiqhAQ7;qaW_!e#wP%W zUEk>RKcuNrBB}H^?mvvsoj_tBxn?ZvqM8XB6KIYuB`Ds2UM_(c-)mFwSf5bczgnOW zellsBvBmuEw$kb@c~lmj{(6U0$OxBUUb<%Wv9w_ZR85S9Oasaq)Fo4}wUM&^W_P7z zQWf7Rl?hRFdF0Cjizuwn!-tcx)T^^Od$peBq#5)sH|>5=!jpNM7yDvvEM9jr? zpF&*qQfI*p9~MdRVbom=nt@y=&0pKT#H?fhV$^t@#5TEz+o&bz2|k>8s;d@p6MHT_7POp##f::from_csv("../csv/entry_16.csv").unwrap(); + + for user_index in 0..16 { + // get merkle proof for entry ˆuser_indexˆ + // let user_index = 0; + let merkle_proof = merkle_sum_tree.generate_proof(user_index).unwrap(); + + let circuit = MstInclusionCircuit::::init(merkle_proof); + // generate a universal trusted setup for testing, along with the verification key (vk) and the proving key (pk). + let (params, pk, _) = generate_setup_artifacts( + 11, + Some("../backend/ptau/hermez-raw-11"), + circuit.clone(), + ) + .unwrap(); + let instances_clone = circuit.instances().clone(); + + let proof = { + let mut transcript = Keccak256Transcript::new(Vec::new()); + let proof_creation_result = create_proof::<_, ProverSHPLONK<_>, _, _, _, _>( + ¶ms, + &pk, + &[circuit], + &[&[&instances_clone[0]]], + &mut OsRng, + &mut transcript, + ); + assert!(proof_creation_result.is_ok()); + transcript.finalize() + }; + + // write proof to file + let proof_path = format!("{}_{}", "./proofs/proof", user_index); + File::create(Path::new(&proof_path)) + .expect("Failed to create proof file") + .write_all(&proof[..]) + .expect("Failed to write proof"); + println!("Proof written to: {}", proof_path); + + let result = { + let mut transcript = Keccak256Transcript::new(proof.as_slice()); + verify_proof::<_, VerifierSHPLONK<_>, _, _, SingleStrategy<_>>( + ¶ms, + pk.get_vk(), + SingleStrategy::new(¶ms), + &[&[&instances_clone[0]]], + &mut transcript, + ) + }; + assert!(result.is_ok()); + } + } } From 774eddfc3188bf015a71363aa2230c7cbc2538ff Mon Sep 17 00:00:00 2001 From: flyingnobita <46126470+flyingnobita@users.noreply.github.com> Date: Tue, 5 Mar 2024 23:30:56 +0800 Subject: [PATCH 2/2] doc: Add comments --- zk_prover/src/circuits/tests.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zk_prover/src/circuits/tests.rs b/zk_prover/src/circuits/tests.rs index 27df804..209e659 100644 --- a/zk_prover/src/circuits/tests.rs +++ b/zk_prover/src/circuits/tests.rs @@ -487,6 +487,7 @@ mod test { .unwrap(); let instances_clone = circuit.instances().clone(); + // generate proof let proof = { let mut transcript = Keccak256Transcript::new(Vec::new()); let proof_creation_result = create_proof::<_, ProverSHPLONK<_>, _, _, _, _>( @@ -509,6 +510,7 @@ mod test { .expect("Failed to write proof"); println!("Proof written to: {}", proof_path); + // verify proof let result = { let mut transcript = Keccak256Transcript::new(proof.as_slice()); verify_proof::<_, VerifierSHPLONK<_>, _, _, SingleStrategy<_>>(