diff --git a/verifyMainnetDeployment/verifyMainnetProofVerifier.md b/verifyMainnetDeployment/verifyMainnetProofVerifier.md index 0a7959f8f..674e6b589 100644 --- a/verifyMainnetDeployment/verifyMainnetProofVerifier.md +++ b/verifyMainnetDeployment/verifyMainnetProofVerifier.md @@ -1,4 +1,4 @@ -# Verify deployment on Mainnet the proof verifier smart contract (etrog-fork.7) +# Verify deployment on Mainnet the proof verifier smart contract (elderberry-fork.8) In order to verify the smart contract, you will need a machine with at least 256GB of RAM and 16 cores. @@ -82,7 +82,7 @@ this step takes less than 1 minute. cd ~ git clone https://github.com/0xPolygonHermez/zkevm-proverjs.git cd zkevm-proverjs -git checkout ede545493ca4ab6cbd136dbcc452c7794d01bb08 +git checkout 1f228c110be466ec8b91d251713df4194ba49aeb npm install tmux -c "npm run buildsetup --bctree=../zkevm-prover/build/bctree" ``` @@ -151,7 +151,7 @@ sha256sum contracts/verifiers/FflonkVerifier.sol The result should be: ``` -8ae7baadd9f2ffb07862b0a74c20e1ad1cc2d4136e416ce5beac82a4e9a44923 +9bf2d96c589a64ba8ebde36f280993d1dc0ac3ca3cac1d09b5550055b8a523e8 ``` To compile smartcontract execute following command: @@ -167,28 +167,29 @@ npx hardhat compile Bytecode of smartcontract was on bytecode property of json file _FflonkVerifier_ generated on path _artifacts/contracts/verifiers/FflonkVerifier.sol/_ ``` -608060405234801561000f575f80fd5b506159c7 -806200001e5f395ff3fe60806040523480156100 -0f575f80fd5b5060043610610029575f3560e01c -80639121da8a1461002d575b5f80fd5b61004061 -003b366004615950565b610054565b6040519015 -15815260200160405180910390f35b5f6158e056 -5b6040516104c08201518082526020820191507f -30644e72e131a029b85045b68181585d2833e848 -79b9709143e1f593f00000016104e08401518209 -90508082526020820191507f30644e72e131a029 +608060405234801561001057600080fd5b506159 +ee80620000216000396000f3fe60806040523480 +1561001057600080fd5b506004361061002b5760 +003560e01c80639121da8a14610030575b600080 +fd5b61004361003e366004615973565b61005756 +5b604051901515815260200160405180910390f3 +5b6000615901565b6040516104c0820151808252 +6020820191507f30644e72e131a029b85045b681 +81585d2833e84879b9709143e1f593f000000161 +04e0840151820990508082526020820191507f30 : : -5b61590f8161286e565b61591983826128a7565b -61592281612906565b61592b81613e54565b6159 -3481614549565b61593d816151d0565b61594681 -6156ce565b9050805f5260205ff35b5f80610320 -808486031215615963575f80fd5b610300840185 -811115615974575f80fd5b849350858286011115 -615985575f80fd5b8092505050925092905056fe -a2646970667358221220761b1f07d5034592f204 -cb3439dbfabc28fb771c6e1bc6c8016e3d7b42ad -5a2164736f6c63430008140033 +81612878565b61593a83826128b1565b61594381 +612911565b61594c81613e61565b615955816145 +59565b61595e816151f0565b615967816156ee56 +5b90508060005260206000f35b60008061032080 +848603121561598857600080fd5b610300840185 +81111561599a57600080fd5b8493508582860111 +156159ac57600080fd5b80925050509250929050 +56fea2646970667358221220065c100f41ce696b +303e853b86cdaa6a5ef43dec684aa118e566f3fa +613427c464736f6c63430008140033 + ``` Verify bytecode compiled: @@ -201,29 +202,30 @@ cat ./artifacts/contracts/verifiers/FflonkVerifier.sol/FflonkVerifier.json | jq The result should be: ``` -34c11f41d424eb821b42630183c4b97dc8689163276ca50095e5918202950703 +27270e1846e7e8512ab9cc311a96a1425a03adda282b18d5beb521dfe09c3d22 ``` ## Download bytecode of deployed smartcontract -To download bytecode of deployed smartcontract, need the address of smart contract, in this case it's _0x1C3A3da552b8662CD69538356b1E7c2E9CC1EBD8_. +To download bytecode of deployed smartcontract, need the address of smart contract, in this case it's _0x4AaBBA26EA9E7A7fbD052d17a167e6aE3F8eC7Be_. ### Download by copying data manually Go to Etherscan or Beaconcha to get transaction bytecode. -Associated with address _0x1C3A3da552b8662CD69538356b1E7c2E9CC1EBD8_ found the transacction _0x2f0ce26dd454211f84df373e7b37be2d683cb71532bc6d0ec63d6fcdbaa4c5e3_. +Associated with address _0x4AaBBA26EA9E7A7fbD052d17a167e6aE3F8eC7Be_ found the transacction _0x6cc2cbf18cefe30ec2b4776b525e187f06f88bb52fe94c1b0dd2629b199fd9c9_. - ### Etherscan (https://etherscan.io) + https://etherscan.io/address/0x4AaBBA26EA9E7A7fbD052d17a167e6aE3F8eC7Be + https://etherscan.io/tx/0x6cc2cbf18cefe30ec2b4776b525e187f06f88bb52fe94c1b0dd2629b199fd9c9 - https://etherscan.io/address/0x1C3A3da552b8662CD69538356b1E7c2E9CC1EBD8 - https://etherscan.io/tx/0x2f0ce26dd454211f84df373e7b37be2d683cb71532bc6d0ec63d6fcdbaa4c5e3 Click to see more > Input Data > Select all data and copy to clipboard. - ### Beacocha (https://beaconcha.in) - https://beaconcha.in/address/0x1C3A3da552b8662CD69538356b1E7c2E9CC1EBD8 - https://beaconcha.in/tx/0x2f0ce26dd454211f84df373e7b37be2d683cb71532bc6d0ec63d6fcdbaa4c5e3 + https://beaconcha.in/address/0x4AaBBA26EA9E7A7fbD052d17a167e6aE3F8eC7Be + https://beaconcha.in/tx/0x6cc2cbf18cefe30ec2b4776b525e187f06f88bb52fe94c1b0dd2629b199fd9c9 + Advanced Info > Call Data > Select all data and copy to clipboard. _NOTE: Don't use button "Copy Raw Data" because it generated non compatible format._ @@ -242,7 +244,7 @@ In nano, to paste the clipboard to the file use CTRL+P, save content using CTRL+ ```bash cd ~/contract L1_ENDPOINT= - curl -s -X POST -H "Content-Type: application/json" --data '{"method":"eth_getTransactionByHash","params":["0x2f0ce26dd454211f84df373e7b37be2d683cb71532bc6d0ec63d6fcdbaa4c5e3"], "id":1,"jsonrpc":"2.0"}' $L1_ENDPOINT | jq .result.input -r > FflonkVerifier.sol.explorer.bytecode + curl -s -X POST -H "Content-Type: application/json" --data '{"method":"eth_getTransactionByHash","params":["0x6cc2cbf18cefe30ec2b4776b525e187f06f88bb52fe94c1b0dd2629b199fd9c9"], "id":1,"jsonrpc":"2.0"}' $L1_ENDPOINT | jq .result.input -r > FflonkVerifier.sol.explorer.bytecode ``` ## Compare bytecodes @@ -264,8 +266,8 @@ sha256sum FflonkVerifier.sol.*.bytecode The result should be: ``` -34c11f41d424eb821b42630183c4b97dc8689163276ca50095e5918202950703 FflonkVerifier.sol.compiled.bytecode -34c11f41d424eb821b42630183c4b97dc8689163276ca50095e5918202950703 FflonkVerifier.sol.explorer.bytecode +27270e1846e7e8512ab9cc311a96a1425a03adda282b18d5beb521dfe09c3d22 FflonkVerifier.sol.compiled.bytecode +27270e1846e7e8512ab9cc311a96a1425a03adda282b18d5beb521dfe09c3d22 FflonkVerifier.sol.explorer.bytecode ``` ## Generated files hash @@ -280,90 +282,96 @@ The result should be: buildstoragerom storage_sm_rom.json676c3f58263fc284bc53ef949dd1acedcfb090f3287ee080b2a277ed2157894a buildconstants -zkevm.const3d0c910c9bfa143209e8f545e23e2e98b29f4f5a40c04001fc8254aee9f121c7 +zkevm.constca00d4c994f4793c14b19a9a26f17f170165b9177ada598f94a416604a6ec0b8 buildstarkinfo zkevm.starkstruct.json284b6ce275c637af4a0b4b10cd83a881c6f1b21e21ad7ea2276379ed8393b099 zkevm.starkinfo.jsoncd4615be096817d14b3b19780897ad39f5cd26f83e5d17518dae7688563fcb54 buildconstanttree -zkevm.verkey.json7d024c2295c3bc478de5a71c4006ede5731420236651e29a384609c913c8eee9 -zkevm.consttree3d0c910c9bfa143209e8f545e23e2e98b29f4f5a40c04001fc8254aee9f121c7 +zkevm.verkey.json466b663f730c032b235e7c9ac57d4492bdeea51af8b62bc204ef20700de88c6d +zkevm.consttreeca00d4c994f4793c14b19a9a26f17f170165b9177ada598f94a416604a6ec0b8 gencircom -zkevm.verifier.circome832840aa97ca0e47a448f24ac7019ea80bfb6e9354cbe2fd7a6dada1d5d807b +zkevm.verifier.circom4a9abd5c5d31f3675cac455fb4e8e06a1f524d86e4e6e18f32f0090f017c9f6d compilecircom -zkevm.verifier.r1cs25f656f632964f8c7800c4d222f34a6e94a576c9b4f3b81fbc2ba6f03889719f -zkevm.verifier.syme32fc039e6bb550f7d2e375804b0679c6761d488111e6aa9b3b3a638af08ec36 +zkevm.verifier.r1cs3ed36eec0462885d480e6e3023f91e0265aad8c5556aa33d6c7b34e866e59605 +zkevm.verifier.sym57803c3774b227440b0cae55bace553a198ec675d8bdae72b37bbc2a59b7d9c9 c12a_setup c12a.pil13b74f6e33dcbfcb9aa1a5eb7a93691635f51f33aa91e7c867dec11509c93f4d -c12a.const5fffa6480307f60c9c1202539ae39051cbcb72863bb8e2db5bebf74a2d048f9b +c12a.const96b15b147af5ffcf08f2692d6bcbc149ca46521f80a2d5476da017c78c673cb7 c12a.exec6fe8e529645f1b72de3851ecd50dde6b830846c4cd3af0b83267151b11ec45e1 c12a_buildstarkinfo c12a.starkstruct.jsonc8ceea75f0aa05fdbdb20ac41b224355fde07a0dbeecd6649ff8c2636b9a759c c12a.starkinfo.jsonc05b27f4538e8071a0e8045faeb8a6de8771053587ad657b07c9401b9597a663 c12a_buildconstanttree -c12a.verkey.jsone6a963de090b49ce93c058ffe5438f209091186987b5fc162d6e9122bf86f333 -c12a.consttree5fffa6480307f60c9c1202539ae39051cbcb72863bb8e2db5bebf74a2d048f9b +c12a.verkey.json20f9ed1d602fe5155c0c93f342fda579987cd85b9011fd8658a427ffd09e7468 +c12a.consttree96b15b147af5ffcf08f2692d6bcbc149ca46521f80a2d5476da017c78c673cb7 c12a_gencircom -c12a.verifier.circom306ef5102ad64e14cb385e7e888dce3fccd73dbd55aa443c1561152779fdf9dd +c12a.verifier.circom63c0537db15875dd0e61696c5b97344424f1a1dffaa201ae04bded78feb5bb0e recursive1_gencircom recursive1.circom83543e99e0a1f660761fa8a06310dfd9b69d0c0a358a73b6baec55d9587234e5 recursive1_compile -recursive1.r1csbf748272be6aeba8eb8dc3146e68a9eb938c7139d690be1e94a506a4d756eec8 -recursive1.sym646bc2e3ca5da30c1221039c1e37af2ed46a2f8f7023d65a41cb80c7de5882a9 +recursive1.r1cs9ef158594515431ac644c0b79cc9b3ca441754ea98529e1ae2db176ccced110a +recursive1.symf2db344f3289e513fc8a9cacc68b697a39a410fae834bdc8feabee7b394cabc0 recursive1_setup recursive1.pil94ea2856942dd0745e2d6443c6988a4fdc65ac2c3173633e897e02b6d7eaad8b -recursive1.constbba22272d800b85e67e3b0360dbd67f972804129a8f5ee4a434a26976a3bc8a4 +recursive1.constf81f9d99dc7be4ec8ce515a0d58958e10d09aaefabd778164fc4f076bbf273d0 recursive1.exec359e6e221cefd35827960ff5cf9cd506ba5e2a5ec92c33312a5903ce087aa155 recursive1_buildstarkinfo recursive.starkstruct.json8bc8b44a7e493e447af7c04d1a362c2198f3e9b29e425248b7646c36b67fd02c recursive1.starkinfo.jsonab63b4008c2b2e769519ff3df4ba6130d66b8d6778c0ba0fb7724d5a4a9e2841 recursive1_buildconstanttree -recursive1.verkey.json44f3b6afb36a458031e327d2119a15689ec38eb10ccff729dfda0bae3bf16921 -recursive1.consttreebba22272d800b85e67e3b0360dbd67f972804129a8f5ee4a434a26976a3bc8a4 +recursive1.verkey.json883d526a0a9027641307a56f3cf94bbd3072d98413273f424c5026951277aec6 +recursive1.consttreef81f9d99dc7be4ec8ce515a0d58958e10d09aaefabd778164fc4f076bbf273d0 recursive1_verifier_gencircom recursive1.verifier.circom835cf0a8c4706ced7395957a8bef1e00b70d1007586c9fccf107f12b4936dea5 recursive2_gencircom -recursive2.circom0c03000a9a56601a086fc5c91e9119e2e63fa699fe9d5f362b506c2d3602449f +recursive2.circomc936419331d9d07aacdc912002d30bce42baa2c05a956b51d12580c82276803a recursive2_compile -recursive2.r1cs2fdd9f433b07c90a367dbc2335b7921c1ef242e6466fc5a25b8ebcf8660ff77a +recursive2.r1csb2c0f5fb9ccda0474e246cdeca3e34fc5907cd5b34f15f2192b163fb53062376 recursive2.syma47d475bcb09309b2100bfc19ce4c4baa9cee2699373290569617d71fcf51a64 recursive2_setup recursive2.pil94ea2856942dd0745e2d6443c6988a4fdc65ac2c3173633e897e02b6d7eaad8b -recursive2.const7ee905f3949c67af84f417ce2b996b2946b7bf1d4557f8a67f9d7f7ab9540902 +recursive2.const381fcf6ad4237bdbf878473f854053849a7decfbaab6c846624c41d3000ef5b8 recursive2.execf32201da15042d9167dc8dd6707c2920d7d2e772d411566739ac874bdbf269fb recursive2_buildstarkinfo recursive2.starkinfo.jsonab63b4008c2b2e769519ff3df4ba6130d66b8d6778c0ba0fb7724d5a4a9e2841 recursive2_buildconstanttree -recursive2.verkey.jsonfc3f0d4aaf11bb001102a37e397262aa62a02b6ca001b5c00ba9fccdfb06dda6 -recursive2.consttree7ee905f3949c67af84f417ce2b996b2946b7bf1d4557f8a67f9d7f7ab9540902 +recursive2.verkey.jsona2477ca847f493163113860a42ecede027bc67b4935e5ab30f2e825009363a47 +recursive2.consttree381fcf6ad4237bdbf878473f854053849a7decfbaab6c846624c41d3000ef5b8 recursive2_verifier_gencircom recursive2.verifier.circom835cf0a8c4706ced7395957a8bef1e00b70d1007586c9fccf107f12b4936dea5 recursivef_gencircom -recursivef.circom84f7538268a29a67e7836691b1706f9228fe73f4d890eee7f65f3ddcfc3aafc3 +recursivef.circom68ba6079a221f4cfe3afd071e8df62c38309f34d0633f5574cf76750d8fe2066 recursivef_compile -recursivef.r1cs2861953db44082184ee7a1dcff9b37ab131e3d58cc5539cfe258c6d23f505f8c +recursivef.r1csf45f7a9caa97913263f81ba31630dd615403f9fe3d72478a270b65b1be8a468e recursivef.symfcbe9cd852065f1224a82f8b595d2c7aaa9fdbc616ef9048714105d69d988cd7 recursivef_setup recursivef.pil62527bfc12f535e8fa3a6dd7055bc595b27fc491f7203987108ee3d13283dbfe -recursivef.const0f32c1d45e2e7390cd21bcfadb1be399ea02f6c91c76aaca963a7ee1f131ba41 +recursivef.consta74d6e18aab5a524c0e1ea87001cdd88cb20fcf8a957e831d28b58b116cb358d recursivef.exec1751c8a070d68cc64aa7d932a1785330da24139e547805e583f5407c5600715e recursivef_buildstarkinfo recursivef.starkstruct.jsonba99ad986178db98b1a867bb9d8592fa6ba5c29d9233fd939d01424425ce6cba recursivef.starkinfo.json8d6e9503550ad8bdde303af5b37ad0320171d4f180fc11323b58fbf8d82bb1a6 recursivef_buildconstanttree -recursivef.verkey.json3e16829b5af0ea65a5f49724d96ed429e1d4da088d4b0c1556093632f94e6bbc -recursivef.consttree0f32c1d45e2e7390cd21bcfadb1be399ea02f6c91c76aaca963a7ee1f131ba41 +recursivef.verkey.jsonf41c6973c1a71970af291da4177f11f1b7accda7654c63169c607efeef5981e6 +recursivef.consttreea74d6e18aab5a524c0e1ea87001cdd88cb20fcf8a957e831d28b58b116cb358d recursivef_verifier_gencircom -recursivef.verifier.circom68406381a2d730ede86e41ce80f4c214cabb83fd307768b43d5b407978f94c04 +recursivef.verifier.circom3607ed5c1ec397aaa35a09122128d57896b0b9ae648a273721f23c82f69eca30 final_gencircom final.circom74a06304ce73b282a520c358baead152dad790b0aa6b7031f6ba8c00166be459 final_compile -final.r1csbf28b9d2adff923fbf2505a116bf5c29f116b1187fcae972bc78d1f254963380 +final.r1cs8980408e97bd37a12dcb3cca90309421a25b17d899a9021a7eb55d86c46b4eb5 final.sym9c20071021039f3f82b3ecb471402949cbbc290812da97f47aae4b13ad73342d fflonk_setup -final.fflonk.zkeyb0a674854e811c9d935cfae6fa0cc4b0efbba7014365b06d026b0bc3667a0c7b +final.fflonk.zkey95f221bb359705463b02c43e7c7fc3928676dfc4e2a788504d2009a598f144ee fflonk_evk -final.fflonk.verkey.json44b4d3ac1331dd17246611687f7c65f659d377c34467df1d49e2e558c3aad1ad -dependencies.txtbb198945774e109721e2bde02a369edf96d21a0533f4bf9882a472dadd90d117 +final.fflonk.verkey.json65fe92de992fa6a8e43760dd4c7629d700dd9cb4ef8c4210581b6e277fec104a +dependencies.txt1201d73ded9420e99e434147a91f82200781bb6b6348dfca6439f315b9612672 fflonk_solidity -final.fflonk.verifier.sol8ae7baadd9f2ffb07862b0a74c20e1ad1cc2d4136e416ce5beac82a4e9a44923 +final.fflonk.verifier.sol9bf2d96c589a64ba8ebde36f280993d1dc0ac3ca3cac1d09b5550055b8a523e8 + + + \ No newline at end of file