From ca5712cfbd0712652763b63f76851787ceeadfec Mon Sep 17 00:00:00 2001 From: ctrlc03 <93448202+ctrlc03@users.noreply.github.com> Date: Thu, 2 Mar 2023 16:28:57 +0000 Subject: [PATCH] feat(verification): helper function to verify that a zkey is valid given a r1cs, a pot and a zkey, this helper function will verify that the zkey is valid --- packages/actions/src/helpers/verification.ts | 26 ++++++++++ packages/actions/src/index.ts | 1 + .../test/data/artifacts/bad_circuit_0000.zkey | Bin 0 -> 4903 bytes .../test/data/artifacts/circuit.circom | 23 +++++++++ .../actions/test/data/artifacts/circuit.r1cs | Bin 0 -> 352 bytes .../test/data/artifacts/circuit_0000.zkey | Bin 0 -> 3308 bytes .../test/data/artifacts/notcircuit.circom | 18 +++++++ .../test/data/artifacts/notcircuit.r1cs | Bin 0 -> 456 bytes .../test/data/artifacts/notcircuit_0000.zkey | Bin 0 -> 2668 bytes .../artifacts/powersOfTau28_hez_final_02.ptau | Bin 0 -> 87704 bytes .../actions/test/unit/verification.test.ts | 47 ++++++++++++++++++ 11 files changed, 115 insertions(+) create mode 100644 packages/actions/src/helpers/verification.ts create mode 100644 packages/actions/test/data/artifacts/bad_circuit_0000.zkey create mode 100644 packages/actions/test/data/artifacts/circuit.circom create mode 100644 packages/actions/test/data/artifacts/circuit.r1cs create mode 100644 packages/actions/test/data/artifacts/circuit_0000.zkey create mode 100644 packages/actions/test/data/artifacts/notcircuit.circom create mode 100644 packages/actions/test/data/artifacts/notcircuit.r1cs create mode 100644 packages/actions/test/data/artifacts/notcircuit_0000.zkey create mode 100644 packages/actions/test/data/artifacts/powersOfTau28_hez_final_02.ptau create mode 100644 packages/actions/test/unit/verification.test.ts diff --git a/packages/actions/src/helpers/verification.ts b/packages/actions/src/helpers/verification.ts new file mode 100644 index 00000000..bc7ee452 --- /dev/null +++ b/packages/actions/src/helpers/verification.ts @@ -0,0 +1,26 @@ +import fs from "fs" +import { zKey } from "snarkjs" + +/** + * Verify that a zKey is valid + * @param r1csLocalFilePath path to the r1cs file + * @param zkeyLocalPath path to the zKey file + * @param potLocalFilePath path to the PoT file + * @param logger logger instance + * @returns true if the zKey is valid, false otherwise + */ +export const verifyZKey = async ( + r1csLocalFilePath: string, + zkeyLocalPath: string, + potLocalFilePath: string, + logger?: any +): Promise => { + if (!fs.existsSync(r1csLocalFilePath)) throw new Error(`R1CS file not found at ${r1csLocalFilePath}`) + + if (!fs.existsSync(zkeyLocalPath)) throw new Error(`zKey file not found at ${zkeyLocalPath}`) + + if (!fs.existsSync(potLocalFilePath)) throw new Error(`PoT file not found at ${potLocalFilePath}`) + + const res = await zKey.verifyFromR1cs(r1csLocalFilePath, potLocalFilePath, zkeyLocalPath, logger) + return res +} diff --git a/packages/actions/src/index.ts b/packages/actions/src/index.ts index 250654ad..1be1a390 100644 --- a/packages/actions/src/index.ts +++ b/packages/actions/src/index.ts @@ -70,3 +70,4 @@ export { finalizeCeremony } from "./helpers/functions" export { toHex, blake512FromPath, computeSHA256ToHex } from "./helpers/crypto" +export { verifyZKey } from "./helpers/verification" diff --git a/packages/actions/test/data/artifacts/bad_circuit_0000.zkey b/packages/actions/test/data/artifacts/bad_circuit_0000.zkey new file mode 100644 index 0000000000000000000000000000000000000000..b71a70529d3ace7dde79c965a761addb9ac0ce45 GIT binary patch literal 4903 zcmeHL>r2~L7*1kLHI*1mytT%uwQ9W9s`V0e)_9LvwXN5twKiU(*4Su_*Fwi&j4=k= zV587MyA3wR_F-dVY!o_L*7Y(5qn`%-Rv2UKU)b~b9)H;w>_hv(LHFZ%pZ7iQ@w_?L z_Z(dFPlWY4oz4uQHbVH(HbDNk`7IT`Oh_Aw8<1p3W*rC!OoL{{_6~^#xAcOXkTS?p zkM9WEBPvP)H`F2|+zu+w|F@@qMa%4USlo6>bcaW3O}=@2-> z)1fJ?ME_RCCDX_XjDn$tNhn`BsQe%Zu*^7h-`|`~ky1|Mk{D)vsTfZ7)c)ItR~Dpf z9jg*!DF?bj?8G}a#5gGmyqr|QRRY$`IjM9=3Ct?tdI5MnP^S48u=f zNO4KO-cgw*HkgYAwB?F+apM5Ts|V8>&v(Jvyd)lB!w{#}JqF^a`XOu)>t6?}^?_xF z0BWkGaDG*^#@k|T9y~OzdST*r5Ntu^Lk2kDfzenWRNdy$Y^XuVinX#FsuFS$Oonu}V)s~2G{OtSO)AVA1$sXfRorj`-bda_jYiLyry796eO zJPQ@C7R{die9bXaK^&75KBkA=kFJr`olhp|cu%~OQ=iPW5OB#f6o+A&ia`nbQ~L0Osy-f!?%EL3 z-ouy2jhA?blq_@RB8gI^H~0k6CD1&Rn~(~o=6he&z6hm(DXWIb#!;sEU>t#1d5hH* z2lZKgCWp9i$uJb)hyg91%stKCF}lgUehP{U8|C8pW}f~lbY(#)=80lMzzRtn|wP71gKrIoOu+5HmfD!-kXCpoCKhn87d)`bE)=8QrC30szepzGlv%0 z8VXZuII}bCE>M?H!{h}h2dt`GPmtYYl3P?km|NH8yMsgS$s@gwUMW4xY$XVVp!cih zY$KR}s){#TQ(dviYNj)~;cGk0DRMbL!3i(;munz^nL5&(6ENR6FI5`z{IDfZ0cjdy zzkrt11Tj{=y9&dS#Ff-wgcTi=2u|&97Vo|-gI3*H%+t>~N;@u29{D&iRa_Lj5blI} zsYt5lcB7Mbsvw$+#Qixq=ejUvv-6HqS1?o1kRJ5#C6ET50#2pz1gND@{K0`7F+%iq zS!1xSFu1(Y~}qjwY4D%s#Dc65PR;{wG)`up;arg5AA|M1WpdmV%@ zUgzD*TuxJ6WKbNtojD&`9VA%nWIIR0xTksi0R2GirdS%UMz&OyI4$hgtjnhU(&*~6 zG}xtz(*bbrWU*JLN<4YoYXuO4U#+h?nup<==wIk#Js()dav#63SO)`GS&S^*PL||$ zm@yY!;8Fly2wy$w2&&!K$mhf~hf)Js@HlELX|sH+wTy!R)k|3Hkf6^UsjysZp`{m+Jpcl_x1&5zJW}f9m#f1l^%q46Cp_!W_b~t;Gyi|j{S07B@xBKlNl?mQ z2js!0p!7KPWPxpFLInys^G!L6)AeruVmq%Sfk(YEv!$5W%1eHuKYwkMw}TI&w}PBT z&}?h~4ETQi=JKsibgW&de0*KqGHL3XEY|g)qPmhvU;Q?$hK3;1J@a{hZ;`BR5Ww@( z2~iihbFWvJ|DtMEok(g(z zeklg5M5qCo!ve%m^B_8~kRUrj7zps%334kTH6XhjK&pU10f>Qoyk@dN)PUUxGM@v8 fK>%b9h;IPmAOVm#2teHnRs-UL{0RckaA5!dE@Vnv literal 0 HcmV?d00001 diff --git a/packages/actions/test/data/artifacts/circuit_0000.zkey b/packages/actions/test/data/artifacts/circuit_0000.zkey new file mode 100644 index 0000000000000000000000000000000000000000..2070c2a16a5c2a930955a0cd11b441c9b68f4090 GIT binary patch literal 3308 zcmb=*POW5QU|`?^Vi3&^4-GXe1w5CH@VK6i^mt*cfv$!Ps0L&t$R2S%L9Lxj&N3d(UhVFn z_vie}civJD1@GCMkBi}-!StFKT|m;Y;I`C2De%obJlSu4UW z?PQ9~C1dINulX`H8BXla62JLO#i3|_D=(w|gj1Sk6GdJxZ_evKE0AFRzWq;;$}f{2 z$Ayk9x%Du3;mWR3Q4^0JE30@_BvzDmT>j&*ZRgKZ(aJrMk-A@womtKN{E(KK!XBoJ zTbuie7^^)^C12mUFV#5RU2Vs2>wszN9WBBo9TI(3)D~}9f8+*JMATj9gf{&JL4N{X za%NY*vTFYDPvqOn?2fs=<|bCmp7(Y7rTTyWYNeHvq~`r+bDFpAb=_Z$cVQC8!=gD; zcH7h%Dg6w;Qzl?)ywCJ!Xj97H$# zT6TU(YV4Ie^Lx)^H;1pAy58e>u0!sYX$yXSQ@kSExYA^^Q$+Rgd#)0Kw_leXo^y#$ z)MxglOZQn`vT_K`kqC0xzKgw%>E!wIUb;HR1(r%W&OIJApJ&=H!HoyM#6HtJZ~OF` zsBQYv*okIc{nuE7w~MU{&#_KU5EhZ_E_!!NV_O8{|8p&KmTp?j@MyE#0T%ybuG$k@ zOTttp>?`;G=p(=Z42lDw@Bo61`l4^Yc={v-aB=koOw{<7axGm^E#%#gKU=*Oas^_= z+vlFE%FaBs*O6t^7CEf3OuO>N?9-PyAD;Il3LbL6BH3LY&C+4H9NQTfW(xBhOJ zyCdhbXVv?g>igbjPTm)wf7xaBmF~4q7gU#i&RewS=D9RsmA&EH3ptjwYWH>JIw?-- zlYPy(DC9p|dDyjCLOlCU39rzV^;y@%W<81jX;7eskz~#HMxM#aIpv#5-c3~8;dQb> zb2^(%$ef2K_&%&|5CP@8257u~Sem!nL;aR@L#WZZr;K4%wO=Nl{qeVgX=%?a^E-d} zgs)^-3)dby#bWKnXD9OGw*ITLX4@6Zmxkzhs|!BWI>3}II`L&_W1s4>)S$dT!EegP z%+&5rEU=mSzN{c^SK~S1!VO%XGr4qVzlmW zmlO9mY!{n8|F$JT1sov*NKl#S5u<6Hr>zTd(l|Qce z*!J4k{Pe#ikMe)*-FIA&Qctjh3;-42qhQ2`zz4~>FP0e2IP+!SrcJV~XVLE zb%fV>=@~6A4K|g63|r^y0uRlrmwtLjPMDyy@rjUIz~P!8jjCwTV=1#31zu~iY{=p) z?ERhca!{10-m#ZkL5KHGU5UI}jgz*1WxD9g!osSh$9C=Co_#7^ lt^2r3QvZXghn70*l2}uHv{1(CYvZCkb-5{5q9=pPXaHQkxNHCb literal 0 HcmV?d00001 diff --git a/packages/actions/test/data/artifacts/notcircuit.circom b/packages/actions/test/data/artifacts/notcircuit.circom new file mode 100644 index 00000000..8b376588 --- /dev/null +++ b/packages/actions/test/data/artifacts/notcircuit.circom @@ -0,0 +1,18 @@ +pragma circom 2.0.3; + +template Main() { + signal input x; + signal x_squared; + signal x_cubed; + signal output out; + + x_squared <-- x * x; + x_cubed <-- x_squared * x; + out <-- x_cubed - x + 7; + + x_squared === x * x; + x_cubed === x_squared * x; + out === x_cubed - x + 7; +} + +component main = Main(); \ No newline at end of file diff --git a/packages/actions/test/data/artifacts/notcircuit.r1cs b/packages/actions/test/data/artifacts/notcircuit.r1cs new file mode 100644 index 0000000000000000000000000000000000000000..610dce6a71b6b63a06e4448187d0a4c12b531615 GIT binary patch literal 456 zcmXRiOfF_*U|?VdVkRKA0C9i-M1lA~@L}@Tht3lVc2;`4FxH5TXl&f(8n8oif#Jg< zzZ3(QI;b{?4lE={9%Kg)5Hycibs+ZWF ffv5rN0J(t`%z}hH$n6SHK8%986BakHFl7J$y#ZJQ literal 0 HcmV?d00001 diff --git a/packages/actions/test/data/artifacts/notcircuit_0000.zkey b/packages/actions/test/data/artifacts/notcircuit_0000.zkey new file mode 100644 index 0000000000000000000000000000000000000000..f452dad7c86efd47691e560dfddcb455790a2990 GIT binary patch literal 2668 zcmb=*POW5QU|`?^Vi3&^4-GXe1w5CH@VK6i^mt*cfvyH*KFl6*K0&RWOU^PL&R*^Ap!ete z%Xi*V4+ZbpoR5p)pTYE+O|F~o+I<~wL$eKhpmUB+um&uW_h5V&fv8;;|fmz%a)l3H7hg9)0h8iWcgYrSIibw_E{^!F70HB z%q3&#`LFphH5pFq&l11+OvRySe=9Ge{)AJSW)nqTFK^E4KP!-6{=WTBk;*TVAIF7` zExGkDc;U*fQc)9+A1kYPRU}rFc3l4Bux;nhQ_;#jk&(Jzj-6S}{QQuXn!+BYi(8xf ziWsXsO(kF7xi8f?-Cb?RZ|i_*>m4n^B^?rdR@4@6S%2gPQ$*BV=Y%%>1wnrTUUFtv zzp`rn@K5C1%j}N1zvd=Z%%1mk`lb4R|7xX`lceVTXLFjj?seT?jdx)Z$HSsIQ+C_b z8Y%q@zf&e)YP`?%XJ}K(-^tGwEa9EY+kdpzIrg$G_wlb9uPeB8+$t;b7w4tv-)En7 zu$+s}N?NX4x_#HOYO%i8f!98YMD%?6aL?`TnYexYCe80fWCq&(ptQsTN=!h&2BE+t zD9J`my65P}uc@(4EOy$owWe3DUq7l_d5BG?CHisV!CGHEs5WpKU!JSD&h^<2>Bo^V zk2hNV3vO-L9cnq5sb?nAT##CjCSuHmW-p@Dg6s#GO~_o3x&|Ny zfvH~|trGCI9@cNezE2 z6cPl@0&%+5n6%wz_<5ZZbd+&m+@0!WeGjpR3ZO@EZl2Lu$Ac#M9U6jO4 zt(mu9{Y+;ol6U=))6?uRPxtqE_s;&5dc*6#QxB)eae^EH4Qx@L3?-R2?PqQYEGXWo zBW$NFVVQhBldJo%ji6=dm*rf`mMt|`^DZgb7Jjop=I#6H=Ub|BeM=&o(+mQxb?V2- zO;~@ny!-$+*OUk03+Fyhyc7Ssyj^Tv zc#d^)g0P5WchS3J8rvcm|DS7_vvkvHhDV#_4zTzibJd>MS`wx*VPCobM;`$WU{ExG z!UG6`7fL_p_?4{8=i|Ot=KD+zfjuE-CV#q}Epj_6@z(KeauUa9%GOp*3-HcJswgSb z;!IwZv)guEm-c5BF8gwp%bGH230a$j{LlOaU2A;Xm(^ISO>W@b zp1Le)?G?uIW~cI9;uEw6?YN1Uk2goIlK$@5X=j{CAclhn}E6-?OZ^@^5Wv`j-d`qtXqFH_cKKcbmmL;n(ee`xT1W1uaS zGUIA@z}pu$?%cn9k0nm!`io1eZA+CS_fxb%(6AgpPcfCCLg0oEL z{+Vg}#U$5O{%pTA@oG@9{FEPMyu*j^kMpqORQ@z6Tyda-57Z`ffjVOMEo~#8=K&wqsQixe$*!OKa3pF literal 0 HcmV?d00001 diff --git a/packages/actions/test/data/artifacts/powersOfTau28_hez_final_02.ptau b/packages/actions/test/data/artifacts/powersOfTau28_hez_final_02.ptau new file mode 100644 index 0000000000000000000000000000000000000000..401b8cfb5769ee61a868b209e97775732bd940ab GIT binary patch literal 87704 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 J6=G{L{s(GN*U10? literal 0 HcmV?d00001 diff --git a/packages/actions/test/unit/verification.test.ts b/packages/actions/test/unit/verification.test.ts new file mode 100644 index 00000000..450a1b83 --- /dev/null +++ b/packages/actions/test/unit/verification.test.ts @@ -0,0 +1,47 @@ +import chai, { expect } from "chai" +import chaiAsPromised from "chai-as-promised" +import { cwd } from "process" +import { verifyZKey } from "../../src" + +chai.use(chaiAsPromised) + +/** + * Verification tests + */ +describe("Verification", () => { + /// @note verify that a zKey is valid + describe("verifyzKey", () => { + const zkeyPath = `${cwd()}/packages/actions/test/data/artifacts/circuit_0000.zkey` + const badzkeyPath = `${cwd()}/packages/actions/test/data/artifacts/bad_circuit_0000.zkey` + const wrongZkeyPath = `${cwd()}/packages/actions/test/data/artifacts/notcircuit_0000.zkey` + const potPath = `${cwd()}/packages/actions/test/data/artifacts/powersOfTau28_hez_final_02.ptau` + const r1csPath = `${cwd()}/packages/actions/test/data/artifacts/circuit.r1cs` + it("should return true for a valid zkey", async () => { + expect(await verifyZKey(r1csPath, zkeyPath, potPath)).to.be.true + }) + it("should throw when given an invalid zkey", async () => { + await expect(verifyZKey(r1csPath, badzkeyPath, potPath)).to.be.rejected + }) + it("should return false when given a zkey for another circuit", async () => { + expect(await verifyZKey(r1csPath, wrongZkeyPath, potPath)).to.be.false + }) + it("should throw an error if the r1cs file is not found", async () => { + await expect(verifyZKey("invalid", zkeyPath, potPath)).to.be.rejectedWith( + Error, + "R1CS file not found at invalid" + ) + }) + it("should throw an error if the zkey file is not found", async () => { + await expect(verifyZKey(r1csPath, "invalid", potPath)).to.be.rejectedWith( + Error, + "zKey file not found at invalid" + ) + }) + it("should throw an error if the pot file is not found", async () => { + await expect(verifyZKey(r1csPath, zkeyPath, "invalid")).to.be.rejectedWith( + Error, + "PoT file not found at invalid" + ) + }) + }) +})