├── Data Point Priority Chart.png ├── Data_Tables ├── FF_Constant_Search_9-1-22.csv ├── Verifier Contracts 8-3.csv ├── ZK Circuit Data - Active Projects.csv ├── ZK Circuit Data - L2Tx.csv ├── ZK Circuit Data - Master Sheet.csv ├── ZK Circuit Data - Method IDs.csv ├── ZK Circuit Data - Public Verifier Contracts.csv ├── info.md └── verifying_methods.csv ├── README.md ├── ZK_Learning_Resources.md ├── data_collection_brainstorm.md └── queries ├── aggregate_finite_fields.sql ├── gas_costs_by_project ├── queries_read_me ├── verifications_per_month_by _proving_system └── verifier_contracts.sql /Data Point Priority Chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/outsider-analytics/ZK-Circuit-Performance-and-Security-Data/bacc02a6cdecffe81855419e3d2aa29eec0b9c3a/Data Point Priority Chart.png -------------------------------------------------------------------------------- /Data_Tables/ZK Circuit Data - Active Projects.csv: -------------------------------------------------------------------------------- 1 | Project,Latest Deployed Verifier,Proving System,First txn,Last Txn,Number of Verifications,Avg gas Per Verification,Libraries,Language,Hashes Used,Purpose,L2?,Rollup or Validium,Trusted Setup?,# of participants 2 | Element Finance,0xd0abdb2175ef925a3f3780b5489f319db7dae42c,PLONK,2022-04-12 02:31:56 UTC,2022-09-20 00:53:47 UTC,507,258689,"circom, snarkjs",circom,Pedersen,Private Airdrop,No,,"Yes, Hermez ./build/pot16_final.ptau",54 3 | zkSync V1,0xf7bd436a05678b647d74a88ffcf4445efc43bdfc,PLONK,2021-12-17 06:21:35 UTC,2022-10-02 15:46:35 UTC,7899,470407,"bellman, franklin-crypto",RUST,"Rescue, Sha256",Token Transfer,Yes,Rollup,"Yes, Aztec PLONK Universal ",176 4 | Aztec Connect,0x07528c46a34d16e4fb7cfa9db7333c521bec8ea2,PLONK,2022-06-08 18:41:50 UTC,2022-10-02 13:10:59 UTC,2654,270461,barretenberg,C++,"Blake2, Pedersen",Private Defi,Yes,Rollup,"Yes, Aztec PLONK Universal ",176 5 | StarkEx (DYDX),0xf6b83ccadeee478fc372af6ca7069b14fbc5e1b1,STARK/FRI,2021-02-21 21:35:10 UTC,2022-10-02 14:15:59 UTC,90928,268430,cairo,"C++, Cairo",Pedersen,Perpetual and Trading,Yes,Rollup,No, 6 | Messier 10 Ether,0x39e5b71535cc98fddcd8ba6083deaa5409e0d7d6,Groth16,2022-07-08 21:47:02 UTC,2022-09-15 02:42:33 UTC,20,219023,,,,Mixer,No,,Yes, 7 | Messier .1 Ether,0x04f94e0bf3b30b0ce53288fbdfcfcf393ee5fb90,Groth16,2022-06-30 21:23:19 UTC,2022-09-15 03:17:08 UTC,130,242996,,,,Mixer,No,,Yes, 8 | Messier 1 Ether,0x1a7578ce0a6225cce81406ba51c9168dfa99e912,Groth16,2022-06-30 20:32:47 UTC,2022-09-15 02:52:17 UTC,110,242993,,,,Mixer,No,,Yes, 9 | ZK Space,0x44deda2c824458a5dfe1e363c679dea33f1ffa39,PLONK,2022-04-20 08:25:15 UTC,2022-10-02 15:14:59 UTC,3057,480766,"bellman, franklin-crypto",RUST,Rescue,Bridge to L2?,Yes,Rollup,"Yes, Aztec PLONK Universal ",176 10 | Cosmic Kiss,0x5d795b94bc199567d0eae0ca4cf1ab4a19217f35,Groth16,2022-03-04 01:22:05 UTC,2022-03-05 00:55:51 UTC,8,244539,"circom, snarkjs",circom,,Mixer,No,,Yes, 11 | Aztec,0xd3a6d9de4cbc2cc7529361941e85b1c3269ccbb1,TurboPLONK,2021-12-12 19:50:49 UTC,2022-10-02 10:01:59 UTC,2380,631297,barretenberg,C++,"Blake2, Pedersen",Privacy,Yes,Rollup,"Yes, Aztec PLONK Universal ",176 12 | "StarkEx (IMX, Rinofi, Sorare,Starknet, Layer2.Finance, Myria)",0x932457426841dc45ca4abc7ebdafe60133474363,STARK/FRI,2022-08-02 01:19:04 UTC,2022-10-02 07:20:59 UTC,1038,257416,cairo,"C++, Cairo",Pedersen,App Specific Validium & General purpose L2,Yes,Both,No, 13 | Loopring,0x6150343e0f43a17519c0327c41edd9ebe88d01ef,Groth16,2020-11-24 01:57:51 UTC,2022-10-02 15:53:47 UTC,30035,420389,"ethsnarks, libsnark",C++,Poseidon,Orderbook,Yes,Rollup,"Yes, Perpetual Powers of Tau + step 2",16 14 | ZK Swap V1,0x165dfa76dfd3f6ad6ad614ae4566c2e9262e532f,PLONK,2021-02-12 16:48:47 UTC,2022-06-26 13:01:49 UTC,7822,544569,"bellman, franklin-crypto",RUST,"Rescue, Sha256",Token Transfer,Yes,Rollup,"Yes, Aztec PLONK Universal ",176 15 | ZK Swap V2,0x94b9401945a9bc06ce5b69e6db3c6b671aabc829,PLONK,2021-07-12 13:24:43 UTC,2022-09-28 08:39:35 UTC,7283,512626,"bellman, franklin-crypto",RUST,"Rescue, Sha256",Token Transfer,Yes,Rollup,"Yes, Aztec PLONK Universal ",176 16 | Polygon Hermez,0x1dc4b451dfcd0e848881ede8c7a99978f00b1342,Groth16,2021-05-13 08:20:21 UTC,2021-05-13 08:20:21 UTC,4932,202593,"circom, snarkjs",circom,Poseidon,Token Transfer,Yes,Rollup,"Yes, Perpetual Powers of Tau + step 2",6 17 | Polygon Hermez Withdrawal,0x4464a1e499cf5443541da6728871af1d5c4920ca,Groth16,2021-09-10 08:15:58 UTC,2022-09-22 18:05:35 UTC,266,202593,"circom, snarkjs",circom,Poseidon,Withdrawal for Hermez Token Transfer ,Yes,Rollup,"Yes, Perpetual Powers of Tau + step 2",6 18 | WanChain,0x84271540f80e8879826c377ebc496dfae270321a,,2020-11-02 06:46:24 UTC,2022-10-01 20:22:59 UTC,5829,16811,,,,,,,, 19 | Tornado.Cash,0xce172ce1f20ec0b3728c9965470eaf994a03557a,Groth16,2020-05-13 06:38:49 UTC,2022-10-02 15:45:59 UTC,302984,242621,"circom, snarkjs",circom,Pedersen,Mixer,No,,"Yes, Perpetual Powers of Tau + step 2",1114 -------------------------------------------------------------------------------- /Data_Tables/ZK Circuit Data - L2Tx.csv: -------------------------------------------------------------------------------- 1 | Block/Day/State Update,Txs/State Updates,Project 2 | 3703,14,Aztec Connect 3 | 3704,8,Aztec Connect 4 | 3705,8,Aztec Connect 5 | 3706,4,Aztec Connect 6 | 3707,6,Aztec Connect 7 | 3708,48,Aztec Connect 8 | 3709,14,Aztec Connect 9 | 3710,9,Aztec Connect 10 | 3711,3,Aztec Connect 11 | 3712,8,Aztec Connect 12 | 3713,1,Aztec Connect 13 | 3714,8,Aztec Connect 14 | 3715,4,Aztec Connect 15 | 3716,5,Aztec Connect 16 | 3717,2,Aztec Connect 17 | 3718,1,Aztec Connect 18 | 3719,13,Aztec Connect 19 | 3720,7,Aztec Connect 20 | 3721,19,Aztec Connect 21 | 3722,3,Aztec Connect 22 | 3723,4,Aztec Connect 23 | 3724,14,Aztec Connect 24 | 3725,2,Aztec Connect 25 | 3726,1,Aztec Connect 26 | 3727,9,Aztec Connect 27 | 3728,3,Aztec Connect 28 | 3729,2,Aztec Connect 29 | 3730,3,Aztec Connect 30 | 3731,1,Aztec Connect 31 | 3732,4,Aztec Connect 32 | 3733,3,Aztec Connect 33 | 3734,2,Aztec Connect 34 | 3735,2,Aztec Connect 35 | 5297,83,StarkNet 36 | 5296,101,StarkNet 37 | 5295,67,StarkNet 38 | 5294,136,StarkNet 39 | 5293,97,StarkNet 40 | 5292,39,StarkNet 41 | 5291,128,StarkNet 42 | 5290,117,StarkNet 43 | 5289,45,StarkNet 44 | 5288,45,StarkNet 45 | 5287,132,StarkNet 46 | 5286,150,StarkNet 47 | 5285,65,StarkNet 48 | 5284,148,StarkNet 49 | 5283,146,StarkNet 50 | 5282,84,StarkNet 51 | 5281,122,StarkNet 52 | 5280,97,StarkNet 53 | 5279,62,StarkNet 54 | 5278,118,StarkNet 55 | 5277,87,StarkNet 56 | 5276,90,StarkNet 57 | 5275,97,StarkNet 58 | 5274,95,StarkNet 59 | 5273,110,StarkNet 60 | 5272,97,StarkNet 61 | 5271,99,StarkNet 62 | 5270,75,StarkNet 63 | 5269,75,StarkNet 64 | 5268,91,StarkNet 65 | 5267,104,StarkNet 66 | 5266,156,StarkNet 67 | 5265,82,StarkNet 68 | 5264,103,StarkNet 69 | 5263,79,StarkNet 70 | 5262,95,StarkNet 71 | 5261,86,StarkNet 72 | 5260,141,StarkNet 73 | 5259,87,StarkNet 74 | 5258,101,StarkNet 75 | 5257,110,StarkNet 76 | 5256,111,StarkNet 77 | 5255,129,StarkNet 78 | 5254,80,StarkNet 79 | 5253,88,StarkNet 80 | 5252,109,StarkNet 81 | 5251,135,StarkNet 82 | 5250,84,StarkNet 83 | 5249,101,StarkNet 84 | 5248,120,StarkNet 85 | 5247,68,StarkNet 86 | 5246,106,StarkNet 87 | 5245,72,StarkNet 88 | 5244,119,StarkNet 89 | 5243,90,StarkNet 90 | 5242,127,StarkNet 91 | 5241,69,StarkNet 92 | 5240,99,StarkNet 93 | 5239,120,StarkNet 94 | 5238,124,StarkNet 95 | 5237,104,StarkNet 96 | 5236,68,StarkNet 97 | 5235,88,StarkNet 98 | 5234,112,StarkNet 99 | 5233,106,StarkNet 100 | 5232,95,StarkNet 101 | 5231,79,StarkNet 102 | 5230,80,StarkNet 103 | 5229,121,StarkNet 104 | 5228,73,StarkNet 105 | 5227,108,StarkNet 106 | 5226,94,StarkNet 107 | 5225,58,StarkNet 108 | 5224,95,StarkNet 109 | 5223,43,StarkNet 110 | 5222,66,StarkNet 111 | 5221,113,StarkNet 112 | 5220,114,StarkNet 113 | 5219,77,StarkNet 114 | 5218,77,StarkNet 115 | 5217,90,StarkNet 116 | 5216,73,StarkNet 117 | 5215,122,StarkNet 118 | 5214,87,StarkNet 119 | 5213,133,StarkNet 120 | 5212,95,StarkNet 121 | 5211,72,StarkNet 122 | 5210,87,StarkNet 123 | 5209,107,StarkNet 124 | 5208,67,StarkNet 125 | 5207,78,StarkNet 126 | 5206,92,StarkNet 127 | 5205,74,StarkNet 128 | 5204,61,StarkNet 129 | 5203,102,StarkNet 130 | 5202,108,StarkNet 131 | 5201,94,StarkNet 132 | 5200,113,StarkNet 133 | 5199,119,StarkNet 134 | 5198,77,StarkNet 135 | 5197,59,StarkNet 136 | 5196,68,StarkNet 137 | 5195,84,StarkNet 138 | 5194,76,StarkNet 139 | 5193,80,StarkNet 140 | 5192,92,StarkNet 141 | 5191,104,StarkNet 142 | 5190,126,StarkNet 143 | 5189,83,StarkNet 144 | 5188,55,StarkNet 145 | 5187,71,StarkNet 146 | 5186,97,StarkNet 147 | 5185,88,StarkNet 148 | 5184,88,StarkNet 149 | 5183,75,StarkNet 150 | 5182,100,StarkNet 151 | 5181,77,StarkNet 152 | 5180,116,StarkNet 153 | 5179,77,StarkNet 154 | 5178,107,StarkNet 155 | 5177,80,StarkNet 156 | 5176,94,StarkNet 157 | 5175,98,StarkNet 158 | 5174,76,StarkNet 159 | 5173,60,StarkNet 160 | 5172,75,StarkNet 161 | 5171,66,StarkNet 162 | 5170,76,StarkNet 163 | 5169,64,StarkNet 164 | 5168,75,StarkNet 165 | 5167,53,StarkNet 166 | 5166,52,StarkNet 167 | 5165,67,StarkNet 168 | 5164,72,StarkNet 169 | 5163,80,StarkNet 170 | 5162,70,StarkNet 171 | 5161,58,StarkNet 172 | 5160,55,StarkNet 173 | 5159,51,StarkNet 174 | 5158,60,StarkNet 175 | 5157,65,StarkNet 176 | 5156,66,StarkNet 177 | 5155,53,StarkNet 178 | 5154,57,StarkNet 179 | 5153,51,StarkNet 180 | 5152,73,StarkNet 181 | 5151,105,StarkNet 182 | 5150,62,StarkNet 183 | 5149,70,StarkNet 184 | 5148,55,StarkNet 185 | 5147,68,StarkNet 186 | 5146,69,StarkNet 187 | 5145,69,StarkNet 188 | 5144,74,StarkNet 189 | 5143,65,StarkNet 190 | 5142,72,StarkNet 191 | 5141,77,StarkNet 192 | 5140,59,StarkNet 193 | 5139,47,StarkNet 194 | 5138,70,StarkNet 195 | 5137,64,StarkNet 196 | 5136,64,StarkNet 197 | 5135,51,StarkNet 198 | 5134,62,StarkNet 199 | 5133,88,StarkNet 200 | 5132,79,StarkNet 201 | 5131,64,StarkNet 202 | 5130,45,StarkNet 203 | 5129,69,StarkNet 204 | 5128,61,StarkNet 205 | 5127,62,StarkNet 206 | 5126,57,StarkNet 207 | 5125,65,StarkNet 208 | 5124,102,StarkNet 209 | 5123,90,StarkNet 210 | 5122,85,StarkNet 211 | 5121,74,StarkNet 212 | 5120,86,StarkNet 213 | 5119,81,StarkNet 214 | 5118,109,StarkNet 215 | 5117,102,StarkNet 216 | 5116,99,StarkNet 217 | 5115,88,StarkNet 218 | 5114,83,StarkNet 219 | 5113,80,StarkNet 220 | 5112,81,StarkNet 221 | 5111,57,StarkNet 222 | 5110,59,StarkNet 223 | 5109,60,StarkNet 224 | 5108,70,StarkNet 225 | 5107,63,StarkNet 226 | 5106,60,StarkNet 227 | 5105,56,StarkNet 228 | 5104,55,StarkNet 229 | 5103,49,StarkNet 230 | 5102,50,StarkNet 231 | 5101,48,StarkNet 232 | 5100,72,StarkNet 233 | 5099,59,StarkNet 234 | 5098,66,StarkNet 235 | 5097,55,StarkNet 236 | 5096,97,StarkNet 237 | 5095,74,StarkNet 238 | 5094,71,StarkNet 239 | 5093,74,StarkNet 240 | 5092,70,StarkNet 241 | 5091,72,StarkNet 242 | 5090,66,StarkNet 243 | 5089,78,StarkNet 244 | 5088,60,StarkNet 245 | 5087,86,StarkNet 246 | 5086,80,StarkNet 247 | 5085,93,StarkNet 248 | 5084,90,StarkNet 249 | 5083,119,StarkNet 250 | 5082,95,StarkNet 251 | 5081,134,StarkNet 252 | 5080,101,StarkNet 253 | 5079,112,StarkNet 254 | 5078,118,StarkNet 255 | 9/20/22,22690,IMX 256 | 9/21/22,27348,IMX 257 | 9/22/22,22882,IMX 258 | 9/23/22,26210,IMX 259 | 9/24/22,27987,IMX 260 | 9/25/22,30927,IMX 261 | 9/26/22,27383,IMX 262 | 15414,77,zkSync 263 | 15415,120,zkSync 264 | 15416,71,zkSync 265 | 15417,94,zkSync 266 | 15418,111,zkSync 267 | 15419,151,zkSync 268 | 15420,88,zkSync 269 | 15421,104,zkSync 270 | 15422,147,zkSync 271 | 15423,144,zkSync 272 | 15424,107,zkSync 273 | 15425,138,zkSync 274 | 15426,109,zkSync 275 | 15427,122,zkSync 276 | 15428,120,zkSync 277 | 15429,121,zkSync 278 | 15430,146,zkSync 279 | 15431,105,zkSync 280 | 15432,99,zkSync 281 | 15433,138,zkSync 282 | 15434,118,zkSync 283 | 15435,87,zkSync 284 | 15436,101,zkSync 285 | 15437,99,zkSync 286 | 15438,146,zkSync 287 | 15439,105,zkSync 288 | 15440,133,zkSync 289 | 15441,126,zkSync 290 | 15442,122,zkSync 291 | 15443,144,zkSync 292 | 15444,142,zkSync 293 | 15445,112,zkSync 294 | 15446,101,zkSync 295 | 15447,73,zkSync 296 | 15448,175,zkSync 297 | 15449,137,zkSync 298 | 15450,160,zkSync 299 | 15451,128,zkSync 300 | 15452,171,zkSync 301 | 15453,138,zkSync 302 | 15454,109,zkSync 303 | 15455,118,zkSync 304 | 15456,135,zkSync 305 | 15457,124,zkSync 306 | 15458,97,zkSync 307 | 15459,140,zkSync 308 | 15460,112,zkSync 309 | 15461,96,zkSync 310 | 15462,94,zkSync 311 | 15463,104,zkSync 312 | 15464,131,zkSync 313 | 15465,138,zkSync 314 | 15466,125,zkSync 315 | 15467,163,zkSync 316 | 15468,89,zkSync 317 | 15469,129,zkSync 318 | 15470,147,zkSync 319 | 15471,135,zkSync 320 | 15472,120,zkSync 321 | 15473,108,zkSync 322 | 15474,152,zkSync 323 | 15475,131,zkSync 324 | 15476,99,zkSync 325 | 15477,136,zkSync 326 | 15478,173,zkSync 327 | 15479,92,zkSync 328 | 15480,163,zkSync 329 | 15481,143,zkSync 330 | 15482,123,zkSync 331 | 15483,150,zkSync 332 | 15484,111,zkSync 333 | 15485,147,zkSync 334 | 15486,150,zkSync 335 | 15487,113,zkSync 336 | 15488,90,zkSync 337 | 15489,108,zkSync 338 | 15490,121,zkSync 339 | 15491,94,zkSync 340 | 15492,112,zkSync 341 | 15493,109,zkSync 342 | 15494,129,zkSync 343 | 15495,120,zkSync 344 | 15496,125,zkSync 345 | 15497,139,zkSync 346 | 15498,148,zkSync 347 | 15499,123,zkSync 348 | 15500,111,zkSync 349 | 15501,121,zkSync 350 | 15502,164,zkSync 351 | 15503,114,zkSync 352 | 15504,108,zkSync 353 | 15505,114,zkSync 354 | 15506,114,zkSync 355 | 15507,134,zkSync 356 | 15508,117,zkSync 357 | 15509,106,zkSync 358 | 15510,130,zkSync 359 | 15511,90,zkSync 360 | 15512,98,zkSync 361 | 15513,130,zkSync 362 | 15515,161,zkSync 363 | 15516,161,zkSync 364 | 15517,108,zkSync 365 | 15518,119,zkSync 366 | 15519,113,zkSync 367 | 15520,86,zkSync 368 | 15521,114,zkSync 369 | 15522,136,zkSync 370 | 15523,118,zkSync 371 | 15524,83,zkSync 372 | 15525,133,zkSync 373 | 15526,105,zkSync 374 | 15527,166,zkSync 375 | 15528,147,zkSync 376 | 15529,126,zkSync 377 | 15530,110,zkSync 378 | 15531,106,zkSync 379 | 15532,149,zkSync 380 | 15533,137,zkSync 381 | 15534,142,zkSync 382 | 15535,132,zkSync 383 | 15536,111,zkSync 384 | 15537,106,zkSync 385 | 15538,97,zkSync 386 | 15539,113,zkSync 387 | 15540,112,zkSync 388 | 15541,83,zkSync 389 | 15542,122,zkSync 390 | 15543,99,zkSync 391 | 15544,151,zkSync 392 | 15545,138,zkSync 393 | 15546,151,zkSync 394 | 15547,163,zkSync 395 | 15548,135,zkSync 396 | 15549,108,zkSync 397 | 15550,137,zkSync 398 | 15551,160,zkSync 399 | 15552,155,zkSync 400 | 15553,107,zkSync 401 | 15554,128,zkSync 402 | 15555,126,zkSync 403 | 15556,162,zkSync 404 | 15557,156,zkSync 405 | 15558,115,zkSync 406 | 15559,95,zkSync 407 | 15560,134,zkSync 408 | 15561,154,zkSync 409 | 15562,95,zkSync 410 | 15563,138,zkSync 411 | 15564,150,zkSync 412 | 15565,141,zkSync 413 | 15566,162,zkSync 414 | 15567,147,zkSync 415 | 15568,104,zkSync 416 | 15569,125,zkSync 417 | 15570,119,zkSync 418 | 15571,157,zkSync 419 | 15572,102,zkSync 420 | 15573,140,zkSync 421 | 15574,127,zkSync 422 | 15575,82,zkSync 423 | 15576,134,zkSync 424 | 15577,138,zkSync 425 | 15578,110,zkSync 426 | 15579,143,zkSync 427 | 15580,146,zkSync 428 | 15581,136,zkSync 429 | 15582,122,zkSync 430 | 15583,95,zkSync 431 | 15584,141,zkSync 432 | 15585,76,zkSync 433 | 15586,171,zkSync 434 | 15587,111,zkSync 435 | 15588,104,zkSync 436 | 15589,136,zkSync 437 | 15590,119,zkSync 438 | 15591,149,zkSync 439 | 15592,152,zkSync 440 | 15593,153,zkSync 441 | 15594,123,zkSync 442 | 15595,102,zkSync 443 | 15596,146,zkSync 444 | 15597,156,zkSync 445 | 15598,114,zkSync 446 | 15599,135,zkSync 447 | 15600,155,zkSync 448 | 15601,113,zkSync 449 | 15602,155,zkSync 450 | 15603,95,zkSync 451 | 15604,126,zkSync 452 | 15605,91,zkSync 453 | 15606,96,zkSync 454 | 15607,124,zkSync 455 | 15608,131,zkSync 456 | 15609,120,zkSync 457 | 15610,109,zkSync 458 | 15611,98,zkSync 459 | 15612,91,zkSync 460 | 15613,124,zkSync 461 | 15614,127,zkSync 462 | 15615,137,zkSync 463 | 15616,136,zkSync 464 | 15617,97,zkSync 465 | 15618,139,zkSync 466 | 15619,88,zkSync 467 | 15620,116,zkSync 468 | 15621,165,zkSync 469 | 15622,154,zkSync 470 | 15623,93,zkSync 471 | 15624,142,zkSync 472 | 15625,110,zkSync 473 | 15626,111,zkSync 474 | 15627,98,zkSync 475 | 15628,109,zkSync 476 | 15629,118,zkSync 477 | 15630,97,zkSync 478 | 15631,150,zkSync 479 | 15632,151,zkSync 480 | 15633,129,zkSync 481 | 15634,105,zkSync 482 | 15635,97,zkSync 483 | 15636,147,zkSync 484 | 15637,99,zkSync 485 | 15638,114,zkSync 486 | 15639,126,zkSync 487 | 15640,147,zkSync 488 | 15641,105,zkSync 489 | 15642,115,zkSync 490 | 15643,108,zkSync 491 | 15644,95,zkSync 492 | 15645,109,zkSync 493 | 15646,122,zkSync 494 | 15647,156,zkSync 495 | 15648,109,zkSync 496 | 15649,137,zkSync 497 | 15650,135,zkSync 498 | 15651,134,zkSync 499 | 15652,147,zkSync 500 | 15653,152,zkSync 501 | 15654,149,zkSync 502 | 15655,128,zkSync 503 | 15656,123,zkSync 504 | 15657,155,zkSync 505 | 15658,147,zkSync 506 | 15659,121,zkSync 507 | 15660,98,zkSync 508 | 15661,125,zkSync 509 | 15662,119,zkSync 510 | 15663,106,zkSync 511 | 15664,130,zkSync 512 | 15665,115,zkSync 513 | 15666,107,zkSync 514 | 15667,126,zkSync 515 | 15668,110,zkSync 516 | 15669,145,zkSync 517 | 15670,134,zkSync 518 | 15671,146,zkSync 519 | 15672,102,zkSync 520 | 15673,147,zkSync 521 | 15674,110,zkSync 522 | 15675,132,zkSync 523 | 15676,112,zkSync 524 | 15677,144,zkSync 525 | 15678,111,zkSync 526 | 15679,141,zkSync 527 | 15680,123,zkSync 528 | 15681,121,zkSync 529 | 15682,110,zkSync 530 | 15683,131,zkSync 531 | 15684,127,zkSync 532 | 15685,149,zkSync 533 | 15686,103,zkSync 534 | 15687,133,zkSync 535 | 15688,138,zkSync 536 | 15689,130,zkSync 537 | 15690,137,zkSync 538 | 15691,149,zkSync 539 | 15692,165,zkSync 540 | 15693,158,zkSync 541 | 15694,88,zkSync 542 | 15695,157,zkSync 543 | 15696,139,zkSync 544 | 15697,151,zkSync 545 | 15698,116,zkSync 546 | 15699,122,zkSync 547 | 15700,114,zkSync 548 | 15701,114,zkSync 549 | 15702,157,zkSync 550 | 15703,144,zkSync 551 | 15704,129,zkSync 552 | 15705,94,zkSync 553 | 15706,109,zkSync 554 | 15707,150,zkSync 555 | 15708,79,zkSync 556 | 15709,91,zkSync 557 | 15710,139,zkSync 558 | 15711,146,zkSync 559 | 15712,122,zkSync 560 | 15713,122,zkSync 561 | 15714,159,zkSync 562 | 15715,96,zkSync 563 | 15716,142,zkSync 564 | 15717,152,zkSync 565 | 15718,127,zkSync 566 | 15719,117,zkSync 567 | 15720,151,zkSync 568 | 15721,136,zkSync 569 | 15722,117,zkSync 570 | 15723,109,zkSync 571 | 15724,121,zkSync 572 | 15725,100,zkSync 573 | 15726,162,zkSync 574 | 15727,107,zkSync 575 | 15728,109,zkSync 576 | 15729,139,zkSync 577 | 15730,101,zkSync 578 | 15731,79,zkSync 579 | 15732,144,zkSync 580 | 15733,153,zkSync 581 | 15734,131,zkSync 582 | 15735,105,zkSync 583 | 15736,125,zkSync 584 | 15737,111,zkSync 585 | 15738,168,zkSync 586 | 15739,110,zkSync 587 | 15740,132,zkSync 588 | 15741,138,zkSync 589 | 15742,127,zkSync 590 | 15743,115,zkSync 591 | 15744,133,zkSync 592 | 15745,88,zkSync 593 | 15746,115,zkSync 594 | 15747,116,zkSync 595 | 15748,108,zkSync 596 | 15749,92,zkSync 597 | 15750,170,zkSync 598 | 15751,142,zkSync 599 | 15752,139,zkSync 600 | 15753,144,zkSync 601 | 15754,158,zkSync 602 | 15755,142,zkSync 603 | 15756,141,zkSync 604 | 15757,148,zkSync 605 | 15758,133,zkSync 606 | 15759,152,zkSync 607 | 15760,151,zkSync 608 | 15761,107,zkSync 609 | 15762,128,zkSync 610 | 15763,126,zkSync 611 | 15764,119,zkSync 612 | 15765,117,zkSync 613 | 15766,94,zkSync 614 | 15767,146,zkSync 615 | 15768,147,zkSync 616 | 15769,111,zkSync 617 | 15770,109,zkSync 618 | 15771,117,zkSync 619 | 15772,125,zkSync 620 | 15773,141,zkSync 621 | 15774,129,zkSync 622 | 15775,117,zkSync 623 | 15776,156,zkSync 624 | 15777,132,zkSync 625 | 15778,109,zkSync 626 | 15779,122,zkSync 627 | 15780,161,zkSync 628 | 15781,150,zkSync 629 | 15782,129,zkSync 630 | 15783,111,zkSync 631 | 15784,109,zkSync 632 | 15785,139,zkSync 633 | 15786,134,zkSync 634 | 15787,135,zkSync 635 | 15788,102,zkSync 636 | 15789,119,zkSync 637 | 15790,110,zkSync 638 | 15791,160,zkSync 639 | 15792,129,zkSync 640 | 15793,121,zkSync 641 | 15794,91,zkSync 642 | 15795,153,zkSync 643 | 15796,120,zkSync 644 | 15797,139,zkSync 645 | 15798,141,zkSync 646 | 15799,144,zkSync 647 | 15800,137,zkSync 648 | 15801,135,zkSync 649 | 15802,151,zkSync 650 | 15803,145,zkSync 651 | 15804,144,zkSync 652 | 15805,143,zkSync 653 | 15806,114,zkSync 654 | 15807,153,zkSync 655 | 15808,129,zkSync 656 | 15809,118,zkSync 657 | 15810,83,zkSync 658 | 15811,118,zkSync 659 | 15812,131,zkSync 660 | 15813,113,zkSync 661 | 15814,127,zkSync 662 | 15815,141,zkSync 663 | 15816,147,zkSync 664 | 15817,138,zkSync 665 | 15818,92,zkSync 666 | 15819,140,zkSync 667 | 15820,127,zkSync 668 | 15821,154,zkSync 669 | 15822,149,zkSync 670 | 15823,140,zkSync 671 | 15824,126,zkSync 672 | 15825,111,zkSync 673 | 15826,137,zkSync 674 | 15827,141,zkSync 675 | 15828,151,zkSync 676 | 15829,98,zkSync 677 | 15830,132,zkSync 678 | 15831,122,zkSync 679 | 15832,98,zkSync 680 | 15833,111,zkSync 681 | 15834,135,zkSync 682 | 15835,127,zkSync 683 | 15836,124,zkSync 684 | 15837,137,zkSync 685 | 15838,147,zkSync 686 | 15839,126,zkSync 687 | 15840,154,zkSync 688 | 15841,111,zkSync 689 | 15842,123,zkSync 690 | 15843,131,zkSync 691 | 15844,125,zkSync 692 | 15845,121,zkSync 693 | 15846,133,zkSync 694 | 15847,124,zkSync 695 | 15848,139,zkSync 696 | 15849,121,zkSync 697 | 15850,119,zkSync 698 | 15851,126,zkSync 699 | 15852,130,zkSync 700 | 15853,119,zkSync 701 | 15854,122,zkSync 702 | 15855,116,zkSync 703 | 15856,108,zkSync 704 | 15857,130,zkSync 705 | 15858,130,zkSync 706 | 15859,152,zkSync 707 | 15860,111,zkSync 708 | 15861,145,zkSync 709 | 15862,139,zkSync 710 | 15863,138,zkSync 711 | 15864,159,zkSync 712 | 15865,146,zkSync 713 | 15866,109,zkSync 714 | 15867,123,zkSync 715 | 15868,138,zkSync 716 | 15869,103,zkSync 717 | 15870,144,zkSync 718 | 15871,115,zkSync 719 | 15872,125,zkSync 720 | 15873,146,zkSync 721 | 15874,99,zkSync 722 | 15875,100,zkSync 723 | 15876,120,zkSync 724 | 15877,160,zkSync 725 | 15878,152,zkSync 726 | 15879,102,zkSync 727 | 15880,119,zkSync 728 | 15881,143,zkSync 729 | 15882,127,zkSync 730 | 15883,132,zkSync 731 | 15884,143,zkSync 732 | 15885,112,zkSync 733 | 15886,146,zkSync 734 | 15887,137,zkSync 735 | 15888,159,zkSync 736 | 15889,143,zkSync 737 | 15890,147,zkSync 738 | 15891,121,zkSync 739 | 15892,119,zkSync 740 | 15893,118,zkSync 741 | 15894,157,zkSync 742 | 15895,107,zkSync 743 | 15896,97,zkSync 744 | 15897,104,zkSync 745 | 15898,97,zkSync 746 | 15899,122,zkSync 747 | 15900,117,zkSync 748 | 15901,116,zkSync 749 | 15902,109,zkSync 750 | 15903,128,zkSync 751 | 15904,114,zkSync 752 | 15905,123,zkSync 753 | 15906,112,zkSync 754 | 15907,116,zkSync 755 | 15908,101,zkSync 756 | 15909,153,zkSync 757 | 15910,109,zkSync 758 | 15911,102,zkSync 759 | 15912,133,zkSync 760 | 15913,112,zkSync 761 | 15914,110,zkSync 762 | 15915,166,zkSync 763 | 15916,128,zkSync 764 | 15917,106,zkSync 765 | 15918,135,zkSync 766 | 15919,144,zkSync 767 | 15920,141,zkSync 768 | 15921,146,zkSync 769 | 15922,127,zkSync 770 | 15923,110,zkSync 771 | 15924,131,zkSync 772 | 15925,124,zkSync 773 | 15926,114,zkSync 774 | 15927,153,zkSync 775 | 15928,119,zkSync 776 | 15929,111,zkSync 777 | 15930,138,zkSync 778 | 15931,141,zkSync 779 | 15932,128,zkSync 780 | 15933,123,zkSync 781 | 15934,134,zkSync 782 | 15935,117,zkSync 783 | 15936,151,zkSync 784 | 15937,122,zkSync 785 | 15938,94,zkSync 786 | 15939,120,zkSync 787 | 15940,145,zkSync 788 | 15941,139,zkSync 789 | 15942,117,zkSync 790 | 15943,122,zkSync 791 | 15944,112,zkSync 792 | 15945,117,zkSync 793 | 15946,166,zkSync 794 | 15947,100,zkSync 795 | 15948,107,zkSync 796 | 15949,118,zkSync 797 | 15950,134,zkSync 798 | 15951,134,zkSync 799 | 15952,123,zkSync 800 | 15953,126,zkSync 801 | 15954,107,zkSync 802 | 15955,137,zkSync 803 | 15956,112,zkSync 804 | 15957,134,zkSync 805 | 15958,127,zkSync 806 | 15959,136,zkSync 807 | 15960,141,zkSync 808 | 15961,105,zkSync 809 | 15962,134,zkSync 810 | 15963,113,zkSync 811 | 15964,144,zkSync 812 | 15965,120,zkSync 813 | 15966,160,zkSync 814 | 15967,154,zkSync 815 | 15968,114,zkSync 816 | 15969,128,zkSync 817 | 15970,131,zkSync 818 | 15971,135,zkSync 819 | 15972,106,zkSync 820 | 15973,146,zkSync 821 | 15974,133,zkSync 822 | 15975,162,zkSync 823 | 15976,118,zkSync 824 | 15977,115,zkSync 825 | 15978,146,zkSync 826 | 15979,120,zkSync 827 | 15980,133,zkSync 828 | 15981,93,zkSync 829 | 15982,119,zkSync 830 | 15983,113,zkSync 831 | 15984,136,zkSync 832 | 15985,131,zkSync 833 | 15986,138,zkSync 834 | 15987,138,zkSync 835 | 15988,98,zkSync 836 | 15989,136,zkSync 837 | 15990,170,zkSync 838 | 15991,153,zkSync 839 | 15992,132,zkSync 840 | 15993,98,zkSync 841 | 15994,123,zkSync 842 | 15995,120,zkSync 843 | 15996,118,zkSync 844 | 15997,136,zkSync 845 | 15998,108,zkSync 846 | 15999,158,zkSync 847 | 16000,148,zkSync 848 | 16001,136,zkSync 849 | 16002,105,zkSync 850 | 16003,145,zkSync 851 | 16004,147,zkSync 852 | 16005,112,zkSync 853 | 16006,137,zkSync 854 | 16007,132,zkSync 855 | 16008,148,zkSync 856 | 16009,149,zkSync 857 | 16010,124,zkSync 858 | 16011,170,zkSync 859 | 16012,145,zkSync 860 | 16013,141,zkSync 861 | 16014,128,zkSync 862 | 16015,134,zkSync 863 | 16016,159,zkSync 864 | 16017,126,zkSync 865 | 16018,118,zkSync 866 | 16019,147,zkSync 867 | 16020,164,zkSync 868 | 16021,127,zkSync 869 | 16022,147,zkSync 870 | 16023,130,zkSync 871 | 16024,146,zkSync 872 | 16025,120,zkSync 873 | 16026,160,zkSync 874 | 16027,154,zkSync 875 | 16028,145,zkSync 876 | 16029,147,zkSync 877 | 16030,127,zkSync 878 | 16031,129,zkSync 879 | 16032,127,zkSync 880 | 16033,156,zkSync 881 | 16034,148,zkSync 882 | 16035,146,zkSync 883 | 16036,128,zkSync 884 | 16037,120,zkSync 885 | 16038,120,zkSync 886 | 16039,134,zkSync 887 | 16040,121,zkSync 888 | 16041,133,zkSync 889 | 16042,132,zkSync 890 | 16043,131,zkSync 891 | 16044,150,zkSync 892 | 16045,146,zkSync 893 | 16046,149,zkSync 894 | 16047,131,zkSync 895 | 16048,142,zkSync 896 | 16049,168,zkSync 897 | 16050,157,zkSync 898 | 16051,153,zkSync 899 | 16052,132,zkSync 900 | 16053,128,zkSync 901 | 16054,134,zkSync 902 | 16055,146,zkSync 903 | 16056,131,zkSync 904 | 16057,141,zkSync 905 | 16058,164,zkSync 906 | 16059,137,zkSync 907 | 16060,138,zkSync 908 | 16061,125,zkSync 909 | 16062,121,zkSync 910 | 16063,145,zkSync 911 | 16064,163,zkSync 912 | 16065,154,zkSync 913 | 16066,152,zkSync 914 | 16067,148,zkSync 915 | 16068,160,zkSync 916 | 16069,155,zkSync 917 | 16070,136,zkSync 918 | 16071,158,zkSync 919 | 16072,148,zkSync 920 | 16073,130,zkSync 921 | 16074,177,zkSync 922 | 16075,136,zkSync 923 | 16076,162,zkSync 924 | 16077,133,zkSync 925 | 16078,147,zkSync 926 | 16079,153,zkSync 927 | 16080,102,zkSync 928 | 16081,183,zkSync 929 | 16082,143,zkSync 930 | 16083,145,zkSync 931 | 16084,132,zkSync 932 | 16085,136,zkSync 933 | 16086,137,zkSync 934 | 16087,126,zkSync 935 | 16088,152,zkSync 936 | 16089,127,zkSync 937 | 16090,154,zkSync 938 | 16091,123,zkSync 939 | 16092,148,zkSync 940 | 16093,135,zkSync 941 | 16094,151,zkSync 942 | 16095,153,zkSync 943 | 16096,144,zkSync 944 | 16097,151,zkSync 945 | 16098,161,zkSync 946 | 16099,148,zkSync 947 | 16100,154,zkSync 948 | 16101,131,zkSync 949 | 16102,127,zkSync 950 | 16103,128,zkSync 951 | 16104,126,zkSync 952 | 16105,152,zkSync 953 | 16106,141,zkSync 954 | 16107,118,zkSync 955 | 16108,130,zkSync 956 | 16109,151,zkSync 957 | 16110,156,zkSync 958 | 16111,152,zkSync 959 | 16112,127,zkSync 960 | 16113,165,zkSync 961 | 16114,118,zkSync 962 | 16115,161,zkSync 963 | 16116,135,zkSync 964 | 16117,144,zkSync 965 | 16118,137,zkSync 966 | 16119,134,zkSync 967 | 16120,138,zkSync 968 | 16121,163,zkSync 969 | 16122,133,zkSync 970 | 16123,142,zkSync 971 | 16124,152,zkSync 972 | 16125,119,zkSync 973 | 16126,155,zkSync 974 | 16127,144,zkSync 975 | 16128,157,zkSync 976 | 16129,155,zkSync 977 | 16130,141,zkSync 978 | 16131,145,zkSync 979 | 16132,124,zkSync 980 | 16133,157,zkSync 981 | 16134,138,zkSync 982 | 16135,158,zkSync 983 | 16136,131,zkSync 984 | 16137,132,zkSync 985 | 16138,139,zkSync 986 | 16139,143,zkSync 987 | 16140,135,zkSync 988 | 16141,147,zkSync 989 | 16142,121,zkSync 990 | 16143,151,zkSync 991 | 16144,155,zkSync 992 | 16145,130,zkSync 993 | 16146,146,zkSync 994 | 16147,176,zkSync 995 | 16148,145,zkSync 996 | 16149,159,zkSync 997 | 16150,138,zkSync 998 | 16151,128,zkSync 999 | 16152,156,zkSync 1000 | 16153,139,zkSync 1001 | 16154,136,zkSync 1002 | 16155,147,zkSync 1003 | 16156,128,zkSync 1004 | 16157,161,zkSync 1005 | 16158,162,zkSync 1006 | 16159,152,zkSync 1007 | 16160,124,zkSync 1008 | 16161,135,zkSync 1009 | 16162,121,zkSync 1010 | 16163,146,zkSync 1011 | 16164,146,zkSync 1012 | 16165,131,zkSync 1013 | 16166,143,zkSync 1014 | 16167,131,zkSync 1015 | 16168,140,zkSync 1016 | 16169,144,zkSync 1017 | 16170,152,zkSync 1018 | 16171,126,zkSync 1019 | 16172,137,zkSync 1020 | 16173,150,zkSync 1021 | 16174,120,zkSync 1022 | 16175,143,zkSync 1023 | 16176,146,zkSync 1024 | 16177,148,zkSync 1025 | 16178,148,zkSync 1026 | 16179,115,zkSync 1027 | 16180,127,zkSync 1028 | 16181,133,zkSync 1029 | 16182,135,zkSync 1030 | 16183,174,zkSync 1031 | 16184,148,zkSync 1032 | 16185,148,zkSync 1033 | 16186,120,zkSync 1034 | 16187,149,zkSync 1035 | 16188,134,zkSync 1036 | 16189,137,zkSync 1037 | 16190,157,zkSync 1038 | 16191,145,zkSync 1039 | 16192,164,zkSync 1040 | 16193,110,zkSync 1041 | 16194,145,zkSync 1042 | 16195,143,zkSync 1043 | 16196,139,zkSync 1044 | 16197,140,zkSync 1045 | 16198,136,zkSync 1046 | 16199,132,zkSync 1047 | 16200,152,zkSync 1048 | 16201,134,zkSync 1049 | 16202,145,zkSync 1050 | 16203,153,zkSync 1051 | 16204,163,zkSync 1052 | 16205,138,zkSync 1053 | 16206,148,zkSync 1054 | 16207,130,zkSync 1055 | 16208,167,zkSync 1056 | 16209,138,zkSync 1057 | 16210,145,zkSync 1058 | 16211,161,zkSync 1059 | 16212,117,zkSync 1060 | 16213,140,zkSync 1061 | 16214,145,zkSync 1062 | 16215,149,zkSync 1063 | 16216,142,zkSync 1064 | 16217,148,zkSync 1065 | 16218,152,zkSync 1066 | 16219,138,zkSync 1067 | 16220,121,zkSync 1068 | 16221,156,zkSync 1069 | 16222,142,zkSync 1070 | 16223,130,zkSync 1071 | 16224,140,zkSync 1072 | 16225,138,zkSync 1073 | 16226,145,zkSync 1074 | 16227,99,zkSync 1075 | 16228,142,zkSync 1076 | 16229,137,zkSync 1077 | 16230,155,zkSync 1078 | 16231,127,zkSync 1079 | 16232,122,zkSync 1080 | 16233,142,zkSync 1081 | 16234,153,zkSync 1082 | 16235,135,zkSync 1083 | 16236,139,zkSync 1084 | 16237,146,zkSync 1085 | 16238,124,zkSync 1086 | 16239,124,zkSync 1087 | 16240,127,zkSync 1088 | 16241,141,zkSync 1089 | 16242,147,zkSync 1090 | 16243,118,zkSync 1091 | 16244,141,zkSync 1092 | 16245,99,zkSync 1093 | 16246,109,zkSync 1094 | 16247,140,zkSync 1095 | 16248,143,zkSync 1096 | 16249,138,zkSync 1097 | 16250,123,zkSync 1098 | 16251,172,zkSync 1099 | 16252,136,zkSync 1100 | 16253,146,zkSync 1101 | 16254,128,zkSync 1102 | 16255,140,zkSync 1103 | 16256,133,zkSync 1104 | 16257,131,zkSync 1105 | 16258,116,zkSync 1106 | 16259,119,zkSync 1107 | 16260,147,zkSync 1108 | 16261,147,zkSync 1109 | 16262,128,zkSync 1110 | 16263,147,zkSync 1111 | 16264,153,zkSync 1112 | 16265,135,zkSync 1113 | 16266,135,zkSync 1114 | 16267,138,zkSync 1115 | 16268,130,zkSync 1116 | 16269,161,zkSync 1117 | 16270,179,zkSync 1118 | 16271,136,zkSync 1119 | 16272,141,zkSync 1120 | 16273,149,zkSync 1121 | 16274,151,zkSync 1122 | 16275,134,zkSync 1123 | 16276,169,zkSync 1124 | 16277,163,zkSync 1125 | 16278,152,zkSync 1126 | 16279,125,zkSync 1127 | 16280,135,zkSync 1128 | 16281,116,zkSync 1129 | 16282,96,zkSync 1130 | 16283,141,zkSync 1131 | 16284,121,zkSync 1132 | 16285,148,zkSync 1133 | 16286,152,zkSync 1134 | 16287,139,zkSync 1135 | 16288,147,zkSync 1136 | 16289,126,zkSync 1137 | 16290,106,zkSync 1138 | 16291,175,zkSync 1139 | 16292,107,zkSync 1140 | 16293,132,zkSync 1141 | 16294,151,zkSync 1142 | 16295,133,zkSync 1143 | 16296,151,zkSync 1144 | 16297,121,zkSync 1145 | 16298,142,zkSync 1146 | 16299,150,zkSync 1147 | 16300,137,zkSync 1148 | 16301,151,zkSync 1149 | 16302,138,zkSync 1150 | 16303,130,zkSync 1151 | 16304,153,zkSync 1152 | 16305,161,zkSync 1153 | 16306,142,zkSync 1154 | 16307,150,zkSync 1155 | 16308,106,zkSync 1156 | 16309,107,zkSync 1157 | 16310,128,zkSync 1158 | 16311,124,zkSync 1159 | 16312,167,zkSync 1160 | 16313,131,zkSync 1161 | 16314,126,zkSync 1162 | 16315,166,zkSync 1163 | 16316,129,zkSync 1164 | 16317,157,zkSync 1165 | 16318,133,zkSync 1166 | 16319,114,zkSync 1167 | 16320,148,zkSync 1168 | 16321,159,zkSync 1169 | 16322,157,zkSync 1170 | 16323,140,zkSync 1171 | 16324,124,zkSync 1172 | 16325,112,zkSync 1173 | 16326,157,zkSync 1174 | 16327,95,zkSync 1175 | 16328,116,zkSync 1176 | 16329,140,zkSync 1177 | 16330,142,zkSync 1178 | 16331,95,zkSync 1179 | 16332,117,zkSync 1180 | 16333,104,zkSync 1181 | 16334,182,zkSync 1182 | 16335,122,zkSync 1183 | 16336,137,zkSync 1184 | 16337,150,zkSync 1185 | 16338,122,zkSync 1186 | 16339,143,zkSync 1187 | 16340,176,zkSync 1188 | 16341,137,zkSync 1189 | 16342,137,zkSync 1190 | 16343,133,zkSync 1191 | 16344,172,zkSync 1192 | 16345,147,zkSync 1193 | 16346,115,zkSync 1194 | 16347,140,zkSync 1195 | 16348,84,zkSync 1196 | 16349,138,zkSync 1197 | 16350,145,zkSync 1198 | 16351,122,zkSync 1199 | 16352,147,zkSync 1200 | 16353,144,zkSync 1201 | 16354,105,zkSync 1202 | 16355,103,zkSync 1203 | 16356,125,zkSync 1204 | 16357,140,zkSync 1205 | 16358,146,zkSync 1206 | 16359,158,zkSync 1207 | 16360,136,zkSync 1208 | 16361,126,zkSync 1209 | 16362,127,zkSync 1210 | 16363,161,zkSync 1211 | 16364,151,zkSync 1212 | 16365,137,zkSync 1213 | 16366,131,zkSync 1214 | 16367,146,zkSync 1215 | 16368,138,zkSync 1216 | 16369,156,zkSync 1217 | 16370,134,zkSync 1218 | 16371,144,zkSync 1219 | 16372,143,zkSync 1220 | 16373,144,zkSync 1221 | 16374,151,zkSync 1222 | 16375,157,zkSync 1223 | 16376,118,zkSync 1224 | 16377,153,zkSync 1225 | 16378,158,zkSync 1226 | 16379,123,zkSync 1227 | 16380,132,zkSync 1228 | 16381,100,zkSync 1229 | 16382,165,zkSync 1230 | 16383,132,zkSync 1231 | 16384,120,zkSync 1232 | 16385,149,zkSync 1233 | 16386,151,zkSync 1234 | 16387,118,zkSync 1235 | 16388,155,zkSync 1236 | 16389,148,zkSync 1237 | 16390,135,zkSync 1238 | 16391,172,zkSync 1239 | 16392,150,zkSync 1240 | 16393,177,zkSync 1241 | 16394,123,zkSync 1242 | 16395,124,zkSync 1243 | 16396,172,zkSync 1244 | 16397,153,zkSync 1245 | 16398,161,zkSync 1246 | 16399,141,zkSync 1247 | 16400,150,zkSync 1248 | 16401,155,zkSync 1249 | 16402,116,zkSync 1250 | 16403,144,zkSync 1251 | 16404,139,zkSync 1252 | 16405,135,zkSync 1253 | 16406,135,zkSync 1254 | 16407,163,zkSync 1255 | 16408,113,zkSync 1256 | 16409,165,zkSync 1257 | 16410,157,zkSync 1258 | 16411,95,zkSync 1259 | 16412,173,zkSync 1260 | 16413,154,zkSync 1261 | 16414,146,zkSync 1262 | 16415,174,zkSync 1263 | 16416,151,zkSync 1264 | 16417,131,zkSync 1265 | 16418,158,zkSync 1266 | 16419,143,zkSync 1267 | 16420,139,zkSync 1268 | 16421,89,zkSync 1269 | 16422,155,zkSync 1270 | 16423,156,zkSync 1271 | 16424,122,zkSync 1272 | 16425,131,zkSync 1273 | 16426,143,zkSync 1274 | 16427,151,zkSync 1275 | 16428,138,zkSync 1276 | 16429,151,zkSync 1277 | 16430,130,zkSync 1278 | 16431,114,zkSync 1279 | 16432,136,zkSync 1280 | 16433,133,zkSync 1281 | 16434,132,zkSync 1282 | 16435,96,zkSync 1283 | 16436,134,zkSync 1284 | 16437,147,zkSync 1285 | 16438,129,zkSync 1286 | 16439,155,zkSync 1287 | 16440,149,zkSync 1288 | 16441,113,zkSync 1289 | 16442,135,zkSync 1290 | 16443,149,zkSync 1291 | 16444,142,zkSync 1292 | 16445,152,zkSync 1293 | 16446,138,zkSync 1294 | 16447,165,zkSync 1295 | 16448,130,zkSync 1296 | 16449,118,zkSync 1297 | 16450,133,zkSync 1298 | 16451,152,zkSync 1299 | 16452,125,zkSync 1300 | 16453,177,zkSync 1301 | 16454,111,zkSync 1302 | 16455,144,zkSync 1303 | 16456,126,zkSync 1304 | 16457,148,zkSync 1305 | 16458,119,zkSync 1306 | 16459,172,zkSync 1307 | 16460,132,zkSync 1308 | 16461,131,zkSync 1309 | 16462,130,zkSync 1310 | 16463,178,zkSync 1311 | 16464,125,zkSync 1312 | 16465,121,zkSync 1313 | 16466,142,zkSync 1314 | 16467,128,zkSync 1315 | 16468,120,zkSync 1316 | 16469,161,zkSync 1317 | 16470,137,zkSync 1318 | 16471,138,zkSync 1319 | 16472,162,zkSync 1320 | 16473,132,zkSync 1321 | 16474,147,zkSync 1322 | 16475,148,zkSync 1323 | 16476,134,zkSync 1324 | 16477,133,zkSync 1325 | 16478,150,zkSync 1326 | 16479,161,zkSync 1327 | 16480,171,zkSync 1328 | 16481,112,zkSync 1329 | 16482,156,zkSync 1330 | 16483,123,zkSync 1331 | 16484,125,zkSync 1332 | 16485,169,zkSync 1333 | 16486,137,zkSync 1334 | 16487,149,zkSync 1335 | 16488,151,zkSync 1336 | 16489,148,zkSync 1337 | 16490,133,zkSync 1338 | 16491,99,zkSync 1339 | 16492,125,zkSync 1340 | 16493,142,zkSync 1341 | 16494,161,zkSync 1342 | 16495,140,zkSync 1343 | 16496,171,zkSync 1344 | 16497,158,zkSync 1345 | 16498,84,zkSync 1346 | 16499,108,zkSync 1347 | 16500,144,zkSync 1348 | 16501,152,zkSync 1349 | 16502,121,zkSync 1350 | 16503,149,zkSync 1351 | 16504,95,zkSync 1352 | 16505,121,zkSync 1353 | 16506,122,zkSync 1354 | 16507,112,zkSync 1355 | 16508,164,zkSync 1356 | 16509,129,zkSync 1357 | 16510,91,zkSync 1358 | 16511,152,zkSync 1359 | 16512,141,zkSync 1360 | 16513,123,zkSync 1361 | 16514,123,zkSync 1362 | 16515,136,zkSync 1363 | 16516,180,zkSync 1364 | 16517,119,zkSync 1365 | 16518,129,zkSync 1366 | 16519,96,zkSync 1367 | 16520,121,zkSync 1368 | 16521,169,zkSync 1369 | 16522,138,zkSync 1370 | 16523,153,zkSync 1371 | 16524,157,zkSync 1372 | 16525,112,zkSync 1373 | 16526,150,zkSync 1374 | 16527,124,zkSync 1375 | 16528,114,zkSync 1376 | 16529,154,zkSync 1377 | 16530,161,zkSync 1378 | 16531,136,zkSync 1379 | 16532,96,zkSync 1380 | 16533,120,zkSync 1381 | 16534,130,zkSync 1382 | 16535,125,zkSync 1383 | 16536,140,zkSync 1384 | 16537,105,zkSync 1385 | 16538,137,zkSync 1386 | 16539,123,zkSync 1387 | 16540,168,zkSync 1388 | 16541,106,zkSync 1389 | 16542,138,zkSync 1390 | 16543,131,zkSync 1391 | 16544,129,zkSync 1392 | 16545,137,zkSync 1393 | 16546,138,zkSync 1394 | 16547,109,zkSync 1395 | 16548,150,zkSync 1396 | 16549,126,zkSync 1397 | 16550,167,zkSync 1398 | 16551,144,zkSync 1399 | 16552,145,zkSync 1400 | 16553,132,zkSync 1401 | 16554,134,zkSync 1402 | 16555,130,zkSync 1403 | 16556,106,zkSync 1404 | 16557,147,zkSync 1405 | 16558,132,zkSync 1406 | 16559,141,zkSync 1407 | 16560,108,zkSync 1408 | 16561,142,zkSync 1409 | 16562,170,zkSync 1410 | 16563,157,zkSync 1411 | 16564,146,zkSync 1412 | 16565,101,zkSync 1413 | 16566,166,zkSync 1414 | 16567,161,zkSync 1415 | 16568,112,zkSync 1416 | 16569,140,zkSync 1417 | 16570,113,zkSync 1418 | 16571,144,zkSync 1419 | 16572,136,zkSync 1420 | 16573,125,zkSync 1421 | 16574,100,zkSync 1422 | 16575,153,zkSync 1423 | 16576,141,zkSync 1424 | 16577,179,zkSync 1425 | 16578,141,zkSync 1426 | 16579,126,zkSync 1427 | 16580,184,zkSync 1428 | 16581,130,zkSync 1429 | 16582,141,zkSync 1430 | 16583,182,zkSync 1431 | 16584,141,zkSync 1432 | 16585,152,zkSync 1433 | 16586,132,zkSync 1434 | 16587,128,zkSync 1435 | 16588,134,zkSync 1436 | 16589,185,zkSync 1437 | 16590,141,zkSync 1438 | 16591,151,zkSync 1439 | 16592,163,zkSync 1440 | 16593,155,zkSync 1441 | 16594,136,zkSync 1442 | 16595,130,zkSync 1443 | 16596,144,zkSync 1444 | 16597,146,zkSync 1445 | 16598,167,zkSync 1446 | 16599,140,zkSync 1447 | 16600,167,zkSync 1448 | 16601,165,zkSync 1449 | 16602,119,zkSync 1450 | 16603,128,zkSync 1451 | 16604,172,zkSync 1452 | 16605,173,zkSync 1453 | 16606,138,zkSync 1454 | 16607,139,zkSync 1455 | 16608,134,zkSync 1456 | 16609,162,zkSync 1457 | 16610,124,zkSync 1458 | 16611,154,zkSync 1459 | 16612,114,zkSync 1460 | 16613,143,zkSync 1461 | 16614,141,zkSync 1462 | 16615,171,zkSync 1463 | 16616,128,zkSync 1464 | 16617,137,zkSync 1465 | 16618,154,zkSync 1466 | 16619,145,zkSync 1467 | 16620,133,zkSync 1468 | 16621,143,zkSync 1469 | 16622,134,zkSync 1470 | 16623,161,zkSync 1471 | 16624,164,zkSync 1472 | 16625,151,zkSync 1473 | 16626,140,zkSync 1474 | 16627,163,zkSync 1475 | 16628,167,zkSync 1476 | 16629,121,zkSync 1477 | 16630,141,zkSync 1478 | 16631,139,zkSync 1479 | 16632,139,zkSync 1480 | 16633,143,zkSync 1481 | 16634,159,zkSync 1482 | 16635,142,zkSync 1483 | 16636,166,zkSync 1484 | 16637,149,zkSync 1485 | 16638,128,zkSync 1486 | 16639,167,zkSync 1487 | 16640,175,zkSync 1488 | 16641,145,zkSync 1489 | 16642,145,zkSync 1490 | 16643,147,zkSync 1491 | 16644,164,zkSync 1492 | 16645,124,zkSync 1493 | 16646,154,zkSync 1494 | 16647,141,zkSync 1495 | 16648,122,zkSync 1496 | 16649,159,zkSync 1497 | 16650,151,zkSync 1498 | 16651,160,zkSync 1499 | 16652,125,zkSync 1500 | 16653,173,zkSync 1501 | 16654,113,zkSync 1502 | 16655,167,zkSync 1503 | 16656,136,zkSync 1504 | 16657,145,zkSync 1505 | 16658,153,zkSync 1506 | 16659,165,zkSync 1507 | 16660,115,zkSync 1508 | 16661,135,zkSync 1509 | 16662,136,zkSync 1510 | 16663,123,zkSync 1511 | 16664,134,zkSync 1512 | 16665,156,zkSync 1513 | 16666,153,zkSync 1514 | 16667,156,zkSync 1515 | 16668,118,zkSync 1516 | 16669,143,zkSync 1517 | 16670,158,zkSync 1518 | 16671,145,zkSync 1519 | 16672,159,zkSync 1520 | 16673,169,zkSync 1521 | 16674,167,zkSync 1522 | 16675,161,zkSync 1523 | 16676,168,zkSync 1524 | 16677,136,zkSync 1525 | 16678,164,zkSync 1526 | 16679,162,zkSync 1527 | 16680,154,zkSync 1528 | 16681,141,zkSync 1529 | 16682,142,zkSync 1530 | 16683,148,zkSync 1531 | 16684,157,zkSync 1532 | 16685,150,zkSync 1533 | 16686,148,zkSync 1534 | 16687,151,zkSync 1535 | 16688,146,zkSync 1536 | 16689,140,zkSync 1537 | 16690,162,zkSync 1538 | 16691,162,zkSync 1539 | 16692,146,zkSync 1540 | 16693,157,zkSync 1541 | 16694,163,zkSync 1542 | 16695,141,zkSync 1543 | 16696,172,zkSync 1544 | 16697,170,zkSync 1545 | 16698,133,zkSync 1546 | 16699,148,zkSync 1547 | 16700,120,zkSync 1548 | 16701,155,zkSync 1549 | 16702,124,zkSync 1550 | 16703,138,zkSync 1551 | 16704,155,zkSync 1552 | 16705,144,zkSync 1553 | 16706,158,zkSync 1554 | 16707,150,zkSync 1555 | 16708,156,zkSync 1556 | 16709,147,zkSync 1557 | 16710,165,zkSync 1558 | 16711,171,zkSync 1559 | 16712,150,zkSync 1560 | 16713,164,zkSync 1561 | 16714,157,zkSync 1562 | 16715,166,zkSync 1563 | 16716,154,zkSync 1564 | 16717,144,zkSync 1565 | 16718,172,zkSync 1566 | 16719,162,zkSync 1567 | 16720,161,zkSync 1568 | 16721,152,zkSync 1569 | 16722,157,zkSync 1570 | 16723,125,zkSync 1571 | 16724,166,zkSync 1572 | 16725,153,zkSync 1573 | 16726,158,zkSync 1574 | 16727,146,zkSync 1575 | 16728,134,zkSync 1576 | 16729,154,zkSync 1577 | 16730,144,zkSync 1578 | 16731,143,zkSync 1579 | 16732,150,zkSync 1580 | 16733,138,zkSync 1581 | 16734,150,zkSync 1582 | 16735,149,zkSync 1583 | 16736,129,zkSync 1584 | 16737,149,zkSync 1585 | 16738,141,zkSync 1586 | 16739,128,zkSync 1587 | 16740,126,zkSync 1588 | 16741,149,zkSync 1589 | 16742,169,zkSync 1590 | 16743,174,zkSync 1591 | 16744,151,zkSync 1592 | 16745,144,zkSync 1593 | 16746,140,zkSync 1594 | 16747,148,zkSync 1595 | 16748,161,zkSync 1596 | 16749,163,zkSync 1597 | 16750,126,zkSync 1598 | 16751,142,zkSync 1599 | 16752,145,zkSync 1600 | 16753,156,zkSync 1601 | 16754,152,zkSync 1602 | 16755,146,zkSync 1603 | 16756,152,zkSync 1604 | 16757,144,zkSync 1605 | 16758,147,zkSync 1606 | 16759,154,zkSync 1607 | 16760,160,zkSync 1608 | 16761,144,zkSync 1609 | 16762,152,zkSync 1610 | 16763,137,zkSync 1611 | 16764,168,zkSync 1612 | 16765,150,zkSync 1613 | 16766,171,zkSync 1614 | 16767,133,zkSync 1615 | 16768,166,zkSync 1616 | 16769,161,zkSync 1617 | 16770,172,zkSync 1618 | 16771,154,zkSync 1619 | 16772,156,zkSync 1620 | 16773,147,zkSync 1621 | 16774,170,zkSync 1622 | 16775,137,zkSync 1623 | 16776,135,zkSync 1624 | 16777,157,zkSync 1625 | 16778,179,zkSync 1626 | 16779,147,zkSync 1627 | 16780,161,zkSync 1628 | 16781,155,zkSync 1629 | 16782,150,zkSync 1630 | 16783,157,zkSync 1631 | 16784,167,zkSync 1632 | 16785,141,zkSync 1633 | 16786,137,zkSync 1634 | 16787,149,zkSync 1635 | 16788,152,zkSync 1636 | 16789,146,zkSync 1637 | 16790,148,zkSync 1638 | 16791,152,zkSync 1639 | 16792,144,zkSync 1640 | 16793,147,zkSync 1641 | 16794,156,zkSync 1642 | 16795,158,zkSync 1643 | 16796,164,zkSync 1644 | 16797,151,zkSync 1645 | 16798,128,zkSync 1646 | 16799,145,zkSync 1647 | 16800,140,zkSync 1648 | 16801,153,zkSync 1649 | 16802,158,zkSync 1650 | 16803,137,zkSync 1651 | 16804,158,zkSync 1652 | 16805,163,zkSync 1653 | 16806,139,zkSync 1654 | 16807,147,zkSync 1655 | 16808,134,zkSync 1656 | 16809,155,zkSync 1657 | 16810,147,zkSync 1658 | 16811,163,zkSync 1659 | 16812,167,zkSync 1660 | 16813,139,zkSync 1661 | 16814,145,zkSync 1662 | 16815,111,zkSync 1663 | 16816,146,zkSync 1664 | 16817,147,zkSync 1665 | 16818,144,zkSync 1666 | 16819,154,zkSync 1667 | 16820,140,zkSync 1668 | 16821,137,zkSync 1669 | 16822,147,zkSync 1670 | 16823,160,zkSync 1671 | 16824,166,zkSync 1672 | 16825,135,zkSync 1673 | 16826,142,zkSync 1674 | 16827,154,zkSync 1675 | 16828,136,zkSync 1676 | 16829,166,zkSync 1677 | 16830,141,zkSync 1678 | 16831,129,zkSync 1679 | 16832,155,zkSync 1680 | 16833,137,zkSync 1681 | 16834,170,zkSync 1682 | 16835,159,zkSync 1683 | 16836,164,zkSync 1684 | 16837,162,zkSync 1685 | 16838,155,zkSync 1686 | 16839,170,zkSync 1687 | 16840,152,zkSync 1688 | 16841,125,zkSync 1689 | 16842,163,zkSync 1690 | 16843,166,zkSync 1691 | 16844,169,zkSync 1692 | 16845,121,zkSync 1693 | 16846,142,zkSync 1694 | 16847,134,zkSync 1695 | 16848,144,zkSync 1696 | 16849,172,zkSync 1697 | 16850,131,zkSync 1698 | 16851,154,zkSync 1699 | 16852,125,zkSync 1700 | 16853,151,zkSync 1701 | 16854,147,zkSync 1702 | 16855,119,zkSync 1703 | 16856,147,zkSync 1704 | 16857,142,zkSync 1705 | 16858,161,zkSync 1706 | 16859,128,zkSync 1707 | 16860,152,zkSync 1708 | 16861,151,zkSync 1709 | 16862,157,zkSync 1710 | 16863,144,zkSync 1711 | 16864,161,zkSync 1712 | 16865,146,zkSync 1713 | 16866,147,zkSync 1714 | 16867,148,zkSync 1715 | 16868,166,zkSync 1716 | 16869,167,zkSync 1717 | 16870,155,zkSync 1718 | 16871,158,zkSync 1719 | 16872,140,zkSync 1720 | 16873,137,zkSync 1721 | 16874,160,zkSync 1722 | 16875,153,zkSync 1723 | 16876,150,zkSync 1724 | 16877,162,zkSync 1725 | 16878,127,zkSync 1726 | 16879,165,zkSync 1727 | 16880,166,zkSync 1728 | 16881,162,zkSync 1729 | 16882,152,zkSync 1730 | 16883,147,zkSync 1731 | 16884,152,zkSync 1732 | 16885,162,zkSync 1733 | 16886,131,zkSync 1734 | 16887,155,zkSync 1735 | 16888,123,zkSync 1736 | 16889,115,zkSync 1737 | 16890,164,zkSync 1738 | 16891,152,zkSync 1739 | 16892,135,zkSync 1740 | 16893,149,zkSync 1741 | 16894,159,zkSync 1742 | 16895,165,zkSync 1743 | 16896,156,zkSync 1744 | 16897,149,zkSync 1745 | 16898,156,zkSync 1746 | 16899,127,zkSync 1747 | 16900,68,zkSync 1748 | 16901,72,zkSync 1749 | 16902,67,zkSync 1750 | 16903,65,zkSync 1751 | 16904,72,zkSync 1752 | 16905,160,zkSync 1753 | 16906,91,zkSync 1754 | 16907,72,zkSync 1755 | 16908,73,zkSync 1756 | 16909,99,zkSync 1757 | 16910,92,zkSync 1758 | 16911,115,zkSync 1759 | 16912,88,zkSync 1760 | 16913,96,zkSync 1761 | 16914,71,zkSync 1762 | 16915,102,zkSync 1763 | 16916,69,zkSync 1764 | 16917,67,zkSync 1765 | 16918,168,zkSync 1766 | 16919,167,zkSync 1767 | 16920,91,zkSync 1768 | 16921,98,zkSync 1769 | 16922,89,zkSync 1770 | 16923,101,zkSync 1771 | 16924,82,zkSync 1772 | 16925,69,zkSync 1773 | 16926,75,zkSync 1774 | 16927,79,zkSync 1775 | 16928,81,zkSync 1776 | 16929,160,zkSync 1777 | 16930,87,zkSync 1778 | 16931,83,zkSync 1779 | 16932,68,zkSync 1780 | 16933,157,zkSync 1781 | 16934,91,zkSync 1782 | 16935,82,zkSync 1783 | 16936,81,zkSync 1784 | 16937,146,zkSync 1785 | 16938,92,zkSync 1786 | 16939,160,zkSync 1787 | 16940,70,zkSync 1788 | 16941,80,zkSync 1789 | 16942,83,zkSync 1790 | 16943,88,zkSync 1791 | 16944,70,zkSync 1792 | 16945,113,zkSync 1793 | 16946,158,zkSync 1794 | 16947,110,zkSync 1795 | 16948,112,zkSync 1796 | 16949,80,zkSync 1797 | 16950,174,zkSync 1798 | 16951,83,zkSync 1799 | 16952,121,zkSync 1800 | 16953,148,zkSync 1801 | 16954,94,zkSync 1802 | 16955,75,zkSync 1803 | 16956,96,zkSync 1804 | 16957,165,zkSync 1805 | 16958,82,zkSync 1806 | 16959,107,zkSync 1807 | 16960,134,zkSync 1808 | 16961,168,zkSync 1809 | 16962,75,zkSync 1810 | 16963,68,zkSync 1811 | 16964,82,zkSync 1812 | 16965,176,zkSync 1813 | 16966,85,zkSync 1814 | 16967,172,zkSync 1815 | 16968,76,zkSync 1816 | 16969,71,zkSync 1817 | 16970,156,zkSync 1818 | 16971,175,zkSync 1819 | 16972,99,zkSync 1820 | 16973,182,zkSync 1821 | 16974,101,zkSync 1822 | 16975,78,zkSync 1823 | 16976,68,zkSync 1824 | 16977,79,zkSync 1825 | 16978,142,zkSync 1826 | 16979,94,zkSync 1827 | 16980,168,zkSync 1828 | 16981,80,zkSync 1829 | 16982,152,zkSync 1830 | 16983,81,zkSync 1831 | 16984,107,zkSync 1832 | 16985,86,zkSync 1833 | 16986,160,zkSync 1834 | 16987,113,zkSync 1835 | 16988,167,zkSync 1836 | 16989,71,zkSync 1837 | 16990,74,zkSync 1838 | 16991,78,zkSync 1839 | 16992,76,zkSync 1840 | 16993,88,zkSync 1841 | 16994,73,zkSync 1842 | 16995,94,zkSync 1843 | 16996,98,zkSync 1844 | 16997,81,zkSync 1845 | 16998,92,zkSync 1846 | 16999,83,zkSync 1847 | 17000,155,zkSync 1848 | 17001,175,zkSync 1849 | 17002,88,zkSync 1850 | 17003,115,zkSync 1851 | 17004,165,zkSync 1852 | 17005,102,zkSync 1853 | 17006,116,zkSync 1854 | 17007,159,zkSync 1855 | 17008,76,zkSync 1856 | 17009,75,zkSync 1857 | 17010,162,zkSync 1858 | 17011,169,zkSync 1859 | 17012,96,zkSync 1860 | 17013,81,zkSync 1861 | 17014,89,zkSync 1862 | 17015,86,zkSync 1863 | 17016,170,zkSync 1864 | 17017,88,zkSync 1865 | 17018,179,zkSync 1866 | 17019,75,zkSync 1867 | 17020,75,zkSync 1868 | 17021,81,zkSync 1869 | 17022,129,zkSync 1870 | 17023,83,zkSync 1871 | 17024,96,zkSync 1872 | 17025,90,zkSync 1873 | 17026,87,zkSync 1874 | 17027,102,zkSync 1875 | 17028,87,zkSync 1876 | 17029,82,zkSync 1877 | 17030,89,zkSync 1878 | 17031,171,zkSync 1879 | 17032,91,zkSync 1880 | 17033,92,zkSync 1881 | 17034,166,zkSync 1882 | 17035,69,zkSync 1883 | 17036,88,zkSync 1884 | 17037,87,zkSync 1885 | 17038,157,zkSync 1886 | 17039,105,zkSync 1887 | 17040,127,zkSync 1888 | 17041,115,zkSync 1889 | 17042,88,zkSync 1890 | 17043,79,zkSync 1891 | 17044,118,zkSync 1892 | 17045,96,zkSync 1893 | 17046,92,zkSync 1894 | 17047,150,zkSync 1895 | 17048,171,zkSync 1896 | 17049,85,zkSync 1897 | 17050,82,zkSync 1898 | 17051,162,zkSync 1899 | 17052,84,zkSync 1900 | 17053,105,zkSync 1901 | 17054,111,zkSync 1902 | 17055,101,zkSync 1903 | 17056,77,zkSync 1904 | 17057,82,zkSync 1905 | 17058,127,zkSync 1906 | 17059,80,zkSync 1907 | 17060,121,zkSync 1908 | 17061,78,zkSync 1909 | 17062,84,zkSync 1910 | 17063,86,zkSync 1911 | 17064,111,zkSync 1912 | 17065,96,zkSync 1913 | 17066,104,zkSync 1914 | 17067,118,zkSync 1915 | 17068,82,zkSync 1916 | 17069,146,zkSync 1917 | 17070,86,zkSync 1918 | 17071,83,zkSync 1919 | 17072,99,zkSync 1920 | 17073,85,zkSync 1921 | 17074,87,zkSync 1922 | 17075,72,zkSync 1923 | 17076,91,zkSync 1924 | 17077,164,zkSync 1925 | 17078,156,zkSync 1926 | 17079,73,zkSync 1927 | 17080,83,zkSync 1928 | 17081,75,zkSync 1929 | 17082,110,zkSync 1930 | 17083,100,zkSync 1931 | 17084,80,zkSync 1932 | 17085,101,zkSync 1933 | 17086,104,zkSync 1934 | 17087,105,zkSync 1935 | 17088,120,zkSync 1936 | 17089,97,zkSync 1937 | 17090,92,zkSync 1938 | 17091,89,zkSync 1939 | 17092,86,zkSync 1940 | 17093,104,zkSync 1941 | 17094,99,zkSync 1942 | 17095,92,zkSync 1943 | 17096,99,zkSync 1944 | 17097,90,zkSync 1945 | 17098,75,zkSync 1946 | 17099,174,zkSync 1947 | 17100,74,zkSync 1948 | 17101,85,zkSync 1949 | 17102,86,zkSync 1950 | 17103,102,zkSync 1951 | 17104,87,zkSync 1952 | 17105,88,zkSync 1953 | 17106,80,zkSync 1954 | 17107,90,zkSync 1955 | 17108,86,zkSync 1956 | 17109,131,zkSync 1957 | 17110,81,zkSync 1958 | 17111,82,zkSync 1959 | 17112,107,zkSync 1960 | 17113,82,zkSync 1961 | 17114,83,zkSync 1962 | 17115,83,zkSync 1963 | 17116,96,zkSync 1964 | 17117,96,zkSync 1965 | 17118,80,zkSync 1966 | 17119,75,zkSync 1967 | 17120,84,zkSync 1968 | 17121,95,zkSync 1969 | 17122,78,zkSync 1970 | 17123,112,zkSync 1971 | 17124,85,zkSync 1972 | 17125,102,zkSync 1973 | 17126,87,zkSync 1974 | 17127,88,zkSync 1975 | 17128,90,zkSync 1976 | 17129,168,zkSync 1977 | 17130,84,zkSync 1978 | 17131,78,zkSync 1979 | 17132,80,zkSync 1980 | 17133,92,zkSync 1981 | 17134,83,zkSync 1982 | 17135,103,zkSync 1983 | 17136,82,zkSync 1984 | 17137,73,zkSync 1985 | 17138,95,zkSync 1986 | 17139,87,zkSync 1987 | 17140,87,zkSync 1988 | 17141,98,zkSync 1989 | 17142,84,zkSync 1990 | 17143,82,zkSync 1991 | 17144,87,zkSync 1992 | 17145,85,zkSync 1993 | 17146,79,zkSync 1994 | 17147,78,zkSync 1995 | 17148,126,zkSync 1996 | 17149,86,zkSync 1997 | 17150,96,zkSync 1998 | 17151,78,zkSync 1999 | 17152,77,zkSync 2000 | 17153,88,zkSync 2001 | 17154,76,zkSync 2002 | 17155,87,zkSync 2003 | 17156,163,zkSync 2004 | 17157,142,zkSync 2005 | 17158,87,zkSync 2006 | 17159,155,zkSync 2007 | 17160,77,zkSync 2008 | 17161,91,zkSync 2009 | 17162,108,zkSync 2010 | 17163,112,zkSync 2011 | 17164,91,zkSync 2012 | 17165,125,zkSync 2013 | 17166,88,zkSync 2014 | 17167,166,zkSync 2015 | 17168,79,zkSync 2016 | 17169,166,zkSync 2017 | 17170,167,zkSync 2018 | 17171,85,zkSync 2019 | 17172,176,zkSync 2020 | 17173,80,zkSync 2021 | 17174,80,zkSync 2022 | 17175,146,zkSync 2023 | 17176,81,zkSync 2024 | 17177,176,zkSync 2025 | 17178,74,zkSync 2026 | 17179,86,zkSync 2027 | 17180,80,zkSync 2028 | 17181,97,zkSync 2029 | 17182,150,zkSync 2030 | 17183,89,zkSync 2031 | 17184,146,zkSync 2032 | 17185,66,zkSync 2033 | 17186,77,zkSync 2034 | 17187,92,zkSync 2035 | 17188,83,zkSync 2036 | 17189,74,zkSync 2037 | 17190,98,zkSync 2038 | 17191,79,zkSync 2039 | 17192,78,zkSync 2040 | 17193,94,zkSync 2041 | 17194,99,zkSync 2042 | 17195,90,zkSync 2043 | 17196,92,zkSync 2044 | 17197,147,zkSync 2045 | 17198,81,zkSync 2046 | 17199,75,zkSync 2047 | 17200,94,zkSync 2048 | 17201,85,zkSync 2049 | 17202,79,zkSync 2050 | 17203,99,zkSync 2051 | 17204,81,zkSync 2052 | 17205,81,zkSync 2053 | 17206,79,zkSync 2054 | 17207,76,zkSync 2055 | 17208,85,zkSync 2056 | 17209,91,zkSync 2057 | 17210,100,zkSync 2058 | 17211,74,zkSync 2059 | 17212,90,zkSync 2060 | 17213,83,zkSync 2061 | 17214,83,zkSync 2062 | 17215,73,zkSync 2063 | 17216,85,zkSync 2064 | 17217,91,zkSync 2065 | 17218,75,zkSync 2066 | 17219,76,zkSync 2067 | 17220,90,zkSync 2068 | 17221,76,zkSync 2069 | 17222,83,zkSync 2070 | 17223,91,zkSync 2071 | 17224,78,zkSync 2072 | 17225,83,zkSync 2073 | 17226,76,zkSync 2074 | 17227,86,zkSync 2075 | 17228,82,zkSync 2076 | 17229,76,zkSync 2077 | 17230,77,zkSync 2078 | 17231,95,zkSync 2079 | 17232,79,zkSync 2080 | 17233,77,zkSync 2081 | 17234,73,zkSync 2082 | 17235,77,zkSync 2083 | 17236,87,zkSync 2084 | 17237,82,zkSync 2085 | 17238,77,zkSync 2086 | 17239,91,zkSync 2087 | 17240,89,zkSync 2088 | 17241,90,zkSync 2089 | 17242,81,zkSync 2090 | 17243,75,zkSync 2091 | 17244,78,zkSync 2092 | 17245,99,zkSync 2093 | 17246,73,zkSync 2094 | 17247,90,zkSync 2095 | 17248,85,zkSync 2096 | 17249,84,zkSync 2097 | 17250,84,zkSync 2098 | 17251,76,zkSync 2099 | 17252,82,zkSync 2100 | 17253,77,zkSync 2101 | 17254,79,zkSync 2102 | 17255,87,zkSync 2103 | 17256,93,zkSync 2104 | 17257,88,zkSync 2105 | 17258,80,zkSync 2106 | 17259,76,zkSync 2107 | 17260,70,zkSync 2108 | 17261,71,zkSync 2109 | 17262,80,zkSync 2110 | 17263,84,zkSync 2111 | 17264,81,zkSync 2112 | 17265,86,zkSync 2113 | 17266,94,zkSync 2114 | 17267,77,zkSync 2115 | 17268,75,zkSync 2116 | 17269,88,zkSync 2117 | 17270,79,zkSync 2118 | 17271,89,zkSync 2119 | 17272,90,zkSync 2120 | 17273,79,zkSync 2121 | 17274,75,zkSync 2122 | 17275,79,zkSync 2123 | 17276,75,zkSync 2124 | 17277,77,zkSync 2125 | 17278,82,zkSync 2126 | 17279,89,zkSync 2127 | 17280,105,zkSync 2128 | 17281,96,zkSync 2129 | 17282,89,zkSync 2130 | 17283,79,zkSync 2131 | 17284,87,zkSync 2132 | 17285,98,zkSync 2133 | 17286,86,zkSync 2134 | 17287,76,zkSync 2135 | 17288,82,zkSync 2136 | 17289,95,zkSync 2137 | 17290,91,zkSync 2138 | 17291,85,zkSync 2139 | 17292,77,zkSync 2140 | 17293,89,zkSync 2141 | 17294,83,zkSync 2142 | 17295,85,zkSync 2143 | 17296,91,zkSync 2144 | 17297,74,zkSync 2145 | 17298,92,zkSync 2146 | 17299,94,zkSync 2147 | 17300,79,zkSync 2148 | 17301,82,zkSync 2149 | 17302,86,zkSync 2150 | 17303,83,zkSync 2151 | 17304,84,zkSync 2152 | 17305,73,zkSync 2153 | 17306,77,zkSync 2154 | 17307,82,zkSync 2155 | 17308,92,zkSync 2156 | 17309,83,zkSync 2157 | 17310,84,zkSync 2158 | 17311,92,zkSync 2159 | 17312,77,zkSync 2160 | 17313,85,zkSync 2161 | 17314,81,zkSync 2162 | 17315,87,zkSync 2163 | 17316,86,zkSync 2164 | 17317,80,zkSync 2165 | 17318,77,zkSync 2166 | 17319,92,zkSync 2167 | 17320,85,zkSync 2168 | 17321,94,zkSync 2169 | 17322,79,zkSync 2170 | 17323,82,zkSync 2171 | 17324,79,zkSync 2172 | 17325,79,zkSync 2173 | 17326,98,zkSync 2174 | 17327,77,zkSync 2175 | 17328,79,zkSync 2176 | 17329,77,zkSync 2177 | 17330,81,zkSync 2178 | 17331,79,zkSync 2179 | 17332,83,zkSync 2180 | 17333,78,zkSync 2181 | 17334,102,zkSync 2182 | 17335,80,zkSync 2183 | 17336,94,zkSync 2184 | 17337,84,zkSync 2185 | 17338,78,zkSync 2186 | 17339,91,zkSync 2187 | 17340,106,zkSync 2188 | 17341,96,zkSync 2189 | 17342,81,zkSync 2190 | 17343,83,zkSync 2191 | 17344,78,zkSync 2192 | 17345,83,zkSync 2193 | 17346,78,zkSync 2194 | 17347,79,zkSync 2195 | 17348,103,zkSync 2196 | 17349,83,zkSync 2197 | 17350,83,zkSync 2198 | 17351,91,zkSync 2199 | 17352,88,zkSync 2200 | 17353,81,zkSync 2201 | 17354,77,zkSync 2202 | 17355,65,zkSync 2203 | 17356,85,zkSync 2204 | 17357,81,zkSync 2205 | 17358,82,zkSync 2206 | 17359,100,zkSync 2207 | 17360,74,zkSync 2208 | 17361,74,zkSync 2209 | 17362,93,zkSync 2210 | 17363,86,zkSync 2211 | 17364,78,zkSync 2212 | 17365,80,zkSync 2213 | 17366,73,zkSync 2214 | 17367,80,zkSync 2215 | 17368,100,zkSync 2216 | 17369,101,zkSync 2217 | 17370,91,zkSync 2218 | 17371,89,zkSync 2219 | 17372,77,zkSync 2220 | 17373,95,zkSync 2221 | 17374,92,zkSync 2222 | 17375,74,zkSync 2223 | 17376,84,zkSync 2224 | 17377,83,zkSync 2225 | 17378,86,zkSync 2226 | 17379,84,zkSync 2227 | 17380,83,zkSync 2228 | 17381,90,zkSync 2229 | 17382,90,zkSync 2230 | 17383,92,zkSync 2231 | 17384,99,zkSync 2232 | 17385,79,zkSync 2233 | 17386,98,zkSync 2234 | 17387,80,zkSync 2235 | 17388,90,zkSync 2236 | 17389,103,zkSync 2237 | 17390,98,zkSync 2238 | 17391,73,zkSync 2239 | 17392,94,zkSync 2240 | 17393,92,zkSync 2241 | 17394,86,zkSync 2242 | 17395,82,zkSync 2243 | 17396,78,zkSync 2244 | 17397,73,zkSync 2245 | 17398,81,zkSync 2246 | 17399,83,zkSync 2247 | 17400,95,zkSync 2248 | 17401,84,zkSync 2249 | 17402,79,zkSync 2250 | 17403,74,zkSync 2251 | 17404,82,zkSync 2252 | 17405,76,zkSync 2253 | 17406,84,zkSync 2254 | 17407,105,zkSync 2255 | 17408,78,zkSync 2256 | 17409,79,zkSync 2257 | 17410,94,zkSync 2258 | 17411,83,zkSync 2259 | 17412,89,zkSync 2260 | 17413,86,zkSync 2261 | 17414,81,zkSync 2262 | 17415,84,zkSync 2263 | 17416,91,zkSync 2264 | 17417,78,zkSync 2265 | 17418,80,zkSync 2266 | 17419,91,zkSync 2267 | 17420,90,zkSync 2268 | 17421,84,zkSync 2269 | 17422,81,zkSync 2270 | 17423,82,zkSync 2271 | 17424,87,zkSync 2272 | 17425,99,zkSync 2273 | 17426,89,zkSync 2274 | 17427,79,zkSync 2275 | 17428,81,zkSync 2276 | 17429,79,zkSync 2277 | 17430,87,zkSync 2278 | 17431,81,zkSync 2279 | 17432,80,zkSync 2280 | 17433,85,zkSync 2281 | 17434,96,zkSync 2282 | 17435,83,zkSync 2283 | 17436,80,zkSync 2284 | 17437,89,zkSync 2285 | 17438,78,zkSync 2286 | 17439,84,zkSync 2287 | 17440,80,zkSync 2288 | 17441,85,zkSync 2289 | 17442,77,zkSync 2290 | 17443,77,zkSync 2291 | 17444,92,zkSync 2292 | 17445,77,zkSync 2293 | 17446,81,zkSync 2294 | 17447,79,zkSync 2295 | 17448,90,zkSync 2296 | 17449,92,zkSync 2297 | 17450,78,zkSync 2298 | 17451,92,zkSync 2299 | 17452,90,zkSync 2300 | 17453,87,zkSync 2301 | 17454,78,zkSync 2302 | 17455,85,zkSync 2303 | 17456,83,zkSync 2304 | 17457,84,zkSync 2305 | 17458,84,zkSync 2306 | 17459,96,zkSync 2307 | 17460,80,zkSync 2308 | 17461,78,zkSync 2309 | 17462,85,zkSync 2310 | 17463,84,zkSync 2311 | 17464,89,zkSync 2312 | 17465,75,zkSync 2313 | 17466,86,zkSync 2314 | 17467,88,zkSync 2315 | 17468,87,zkSync 2316 | 17469,79,zkSync 2317 | 17470,79,zkSync 2318 | 17471,86,zkSync 2319 | 17472,76,zkSync 2320 | 17473,74,zkSync 2321 | 17474,83,zkSync 2322 | 17475,78,zkSync 2323 | 17476,78,zkSync 2324 | 17477,93,zkSync 2325 | 17478,78,zkSync 2326 | 17479,90,zkSync 2327 | 17480,77,zkSync 2328 | 17481,76,zkSync 2329 | 17482,80,zkSync 2330 | 17483,89,zkSync 2331 | 17484,82,zkSync 2332 | 17485,75,zkSync 2333 | 17486,92,zkSync 2334 | 17487,95,zkSync 2335 | 17488,85,zkSync 2336 | 17489,78,zkSync 2337 | 17490,93,zkSync 2338 | 17491,87,zkSync 2339 | 17492,85,zkSync 2340 | 17493,91,zkSync 2341 | 17494,84,zkSync 2342 | 17495,78,zkSync 2343 | 17496,81,zkSync 2344 | 17497,95,zkSync 2345 | 17498,72,zkSync 2346 | 17499,94,zkSync 2347 | 17500,84,zkSync 2348 | 17501,89,zkSync 2349 | 17502,102,zkSync 2350 | 17503,86,zkSync 2351 | 17504,90,zkSync 2352 | 17505,109,zkSync 2353 | 17506,86,zkSync 2354 | 17507,93,zkSync 2355 | 17508,91,zkSync 2356 | 17509,82,zkSync 2357 | 17510,96,zkSync 2358 | 17511,82,zkSync 2359 | 17512,108,zkSync 2360 | 17513,92,zkSync 2361 | 17514,86,zkSync 2362 | 17515,86,zkSync 2363 | 17516,82,zkSync 2364 | 17517,85,zkSync 2365 | 17518,83,zkSync 2366 | 17519,92,zkSync 2367 | 17520,79,zkSync 2368 | 17521,105,zkSync 2369 | 17522,99,zkSync 2370 | 17523,98,zkSync 2371 | 17524,94,zkSync 2372 | 17525,88,zkSync 2373 | 17526,82,zkSync 2374 | 17527,80,zkSync 2375 | 17528,78,zkSync 2376 | 17529,95,zkSync 2377 | 17530,91,zkSync 2378 | 17531,83,zkSync 2379 | 17532,88,zkSync 2380 | 17533,78,zkSync 2381 | 17534,88,zkSync 2382 | 17535,83,zkSync 2383 | 17536,84,zkSync 2384 | 17537,123,zkSync 2385 | 17538,95,zkSync 2386 | 17539,87,zkSync 2387 | 17540,91,zkSync 2388 | 17541,95,zkSync 2389 | 17542,88,zkSync 2390 | 17543,82,zkSync 2391 | 17544,98,zkSync 2392 | 17545,96,zkSync 2393 | 17546,95,zkSync 2394 | 17547,85,zkSync 2395 | 17548,84,zkSync 2396 | 17549,104,zkSync 2397 | 17550,86,zkSync 2398 | 17551,90,zkSync 2399 | 17552,82,zkSync 2400 | 17553,97,zkSync 2401 | 17554,82,zkSync 2402 | 17555,100,zkSync 2403 | 17556,92,zkSync 2404 | 17557,95,zkSync 2405 | 17558,83,zkSync 2406 | 17559,84,zkSync 2407 | 17560,77,zkSync 2408 | 17561,110,zkSync 2409 | 17562,90,zkSync 2410 | 17563,89,zkSync 2411 | 17564,83,zkSync 2412 | 17565,95,zkSync 2413 | 17566,88,zkSync 2414 | 17567,88,zkSync 2415 | 17568,90,zkSync 2416 | 17569,104,zkSync 2417 | 17570,79,zkSync 2418 | 17571,89,zkSync 2419 | 17572,80,zkSync 2420 | 17573,88,zkSync 2421 | 17574,89,zkSync 2422 | 17575,91,zkSync 2423 | 17576,93,zkSync 2424 | 17577,92,zkSync 2425 | 17578,78,zkSync 2426 | 17579,82,zkSync 2427 | 17580,85,zkSync 2428 | 17581,101,zkSync 2429 | 17582,78,zkSync 2430 | 17583,86,zkSync 2431 | 17584,88,zkSync 2432 | 10303,511,dYdX 2433 | 10304,478,dYdX 2434 | 10305,465,dYdX 2435 | 10306,620,dYdX 2436 | 10307,420,dYdX 2437 | 10308,364,dYdX 2438 | 10309,499,dYdX 2439 | 10310,272,dYdX 2440 | 10311,282,dYdX 2441 | 10312,428,dYdX 2442 | 10313,344,dYdX 2443 | 10314,340,dYdX 2444 | 10315,291,dYdX 2445 | 10316,295,dYdX 2446 | 10317,312,dYdX 2447 | 10318,297,dYdX 2448 | 10319,283,dYdX 2449 | 10320,382,dYdX 2450 | 10321,487,dYdX 2451 | 10322,508,dYdX 2452 | 10323,541,dYdX 2453 | 10324,453,dYdX 2454 | 10325,496,dYdX 2455 | 10326,481,dYdX 2456 | 10327,447,dYdX 2457 | 10328,406,dYdX 2458 | 10329,455,dYdX 2459 | 10330,386,dYdX 2460 | 10331,382,dYdX 2461 | 10332,415,dYdX 2462 | 10333,439,dYdX 2463 | 10334,457,dYdX 2464 | 10335,521,dYdX 2465 | 10336,486,dYdX 2466 | 10337,512,dYdX 2467 | 10338,437,dYdX 2468 | 10339,560,dYdX 2469 | 10340,383,dYdX 2470 | 10341,397,dYdX 2471 | 10342,442,dYdX 2472 | 10343,452,dYdX 2473 | 10344,472,dYdX 2474 | 10345,455,dYdX 2475 | 10346,478,dYdX 2476 | 10347,503,dYdX 2477 | 10348,494,dYdX 2478 | 10349,610,dYdX 2479 | 10350,478,dYdX 2480 | 10351,417,dYdX 2481 | 10352,389,dYdX 2482 | 10353,476,dYdX 2483 | 10354,484,dYdX 2484 | 10355,504,dYdX 2485 | 10356,513,dYdX 2486 | 10357,473,dYdX 2487 | 10358,521,dYdX 2488 | 10359,438,dYdX 2489 | 10360,488,dYdX 2490 | 10361,495,dYdX 2491 | 10362,493,dYdX 2492 | 10363,492,dYdX 2493 | 10364,547,dYdX 2494 | 10365,442,dYdX 2495 | 10366,457,dYdX 2496 | 10367,475,dYdX 2497 | 10368,579,dYdX 2498 | 10369,474,dYdX 2499 | 10370,539,dYdX 2500 | 10371,474,dYdX 2501 | 10372,441,dYdX 2502 | 10373,398,dYdX 2503 | 10374,504,dYdX 2504 | 10375,427,dYdX 2505 | 10376,362,dYdX 2506 | 10377,423,dYdX 2507 | 10378,514,dYdX 2508 | 10379,434,dYdX 2509 | 10380,443,dYdX 2510 | 10381,446,dYdX 2511 | 10382,437,dYdX 2512 | 10383,479,dYdX 2513 | 10384,523,dYdX 2514 | 10385,544,dYdX 2515 | 10386,404,dYdX 2516 | 10387,445,dYdX 2517 | 10388,503,dYdX 2518 | 10389,552,dYdX 2519 | 10390,504,dYdX 2520 | 10391,552,dYdX 2521 | 10392,426,dYdX 2522 | 10393,404,dYdX 2523 | 10394,420,dYdX 2524 | 10395,438,dYdX 2525 | 10396,432,dYdX 2526 | 10397,550,dYdX 2527 | 10398,500,dYdX 2528 | 10399,506,dYdX 2529 | 27866,1,ZKSpace 2530 | 27867,2,ZKSpace 2531 | 27868,3,ZKSpace 2532 | 27869,4,ZKSpace 2533 | 27870,3,ZKSpace 2534 | 27871,6,ZKSpace 2535 | 27872,2,ZKSpace 2536 | 27873,2,ZKSpace 2537 | 27874,3,ZKSpace 2538 | 27875,1,ZKSpace 2539 | 27876,9,ZKSpace 2540 | 27877,2,ZKSpace 2541 | 27878,3,ZKSpace 2542 | 27879,1,ZKSpace 2543 | 27880,4,ZKSpace 2544 | 27881,1,ZKSpace 2545 | 27882,7,ZKSpace 2546 | 27883,3,ZKSpace 2547 | 27884,7,ZKSpace 2548 | 27885,5,ZKSpace 2549 | 27886,2,ZKSpace 2550 | 27887,2,ZKSpace 2551 | 27888,2,ZKSpace 2552 | 27889,1,ZKSpace 2553 | 27890,1,ZKSpace 2554 | 27891,1,ZKSpace 2555 | 27892,1,ZKSpace 2556 | 27893,5,ZKSpace 2557 | 27894,2,ZKSpace 2558 | 27895,1,ZKSpace 2559 | 27896,4,ZKSpace 2560 | 27897,1,ZKSpace 2561 | 27898,1,ZKSpace 2562 | 27899,3,ZKSpace 2563 | 27900,2,ZKSpace 2564 | 27901,1,ZKSpace 2565 | 27902,1,ZKSpace 2566 | 27903,1,ZKSpace 2567 | 27904,1,ZKSpace 2568 | 27905,1,ZKSpace 2569 | 27906,3,ZKSpace 2570 | 27907,2,ZKSpace 2571 | 27908,3,ZKSpace 2572 | 27909,1,ZKSpace 2573 | 27910,2,ZKSpace 2574 | 27911,2,ZKSpace 2575 | 27912,1,ZKSpace 2576 | 27913,1,ZKSpace 2577 | 27914,4,ZKSpace 2578 | 27915,8,ZKSpace 2579 | 27916,69,ZKSpace 2580 | 27917,3,ZKSpace 2581 | 27918,10,ZKSpace 2582 | 27919,13,ZKSpace 2583 | 27920,3,ZKSpace 2584 | 27921,3,ZKSpace 2585 | 27922,4,ZKSpace 2586 | 27923,4,ZKSpace 2587 | 27924,1,ZKSpace 2588 | 27925,8,ZKSpace 2589 | 27926,15,ZKSpace 2590 | 27927,3,ZKSpace 2591 | 27928,9,ZKSpace 2592 | 27929,3,ZKSpace 2593 | 27930,7,ZKSpace 2594 | 27931,3,ZKSpace 2595 | 27932,2,ZKSpace 2596 | 27933,1,ZKSpace 2597 | 27934,2,ZKSpace 2598 | 27935,3,ZKSpace 2599 | 27936,2,ZKSpace 2600 | 27937,2,ZKSpace 2601 | 27938,3,ZKSpace 2602 | 27939,2,ZKSpace 2603 | 27940,4,ZKSpace 2604 | 27941,1,ZKSpace 2605 | 27942,1,ZKSpace 2606 | 27943,4,ZKSpace 2607 | 27944,3,ZKSpace 2608 | 27945,3,ZKSpace 2609 | 27946,1,ZKSpace 2610 | 27947,2,ZKSpace 2611 | 27948,3,ZKSpace 2612 | 27949,27,ZKSpace 2613 | 27950,11,ZKSpace 2614 | 27951,12,ZKSpace 2615 | 27952,8,ZKSpace 2616 | 27953,11,ZKSpace 2617 | 27954,17,ZKSpace 2618 | 27955,7,ZKSpace 2619 | 27956,9,ZKSpace 2620 | 27957,20,ZKSpace 2621 | 27958,10,ZKSpace 2622 | 27959,3,ZKSpace 2623 | 27960,8,ZKSpace 2624 | 27961,30,ZKSpace 2625 | 27962,22,ZKSpace 2626 | 27963,11,ZKSpace 2627 | 27964,3,ZKSpace 2628 | 27965,1,ZKSpace 2629 | 27967,35,ZKSpace 2630 | 27968,4,ZKSpace 2631 | 27969,1,ZKSpace 2632 | 27970,11,ZKSpace 2633 | 27971,20,ZKSpace 2634 | 27972,19,ZKSpace 2635 | 27973,13,ZKSpace 2636 | 27974,10,ZKSpace 2637 | 27975,8,ZKSpace 2638 | 27976,3,ZKSpace 2639 | 27977,1,ZKSpace 2640 | 27978,32,ZKSpace 2641 | 27979,2,ZKSpace 2642 | 27980,11,ZKSpace 2643 | 27981,16,ZKSpace 2644 | 27982,14,ZKSpace 2645 | 27983,9,ZKSpace 2646 | 27984,4,ZKSpace 2647 | 27985,13,ZKSpace 2648 | 27986,14,ZKSpace 2649 | 27987,5,ZKSpace 2650 | 27988,1,ZKSpace 2651 | 27989,3,ZKSpace 2652 | 27990,9,ZKSpace 2653 | 27991,39,ZKSpace 2654 | 27992,33,ZKSpace 2655 | 27993,13,ZKSpace 2656 | 27994,25,ZKSpace 2657 | 27995,1,ZKSpace 2658 | 27996,14,ZKSpace 2659 | 27997,11,ZKSpace 2660 | 27998,2,ZKSpace 2661 | 27999,1,ZKSpace 2662 | 28000,21,ZKSpace 2663 | 28001,6,ZKSpace 2664 | 28002,3,ZKSpace 2665 | 28003,22,ZKSpace 2666 | 28004,3,ZKSpace 2667 | 28005,2,ZKSpace 2668 | 28006,3,ZKSpace 2669 | 28007,2,ZKSpace 2670 | 28008,20,ZKSpace 2671 | 28009,9,ZKSpace 2672 | 28010,10,ZKSpace 2673 | 28011,7,ZKSpace 2674 | 28012,23,ZKSpace 2675 | 28013,1,ZKSpace 2676 | 28014,4,ZKSpace 2677 | 28015,2,ZKSpace 2678 | 28016,15,ZKSpace 2679 | 28017,2,ZKSpace 2680 | 28018,20,ZKSpace 2681 | 28019,14,ZKSpace 2682 | 28020,1,ZKSpace 2683 | 28021,2,ZKSpace 2684 | 28022,1,ZKSpace 2685 | 28023,14,ZKSpace 2686 | 28024,14,ZKSpace 2687 | 28025,17,ZKSpace 2688 | 28026,6,ZKSpace 2689 | 28027,2,ZKSpace 2690 | 28028,1,ZKSpace 2691 | 28029,24,ZKSpace 2692 | 28030,16,ZKSpace 2693 | 28031,33,ZKSpace 2694 | 28032,9,ZKSpace 2695 | 28033,9,ZKSpace 2696 | 28034,4,ZKSpace 2697 | 28035,13,ZKSpace 2698 | 28036,17,ZKSpace 2699 | 28037,19,ZKSpace 2700 | 28038,9,ZKSpace 2701 | 28039,9,ZKSpace 2702 | 28040,5,ZKSpace 2703 | 28041,2,ZKSpace 2704 | 28042,5,ZKSpace 2705 | 28043,23,ZKSpace 2706 | 28044,6,ZKSpace 2707 | 28045,9,ZKSpace 2708 | 28046,8,ZKSpace 2709 | 28047,18,ZKSpace 2710 | 28048,18,ZKSpace 2711 | 28049,4,ZKSpace 2712 | 28050,15,ZKSpace 2713 | 28051,2,ZKSpace 2714 | 28052,12,ZKSpace 2715 | 28053,53,ZKSpace 2716 | 28054,9,ZKSpace 2717 | 28055,21,ZKSpace 2718 | 28056,25,ZKSpace 2719 | 28057,22,ZKSpace 2720 | 28058,6,ZKSpace 2721 | 28059,9,ZKSpace 2722 | 28060,20,ZKSpace 2723 | 28061,2,ZKSpace 2724 | 28062,7,ZKSpace 2725 | 28063,1,ZKSpace 2726 | 28064,2,ZKSpace 2727 | 28065,1,ZKSpace 2728 | 28066,19,ZKSpace 2729 | 28067,13,ZKSpace 2730 | 28068,29,ZKSpace 2731 | 28069,12,ZKSpace 2732 | 28070,1,ZKSpace 2733 | 28071,3,ZKSpace 2734 | 28072,9,ZKSpace 2735 | 28073,19,ZKSpace 2736 | 28074,13,ZKSpace 2737 | 28075,4,ZKSpace 2738 | 28076,1,ZKSpace 2739 | 28077,28,ZKSpace 2740 | 28078,9,ZKSpace 2741 | 28079,13,ZKSpace 2742 | 28080,15,ZKSpace 2743 | 28081,28,ZKSpace 2744 | 28082,22,ZKSpace 2745 | 28083,10,ZKSpace 2746 | 28084,6,ZKSpace 2747 | 28085,16,ZKSpace 2748 | 28086,3,ZKSpace 2749 | 28087,5,ZKSpace 2750 | 28088,4,ZKSpace 2751 | 28089,11,ZKSpace 2752 | 28090,9,ZKSpace 2753 | 28091,5,ZKSpace 2754 | 28092,5,ZKSpace 2755 | 28093,2,ZKSpace 2756 | 28094,18,ZKSpace 2757 | 28095,16,ZKSpace 2758 | 28096,17,ZKSpace 2759 | 28097,16,ZKSpace 2760 | 28098,7,ZKSpace 2761 | 28099,34,ZKSpace 2762 | 28100,28,ZKSpace 2763 | 28101,5,ZKSpace 2764 | 28102,25,ZKSpace 2765 | 28103,2,ZKSpace 2766 | 28104,2,ZKSpace 2767 | 29506,350,Loopring 2768 | 29507,313,Loopring 2769 | 29508,171,Loopring 2770 | 29509,217,Loopring 2771 | 29510,287,Loopring 2772 | 29511,293,Loopring 2773 | 29512,206,Loopring 2774 | 29513,159,Loopring 2775 | 29514,130,Loopring 2776 | 29515,190,Loopring 2777 | 29516,121,Loopring 2778 | 29517,190,Loopring 2779 | 29518,72,Loopring 2780 | 29519,367,Loopring 2781 | 29520,143,Loopring 2782 | 29521,68,Loopring 2783 | 29522,190,Loopring 2784 | 29523,200,Loopring 2785 | 29524,384,Loopring 2786 | 29525,384,Loopring 2787 | 29526,384,Loopring 2788 | 29527,349,Loopring 2789 | 29528,112,Loopring 2790 | 29529,384,Loopring 2791 | 29530,311,Loopring 2792 | 29531,205,Loopring 2793 | 29532,384,Loopring 2794 | 29533,384,Loopring 2795 | 29534,384,Loopring 2796 | 29535,383,Loopring 2797 | 29536,300,Loopring 2798 | 29537,384,Loopring 2799 | 29538,384,Loopring 2800 | 29539,374,Loopring 2801 | 29540,383,Loopring 2802 | 29541,270,Loopring 2803 | 29542,368,Loopring 2804 | 29543,384,Loopring 2805 | 29544,384,Loopring 2806 | 29545,338,Loopring 2807 | 29546,354,Loopring 2808 | 29547,384,Loopring 2809 | 29548,349,Loopring 2810 | 29549,308,Loopring 2811 | 29550,384,Loopring 2812 | 29551,319,Loopring 2813 | 29552,245,Loopring 2814 | 29553,384,Loopring 2815 | 29554,384,Loopring 2816 | 29555,342,Loopring 2817 | 29556,384,Loopring 2818 | 29557,117,Loopring 2819 | 29558,183,Loopring 2820 | 29559,281,Loopring 2821 | 29560,268,Loopring 2822 | 29561,82,Loopring 2823 | 29562,175,Loopring 2824 | 29563,368,Loopring 2825 | 29564,384,Loopring 2826 | 29565,250,Loopring 2827 | 29566,262,Loopring 2828 | 29567,154,Loopring 2829 | 29568,189,Loopring 2830 | 29569,126,Loopring 2831 | 29570,288,Loopring 2832 | 29571,73,Loopring 2833 | 29572,207,Loopring 2834 | 29573,104,Loopring 2835 | 29574,141,Loopring 2836 | 29575,376,Loopring 2837 | 29576,180,Loopring 2838 | 29577,141,Loopring 2839 | 29578,117,Loopring 2840 | 29579,140,Loopring 2841 | 29580,222,Loopring 2842 | 29581,268,Loopring 2843 | 29582,296,Loopring 2844 | 29583,285,Loopring 2845 | 29584,257,Loopring 2846 | 29585,269,Loopring 2847 | 29586,342,Loopring 2848 | 29587,220,Loopring 2849 | 29588,171,Loopring 2850 | 29589,384,Loopring 2851 | 29590,384,Loopring 2852 | 29591,384,Loopring 2853 | 29592,384,Loopring 2854 | 29593,384,Loopring 2855 | 29594,302,Loopring 2856 | 29595,384,Loopring 2857 | 29596,384,Loopring 2858 | 29597,384,Loopring 2859 | 29598,234,Loopring 2860 | 29599,384,Loopring 2861 | 29600,151,Loopring 2862 | 29601,301,Loopring 2863 | 29602,351,Loopring 2864 | 29603,296,Loopring 2865 | 29604,273,Loopring 2866 | 29605,153,Loopring 2867 | 29607,287,Loopring 2868 | 29608,192,Loopring 2869 | 29609,171,Loopring 2870 | 29610,229,Loopring 2871 | 29611,363,Loopring 2872 | 29612,228,Loopring 2873 | 29613,236,Loopring 2874 | 29614,159,Loopring 2875 | 29615,145,Loopring 2876 | 29616,214,Loopring 2877 | 29617,124,Loopring 2878 | 29618,275,Loopring 2879 | 29619,329,Loopring 2880 | 29620,384,Loopring 2881 | 29621,384,Loopring 2882 | 29622,64,Loopring 2883 | 29623,122,Loopring 2884 | 29624,99,Loopring 2885 | 29625,62,Loopring 2886 | 29626,79,Loopring 2887 | 29627,154,Loopring 2888 | 29628,339,Loopring 2889 | 29629,361,Loopring 2890 | 29630,219,Loopring 2891 | 29631,285,Loopring 2892 | 29632,225,Loopring 2893 | 29633,303,Loopring 2894 | 29634,327,Loopring 2895 | 29635,384,Loopring 2896 | 29636,191,Loopring 2897 | 29637,294,Loopring 2898 | 29638,239,Loopring 2899 | 29639,137,Loopring 2900 | 29640,384,Loopring 2901 | 29641,384,Loopring 2902 | 29642,384,Loopring 2903 | 29643,384,Loopring 2904 | 29644,384,Loopring 2905 | 29645,294,Loopring 2906 | 29646,338,Loopring 2907 | 29647,384,Loopring 2908 | 29648,384,Loopring 2909 | 29649,339,Loopring 2910 | 29650,362,Loopring 2911 | 29651,370,Loopring 2912 | 29652,141,Loopring 2913 | 29653,369,Loopring 2914 | 29654,241,Loopring 2915 | 29655,328,Loopring 2916 | 29656,384,Loopring 2917 | 29657,186,Loopring 2918 | 29658,294,Loopring 2919 | 29659,239,Loopring 2920 | 29660,137,Loopring 2921 | 29661,351,Loopring 2922 | 29662,302,Loopring 2923 | 29663,209,Loopring 2924 | 29664,117,Loopring 2925 | 29665,190,Loopring 2926 | 29666,95,Loopring 2927 | 29667,384,Loopring 2928 | 29668,355,Loopring 2929 | 29669,384,Loopring 2930 | 29670,149,Loopring 2931 | 29671,170,Loopring 2932 | 29672,191,Loopring 2933 | 29673,141,Loopring 2934 | 29674,117,Loopring 2935 | 29675,150,Loopring 2936 | 29676,173,Loopring 2937 | 29677,174,Loopring 2938 | 29678,186,Loopring 2939 | 29679,179,Loopring 2940 | 29680,384,Loopring 2941 | 29681,384,Loopring 2942 | 29682,384,Loopring 2943 | 29683,210,Loopring 2944 | 29684,209,Loopring 2945 | 29685,177,Loopring 2946 | 29686,167,Loopring 2947 | 29687,384,Loopring 2948 | 29688,277,Loopring 2949 | 29689,247,Loopring 2950 | 29690,174,Loopring 2951 | 29691,370,Loopring 2952 | 29692,282,Loopring 2953 | 29693,107,Loopring 2954 | 29694,345,Loopring 2955 | 29695,252,Loopring 2956 | 29696,328,Loopring 2957 | 29697,384,Loopring 2958 | 29698,384,Loopring 2959 | 29699,384,Loopring 2960 | 29700,384,Loopring 2961 | 29701,384,Loopring 2962 | 29702,384,Loopring 2963 | 29703,384,Loopring 2964 | 29704,384,Loopring 2965 | 29705,384,Loopring 2966 | 29706,384,Loopring 2967 | 29707,384,Loopring 2968 | 29708,384,Loopring 2969 | 29709,384,Loopring 2970 | 29710,384,Loopring 2971 | 29711,321,Loopring 2972 | 29712,310,Loopring 2973 | 29713,384,Loopring 2974 | 29714,384,Loopring 2975 | 29715,384,Loopring 2976 | 29716,384,Loopring 2977 | 29717,328,Loopring 2978 | 29718,338,Loopring 2979 | 29719,319,Loopring 2980 | 29720,334,Loopring 2981 | 29721,351,Loopring 2982 | 29722,356,Loopring 2983 | 29723,184,Loopring 2984 | 29724,172,Loopring 2985 | 29725,187,Loopring 2986 | 29726,223,Loopring 2987 | 29727,311,Loopring 2988 | 29728,219,Loopring 2989 | 29729,384,Loopring 2990 | 29730,285,Loopring 2991 | 29731,300,Loopring 2992 | 29732,363,Loopring 2993 | 29733,221,Loopring 2994 | 29734,317,Loopring 2995 | 29735,341,Loopring 2996 | 29736,384,Loopring 2997 | 29737,240,Loopring 2998 | 29738,243,Loopring 2999 | 29739,203,Loopring 3000 | 29740,384,Loopring 3001 | 29741,167,Loopring 3002 | 29742,254,Loopring 3003 | 29743,384,Loopring 3004 | 29744,216,Loopring 3005 | 29745,215,Loopring 3006 | 29746,266,Loopring 3007 | 29747,172,Loopring 3008 | 29748,167,Loopring 3009 | 29749,219,Loopring 3010 | 29750,289,Loopring 3011 | 29751,285,Loopring 3012 | 29752,384,Loopring 3013 | 29753,363,Loopring 3014 | 29754,281,Loopring 3015 | 29755,284,Loopring 3016 | 29756,384,Loopring 3017 | 29757,384,Loopring 3018 | 29758,384,Loopring 3019 | 29759,384,Loopring 3020 | 29760,382,Loopring 3021 | 29761,143,Loopring 3022 | 29762,384,Loopring 3023 | 29763,384,Loopring 3024 | 29764,384,Loopring 3025 | 29765,384,Loopring 3026 | 29766,384,Loopring 3027 | 29767,278,Loopring 3028 | 29768,318,Loopring 3029 | 29769,361,Loopring 3030 | 29770,384,Loopring 3031 | 29771,289,Loopring 3032 | 29772,384,Loopring 3033 | 29773,362,Loopring 3034 | 29774,247,Loopring 3035 | 29775,384,Loopring 3036 | 29776,384,Loopring 3037 | 29777,270,Loopring 3038 | 29778,356,Loopring 3039 | 29779,227,Loopring 3040 | 29780,184,Loopring 3041 | 29781,312,Loopring 3042 | 29782,142,Loopring 3043 | 29783,111,Loopring 3044 | 29784,77,Loopring 3045 | 29785,209,Loopring 3046 | 29786,105,Loopring 3047 | 29787,134,Loopring 3048 | 29788,384,Loopring 3049 | 29789,104,Loopring 3050 | 29790,119,Loopring 3051 | 29791,91,Loopring 3052 | 29792,77,Loopring 3053 | 29793,46,Loopring 3054 | 29794,143,Loopring 3055 | 29795,122,Loopring 3056 | 29796,112,Loopring 3057 | 29797,112,Loopring 3058 | 29798,158,Loopring 3059 | 29799,112,Loopring 3060 | 29800,152,Loopring 3061 | 29801,384,Loopring 3062 | 29802,167,Loopring 3063 | 29803,183,Loopring 3064 | 29804,153,Loopring 3065 | 29805,175,Loopring 3066 | 29806,282,Loopring 3067 | 29807,298,Loopring 3068 | 29808,249,Loopring 3069 | 29809,239,Loopring 3070 | 29810,222,Loopring 3071 | 29811,229,Loopring 3072 | 29812,346,Loopring 3073 | 29813,158,Loopring 3074 | 29814,249,Loopring 3075 | 29815,384,Loopring 3076 | 29816,323,Loopring 3077 | 29817,246,Loopring 3078 | 29818,384,Loopring 3079 | 29819,364,Loopring 3080 | 29820,384,Loopring 3081 | 29821,356,Loopring 3082 | 29822,384,Loopring 3083 | 29823,384,Loopring 3084 | 29824,355,Loopring 3085 | 29825,51,Loopring 3086 | 29826,177,Loopring 3087 | 29827,93,Loopring 3088 | 29828,88,Loopring 3089 | 29829,230,Loopring 3090 | 29830,93,Loopring 3091 | 29831,99,Loopring 3092 | 29832,113,Loopring 3093 | 29833,290,Loopring 3094 | 29834,163,Loopring 3095 | 29835,197,Loopring 3096 | 29836,130,Loopring 3097 | 29837,245,Loopring 3098 | 29838,246,Loopring 3099 | 29839,92,Loopring 3100 | 29840,277,Loopring 3101 | 29841,384,Loopring 3102 | 29842,384,Loopring 3103 | 29843,384,Loopring 3104 | 29844,384,Loopring 3105 | 29845,212,Loopring 3106 | 29846,51,Loopring 3107 | 29847,177,Loopring 3108 | 29848,93,Loopring 3109 | 29849,106,Loopring 3110 | 29850,359,Loopring 3111 | 29851,195,Loopring 3112 | 29852,248,Loopring 3113 | 29853,303,Loopring 3114 | 29854,336,Loopring 3115 | 29855,270,Loopring 3116 | 29856,304,Loopring 3117 | 29857,271,Loopring 3118 | 29858,327,Loopring 3119 | 29859,234,Loopring 3120 | 29860,346,Loopring 3121 | 29861,384,Loopring 3122 | 29862,384,Loopring 3123 | 29863,384,Loopring 3124 | 29864,384,Loopring 3125 | 29865,384,Loopring 3126 | 29866,384,Loopring 3127 | 29867,380,Loopring 3128 | 29868,98,Loopring 3129 | 29869,384,Loopring 3130 | 29870,325,Loopring 3131 | 29871,266,Loopring 3132 | 29872,199,Loopring 3133 | 29873,384,Loopring 3134 | 29874,260,Loopring 3135 | 29875,336,Loopring 3136 | 29876,384,Loopring 3137 | 29877,172,Loopring -------------------------------------------------------------------------------- /Data_Tables/ZK Circuit Data - Method IDs.csv: -------------------------------------------------------------------------------- 1 | Function Call,Method ID,Contract,Verifier,Type 2 | "executeBlocks(((uint32,uint64,bytes32,uint256,bytes32,bytes32),bytes[])[])",0xb0705b42,zkSync,No,Tx 3 | "verifyAggregatedBlockProof(uint256[],uint256[],uint8[],uint256[],uint256[16]",0xa830bd60,zkSync,Yes,Trace 4 | getKeyById(uint256),0x5a880de3,Aztec,"No, but helps with turboPLONK",Trace 5 | "verify(bytes,uint256)",0xac318c5d,Aztec,Yes,Trace 6 | "verifyMultiblockProof(uint256[],uint256[],uint32[],uint256[],uint256[])",0x7756aa8a,zkSpace,Yes,Trace 7 | "proveG16(bytes32,uint256[2],uint256[2][2],uint256[2],uint256[])",0x83e93cd6,,Yes,Trace 8 | "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[4])",0x5fe8c13b,Groth16 ZoKrates,Yes,Trace 9 | ,0xb5596a88,Aztec,Yes,Trace 10 | ,0x95b5d617,Depositor_zkSync,Yes,Trace 11 | "withdraw(uint256[2],uint256[2][2],uint256[2],uint256[4])",0x551c4fd2,Mixer,No,Trace 12 | "verifyProofAndRegister(uint256[],uint256[],uint256[],uint256[],uint256)",0x9b3b76cc,Starkware,No,Tx 13 | ?,0x4be6b36a,Groth16(LoopRing),Yes,Tx 14 | ?,0x22a6fef1,Mixer,Yes,Tx 15 | ,0x01558ed9,CpuConstraintPoly,No,Trace 16 | "verifyProofExternal(uint256[],uint256[],uint256[])",0x1cb7dd79,Starkware Cpu Friless Verifier,No,Trace 17 | verifyProofs,0x104e4cda,Loopring Block Verifier,Yes,Trace 18 | "Null, need to deal with this ambigouity",0x00000000,JoinSplit (Aztec),Yes,Trace 19 | ?,0xcfb7b716,Zeropool (Groth16),Yes,Trace 20 | Is Block Size Supported,0xe54ee6b1,zkSync,No,Trace 21 | "verifyBlockProof(uint256[],bytes32,uint32)",0xdc46ea94,zkSync,Yes,Trace 22 | "verifyProof(bytes,uint256[7])",0x598da1d1,"Groth16, Circom",Yes,Trace 23 | "verifyProof(bytes,uint256[6])",0x695ef6f9,"Groth16, Circom",Yes,Trace 24 | "verify(bytes32,bytes32,bytes32,bytes32,bytes32,bytes32)",0x182f875c,WanChain,Yes,Trace 25 | "verifyProofs(uint8,bool,uint16,uint8,uint[],uint[])",0xdc77295b,Loopring Block Verifier,Yes,Trace 26 | "verifyProof(bytes,uint256[12])",0x72774f72,WithdrawVerifier,Yes,Trace 27 | "verifyProof(bytes,uint256[4])",0x6bf062b2,TreeUpdateVerifier,Yes,Trace 28 | "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[1])",0x43753b4d,Hermez,Yes,Trace 29 | "verifyProof(bytes,uint256[1])",0x8d8f8a5c,BatchTreeUpdateVerifier,Yes,Trace 30 | "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[3])",0x11479fea,MembershipVerifier,Yes,Trace 31 | "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[2])",0xf5c9d69e,Verifier,Yes,Trace 32 | "verifyProof(bytes,uint256[])",0x1e8e1e13,PLONK Private Airdrop,Yes,Trace 33 | "verifyFRI(uint256[],uint256[],uint256,uint256,uint256)",0xe85a6a28,Starkware,Yes,Tx -------------------------------------------------------------------------------- /Data_Tables/info.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Data_Tables/verifying_methods.csv: -------------------------------------------------------------------------------- 1 | Method,Identity,Tx or Trace 2 | 0x695ef6f9,Groth16,Trace 3 | 0xac318c5d,Plonk/Turbo_Plonk,Trace 4 | 0x9b3b76cc,StarkWare,Tx 5 | 0x4be6b36a,Groth16 (Loop Ring),Tx 6 | 0xa830bd60,Plonk (ZK Sync),Trace 7 | 0x7756aa8a,Plonk (ZK Swap),Trace 8 | 0x83b1f6a0,Hermez,Trace 9 | 0x1e8e1e13,Plonk (circom) ,Trace -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ZK-Circuit-Performance-and-Security-Data 2 | ### Goal: To collect data on the performance and security characteristics of ZK circuits being verified on the Ethereum Blockchain and expose this data to users in a usable way. 3 | 4 | ## The Project: 5 | This project is backed by a grant from the Ethereum Foundation Privacy Scaling Exploration. The full details can be found here https://medium.com/@outsideranalytics/fantastic-zero-knowledge-proofs-ef4bb746f838. 6 | 7 | ## Files: 8 | 1. ZK_Learning_Resources.md: A curated list of zk learning resources 9 | 2. queries: SQL queries performed on google big query crypto_ethereum public database 10 | 3. Data_Tables: Results of the queries and manual data entry completed 11 | 4. Google Docs version of data tables https://docs.google.com/spreadsheets/d/1Boo9zmsRDc1nDLUQIp8JyInPddF5F2aXM_1zkKGAG1g/edit#gid=1946907765 12 | 13 | ## Some Research Notes: 14 | - Research Notes 15 | - Aztec 16 | - Primitives (including hashes): https://github.com/AztecProtocol/aztec-connect/blob/63e060f3235c57584aaf75375c835d92cdfa1d11/specs/aztec-connect/src/primitives.md 17 | - Trusted Setup: https://medium.com/aztec-protocol/aztec-crs-the-biggest-mpc-setup-in-history-has-successfully-finished-74c6909cd0c4 18 | - zkSync 19 | - Primitives: https://github.com/matter-labs/zksync/blob/master/docs/protocol.md#rescue-hash 20 | - Trusted Setup: https://docs.zksync.io/userdocs/security/#primitives 21 | - Element Finance 22 | - Primitives: https://github.com/element-fi/zkp-merkle-airdrop-contracts 23 | - Trusted Setup: https://blog.hermez.io/hermez-cryptographic-setup/ 24 | - Starkex 25 | - Primitives: https://docs.starkware.co/starkex/fact-registry.html 26 | - On Chain Data: https://docs.starknet.io/docs/Data%20Availabilty/on-chain-data 27 | - Contracts: https://docs.starkware.co/starkex/deployments-addresses.html 28 | - Loopring 29 | - primitives: 30 | - https://github.com/Loopring/protocols/blob/5644b2386d0ce2310ce4d8fd1f060b1289a08ebd/packages/loopring_v3/circuit/statements.md 31 | - https://github.com/Loopring/protocols/blob/81a403ba478f0476f4de2ac7cbfeac2297ad01ab/packages/loopring_v3/BACKEND.md 32 | - Trusted Setup: https://github.com/Loopring/trusted_setup/blob/2b30037a3a98e51f7dc8cccd2fa363a7e2094fe7/README.md 33 | - https://github.com/Loopring/trusted_setup/tree/master/attestations (participants) 34 | - https://loopring.org/#/post/loopring-bi-weekly-update-12-01-2019 35 | - Technical Details: https://medium.loopring.io/zksnark-prover-optimizations-3e9a3e5578c0 36 | - Hermez 37 | - https://polygon.technology/solutions/polygon-hermez/ 38 | - Primitives https://docs.hermez.io/Hermez_1.0/about/security/#multi-party-computation-for-the-trusted-setup 39 | - Trusted Setup 40 | - Withdraw circuit: https://github.com/hermeznetwork/phase2ceremony_4 41 | - Perpetual Powers of Tau 42 | - https://github.com/weijiekoh/perpetualpowersoftau 43 | - 71 participants for the phase 1 :) 44 | - Tornado Cash 45 | - Trusted Setup: https://tornado-cash.medium.com/the-biggest-trusted-setup-ceremony-in-the-world-3c6ab9c8fffa 46 | -------------------------------------------------------------------------------- /ZK_Learning_Resources.md: -------------------------------------------------------------------------------- 1 | # ZK Learning Resources 2 | ### Curated by Outsider Analytics 3 | 4 | ###### tags: `Zero Knowledge` 5 | 6 | > Disclaimer: This work is being funded by the Ethereum Foundation PSE team. (see additional details at end) 7 | 8 | 9 | ## :rocket: Where do I start? 10 | 11 | ### :pray: Fantastic Resource Compilations (I owe a great debt to): 12 | * Technical compilation that stopped being updated in 2019: https://zkp.science/ 13 | * contributer page: https://github.com/ZKProofs/ZKProofs.github.io/graphs/contributors 14 | * Full cryptography course from Tari Labs University I only scratched the surface of: https://tlu.tarilabs.com/cryptography 15 | * Justin Martin's accessible "where do i start" resource list with good context: https://hackmd.io/24W3m1kERC-8BrI0giBRNQ?view 16 | * Tolks' Substack ZK Landscape: https://page1.substack.com/p/the-zero-knowledge-landscape?s=r 17 | * Matter Labs' "Awesome" list: https://github.com/matter-labs/awesome-zero-knowledge-proofs#readme 18 | * AtHeartEngineer's zkTech reddit with little overlap from other sources: https://www.reddit.com/r/zkTech/ 19 | * Domenico's notion page, don't miss the ZK Research section! https://humorous-kick-fcd.notion.site/ZK-cryptography-e3e36f6130d5470cbae3be7003763476 20 | 21 | 22 | ### :100: ZK Overviews: 23 | * https://www.youtube.com/watch?v=BT88s7_VtC8&t=4s 24 | * Intro to ZKs from Elena Nadolinski from Ironfish 25 | * https://docs.circom.io/background/background 26 | * An intro to ZK Snark implementation from Circom (who powers protocols like Tornado Cash) 27 | * Circom is a language which allows for the construction of ZK circuits for use in Ethereum (the witness compiles to Solidity) 28 | * While this is a bit technical, it's nice to have a more practical overview than Suduko + Where's Waldo 29 | * Zero Knowledge podcast Episode 21 (zkpe 21): intro to ZK Proofs 30 | * zkpe 34: Intro to snarks with howard Wu 31 | * https://z.cash/technology/zksnarks/ 32 | * Zcash started the applied ZK boom, and this is their ZK SNARK overview 33 | * https://www.notboring.co/p/zero-knowledge?s=r 34 | * Non-technical explanation with lots of background 35 | 36 | ### :1234: Math Background: 37 | * This will immensely help your understanding of the papers and implementations, but you can always "black box" the math side and just focus on the practical. 38 | * Lagrange interpolation: "[Secret Sharing and Erasure Coding: A Guide for the Aspiring Dropbox Decentralizer](https://blog.ethereum.org/2014/08/16/secret-sharing-erasure-coding-guide-aspiring-dropbox-decentralizer/)" 39 | * Basic math operation I found necessary to remember from high school :) 40 | * http://theory.cs.princeton.edu/complexity/book.pdf 41 | * Complexity theory is one of the fundamental ideas behind ZK tech and introduces a large amount of the notation. 42 | * Appendix A.1-3, Chapters 1, 2, 4.1-4.2, 6.1-6.4, 6.8, 7.1-7.4 43 | * If like me this math is too complex a starting place, you may want to start on the beginning of abstract algebra. I used "A first Course in Abstract Algebra" by Fraleigh ([pdf](https://edisciplinas.usp.br/pluginfile.php/5409004/mod_resource/content/2/John%20B.%20Fraleigh%2C%20Victor%20J.%20Katz%20-%20A%20first%20course%20in%20abstract%20algebra-Addison-Wesley%20%282003%29%20%281%29.pdf)) 44 | * A couple of good companion videos: 45 | * Big O Notation: https://www.youtube.com/watch?v=0oDAlMwTrLo 46 | * P vs NP : https://www.youtube.com/watch?v=YX40hbAHx3s & https://www.youtube.com/watch?v=moPtwq_cVH8 47 | 48 | ### :key: Cryptographic Background: 49 | * https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/ 50 | * ZK tech has its foundation in elliptic curve cryptography 51 | * This blog post does a good job of explaining the why and how elliptic curve cryptography came out of RSA and what it is. 52 | * Blockchain is not discussed in this post (don't be surprised!) 53 | * https://vitalik.ca/general/2017/01/14/exploring_ecp.html 54 | * Read this right after the above blog post to take a step for elliptic curve points in the blockchain direction 55 | * https://www.msri.org/summer_schools/931/schedules 56 | * This gets dense fast, but if you want to understand from a base level the theory behind IPs, PCPs, IOPs it's really good! 57 | * I highly recommend not starting this until you have a good understanding of the math prereqs specified in the course. (finite fields, abstract algebra, computational complexity) 58 | * This course is pretty far from practical implementation! But you will greatly increase your capacity to understand theory and important papers afterward :) 59 | * zkpe 200: Alessandro Chiesa gives a great pitch for why they built this class 60 | * Vitalik's "An approximate introduction to how zk-SNARKs are possible" 61 | * Does a great job linking the Material from MSRI summer school to real use with Fiat-Shamir heuristic. Also see in snarks theory https://vitalik.ca/general/2021/01/26/snarks.html 62 | * Justin Thaler (Georgetown)'s course and book 63 | * Huge amount of knowledge from a technical perspective 64 | * https://people.cs.georgetown.edu/jthaler/COSC544.html 65 | 66 | ### :deciduous_tree: General ZK-SNARKs Theory: 67 | * https://vitalik.ca/general/2021/01/26/snarks.html 68 | * Big picture paper I recommend reading at a few different points throughout your learning. It really ties things together well when you get into the weeds a bit too much on a specific topic 69 | * https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649 70 | * Not Vitalik's most understandable blog post (IMHO), but the best I have seen on some of the machinery in ZK-SNARKs 71 | * This is a rare ZK paper you can actually do the math with while following along 72 | * https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6 73 | * Confusing for me (TBH), but gets at the root of trusted setups and toxic waste 74 | 75 | ### :construction_worker: SNARK Constructions: 76 | * Pinocchio: Nearly Practical Verifiable Computation (2013) 77 | * https://eprint.iacr.org/2013/279.pdf 78 | * Groth16 : "On the Size of Pairing-based Non-interactive Arguments" 79 | * https://eprint.iacr.org/2016/260.pdf 80 | * Bullet Proofs 81 | * https://eprint.iacr.org/2017/1066.pdf 82 | * zkpe 40: Benedikt Bunz 83 | * Sonic 84 | * https://eprint.iacr.org/2019/099 85 | * Plonk 86 | * https://eprint.iacr.org/2019/953 87 | * zkpe 112: "Dive into plonk" 88 | * ["Understanding Plonk" by Vitalik](https://vitalik.ca/general/2019/09/22/plonk.html) 89 | * Marlin 90 | * https://eprint.iacr.org/2019/1047.pdf 91 | * Super Sonic 92 | * https://eprint.iacr.org/2019/1229 93 | * zkpe 105: Alan Szepienies on Hash Functions and Supersonic SNARKs 94 | * Fractal 95 | * https://eprint.iacr.org/2019/1076 96 | * zkpe 114: Exploring the Fractal transparent SNARK construction with Dev Ojha 97 | * Halo 98 | * https://eprint.iacr.org/2019/1021 99 | * https://electriccoin.co/blog/halo-recursive-proof-composition-without-a-trusted-setup/ 100 | * zkpe 123: Halo with Sean Bowe and Daira Hopwood from ECC 101 | * Halo 2 102 | * https://electriccoin.co/blog/explaining-halo-2/ 103 | * 104 | * ZEXE 105 | * https://eprint.iacr.org/2018/962.pdf 106 | * zkpe 85: Zexe: Decentralized Private Computation with Pratyush Mishra 107 | 108 | 109 | 110 | ### :stars: STARKs: 111 | * Zero-Knowledge Scalable Transparent ARguments of Knowledge 112 | * Vitalik 113 | * https://vitalik.ca/general/2017/11/09/starks_part_1.html 114 | * https://vitalik.ca/general/2017/11/22/starks_part_2.html 115 | * https://vitalik.ca/general/2018/07/21/starks_part_3.html 116 | * [Scalable, transparent, and post-quantum secure computational integrity](https://eprint.iacr.org/2018/046) 117 | * Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, and Michael Riabzev 118 | * Eli Ben-Sasson presenting STARKS https://www.youtube.com/watch?v=HJ9K_o-RRSY 119 | * zkpe 59: STARKs and StarkWare with Eli & Alessandro 120 | * zkpe 96: Eli Ben-Sassson on the latest from StarkWare 121 | 122 | 123 | 124 | 125 | ### :world_map: Real World Uses 126 | * Zcash 127 | * zkpe 50: Zooko talks Zcash 128 | * Tornado Cash 129 | * zkpe 111: Mixers with Tornado.cash 130 | * https://github.com/tornadocash/docs/tree/en/circuits 131 | * Nice overview for the background of ZK circuits (GROTH16 from Circom) 132 | * https://github.com/tornadocash/docs/blob/en/circuits/core-deposit-circuit.md 133 | * zkpe 137: Trusted Setup Bonus: Tornado Cash 134 | * ZKSync (Matter Labs) 135 | * zkpe 72: zkSNARKs for Scale w/ Matter labs 136 | * zkpe 116: zkSync and Redshift with Alex Glukowski 137 | * zkpe 175: zkEVM & zkPorter with Matter Labs 138 | * Aztec 139 | * zkpe 75: Exploring Aztec with Zac Williamson 140 | * zkpe 176: ZK-zk-rollup and zk.money with Zac and Joe 141 | * Trail of Bits 142 | * Interesting Audits and security of real world ZKPs 143 | * zkpe 122: Audits & Security with Ben Perez 144 | * Dark Forest 145 | * zkpe 141: ZK & Games: Dark Forest with Brian Gu 146 | * zkpe 225: Dark Forest and 0xPARC with Gubsheep 147 | * Polygon Hermez 148 | * zkpe 194: zkEVM with Jordi & David 149 | * zkpe 219: Scaling Ethereum with Mihailo Bjelic 150 | * Polygon Miden 151 | * zkpe 210: The Road to STARKs and Miden with Bobbin Threadbare 152 | * Polygon Zero 153 | * zkpe 220: The Road to Plonky2 with Brendan and Daniel 154 | * ZoKrates 155 | * Stefan Demi's [Efficient ECC in zkSNARKs using ZoKrates](https://medium.com/zokrates/efficient-ecc-in-zksnarks-using-zokrates-bd9ae37b8186) 156 | * Good explanation for why BN128 curve is used 157 | 158 | 159 | 160 | ### :shrug: Misc Knowledge 161 | * Pedersen Commitments 162 | * https://link.springer.com/content/pdf/10.1007%2F3-540-46766-1_9.pdf#page=3 163 | * https://crypto.stackexchange.com/questions/64437/what-is-a-pedersen-commitment 164 | * https://youtu.be/qWRUPzm3qPY (first 7 min) 165 | * Kate (Ka-tay) Commitments https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html 166 | * Merkle tires and Patricia Tries 167 | * zkpe 57: "Merkilze this" 168 | * WASM: WebAssembly 169 | * Need to understand what this is and why it is used for witnesses. Any help appreciated! 170 | * Recursion 171 | * Scalable Zero Knowledge via Cycles of Elliptic Curves from 2014 https://eprint.iacr.org/2014/595 172 | * zkpe 54: Digging into recursive zkSNARKs with Coda 173 | * zkpe 113: Latest recursive SNARKitecture with Izaak Meckler from 0(1) Labs 174 | * Languages/Libraries 175 | * zkpe 172: ZK languages with Alex Ozdemir 176 | * Please listen to this first! 177 | * zkpe 145: Circom & Hermez with Jordi Baylina 178 | * zkpe 41: Zokrates with Jacob Eberhardt 179 | * zkpe 126: Crypto libraries: Zcash's Zebra with Henry Valence 180 | * zkpe 169: Arkworks SNARK libraries with Pratyush Mishra 181 | * MPC 182 | * zkpe 60: Cryptography 101: Multi-Party Computations 183 | * zkpe 90: MPC systems with Nigel Smart 184 | * Randomness 185 | * True randomness is fascinating from an esoteric viewpoint 186 | * zkpe 74: Randomness and Random Beacons with Justin Drake 187 | * Trusted Setups 188 | * zkpe 133: Trusted Setup Ceremonies Explored 189 | * zkpe 137: Trusted Setup Bonus: Tornado Cash 190 | * zkpe 76: Sean Bowe on SNARKs, Trusted Setups & Elliptic Curve Cryptography 191 | * Verifiable Delay Functions 192 | * zkpe 103: Exploring VDFs with Joseph Bonneau 193 | * MiMC 194 | * https://eprint.iacr.org/2016/492.pdf 195 | * Fully Homomorphic Encryption 196 | * zkpe 124: Exploring FHE with Flavio Bergamaschi from IBM Research 197 | * baby jubjub (eliptic curves) 198 | * Zcash: https://z.cash/technology/jubjub/ 199 | 200 | ### :book: History 201 | * zkpe 90: Nigel Smart explains MPC & general history advances from the Cryptography vs. Cryptocurrancy side 202 | * zkpe 100: Great history lesson with Dan Boneh of cryptography (most useful in the beginning and end) 203 | * The OG ZKP paper from the 80s: [The Knowledge and Complexity of Interactive Proof Systems](https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf) 204 | * This was very academic/theoretical until about 2004 as per Nigel Smart in ZKPE 90. 205 | * If you are working through the math of abstract algebra/ complexity theory, this paper will show why it is important. It is not overly complicated 206 | * 2007 major advance from Paul Valiant [Incrementally Verifiable Computation](https://dspace.mit.edu/bitstream/handle/1721.1/38663/163581090-MIT.pdf?sequence=2) 207 | 208 | --- 209 | ### Disclaimer: 210 | This work is being funded by the Ethereum Foundation PSE team, and my crypto holdings are limited to Eth and ERC-20/721 tokens in the Ethereum/Polygon ecosystems. While this is due to my belief in the future viability/tokenomics of Ethereum, please note my inherent biases. I recognize and am truly grateful for the advances in ZK tech not associated with Ethereum, and will always strive towards the goal of impartiality! 211 | -------------------------------------------------------------------------------- /data_collection_brainstorm.md: -------------------------------------------------------------------------------- 1 | # Metric Ranking: 2 | 3 | #### The goal of this sheet is to build a list of potential metrics/data points for ZK circuits in Ethereum with written pros and cons of including in data capture. 4 | 5 | #### It's important to note that all data that can be collected without major trade off will be collected. 6 | 7 | --- 8 | 9 | ### Metric: Type of Snark/Stark 10 | #### Example: Groth 16, Plonk, Stark 11 | #### Benefits: 12 | * Data into the type of circuit construction will give lots of information into the security and performance characteristics 13 | * Many additional data points can be inferred by this data point: i.e. Quantum computing vulnerability 14 | #### Challenges: 15 | * Not sure how to capture through chain data, though manually it is relatively easy 16 | * Certain constructions can be difficult to distinguish from each other 17 | * While research is making large strides in different types of proofs, there aren't a lot of different types in production 18 | #### How to capture: 19 | 20 | --- 21 | ### Metric: Hash Structures Used 22 | #### Example: Pedersen, MiMC 23 | #### Benefits: 24 | * Will be meaningful for security of the hashing used as hashes are broken 25 | * Gas performance and speed will likely be impacted by this 26 | * The layers and structures in merkle trees will also be informative 27 | #### Challenges: 28 | * Not sure how to capture through chain data, though manually it is relatively easy to determine thru code. May be able to do it thru libraries called in bytecode 29 | #### How to capture: 30 | --- 31 | ### Metric: Library/Compiler Used 32 | #### Example: ZoKrates, Circom 33 | #### Benefits: 34 | * Help builders understand what tools other projects are using 35 | * If security exploits are shown from a particular compiler, users can become aware of their exposure 36 | #### Challenges: 37 | * Not sure how to capture through chain data, though manually it is relatively easy to determine thru code. May be able to do it thru libraries called in bytecode 38 | #### How to capture: 39 | --- 40 | ### Metric: Elliptic Curve Used 41 | #### Example: bn-128 42 | #### Benefits: 43 | * It's an important cryptographic primitive that underlies everything 44 | #### Challenges: 45 | * After EIP 196 this is pretty standardized, and may not have as much use 46 | #### How to capture: 47 | --- 48 | ### Metric: Roll Up (L2) 49 | #### Example: Starknet, zkSync 50 | #### Benefits: 51 | * As scalability continues to come into focus, many users' primary concern for zk proofs is rollups 52 | * With large marketing budgets, objectivity could be important to users 53 | #### Challenges: 54 | * Some of the code is private (Starkware) 55 | #### How to capture: 56 | --- 57 | ### Metric: Rollup TPS and Transation Gas Costs 58 | #### Example: 10 tps, 5mm gwei 59 | #### Benefits: 60 | * Very in demand stats for rollups 61 | * Likely will be interesting to compare performance metrics vs. different zk constructions 62 | #### Challenges: 63 | * May need to be done over time, which would present a unique presentation challenge 64 | #### How to capture: 65 | --- 66 | ### Metric: Protocol/Company Associated With 67 | #### Example: Tornado.cash, AZTEC 68 | #### Benefits: 69 | * Gives name recognition to the system 70 | * Likely will be interesting to compare performance metrics vs. different zk constructions 71 | #### Challenges: 72 | * It is hard to determine the owner of contracts, especially with forked code 73 | #### How to capture: 74 | --- 75 | ### Metric: Number of Constraints in Proof 76 | #### Example: 77 | #### Benefits: 78 | * Gives an idea of the efficiency of the proof 79 | #### Challenges: 80 | * Proofs may not be public 81 | * 82 | #### How to capture: 83 | --- 84 | ### Metric: Gas Cost Per Transaction 85 | #### Example: 5mm gwei 86 | #### Benefits: 87 | * One of the primary performance data points for users 88 | * Should be relatively easy to track 89 | #### Challenges: 90 | * Differentiating the method calls to ensure gas tracking is done for the proper functions 91 | #### How to capture: 92 | --- 93 | ### Metric: Narrative for primary purpose of the zk circuits 94 | #### Example: Tornado.Cash is a mixer which allows users to deposit into a contract and withdraw from a different contract without connecting the two accounts. 95 | #### Benefits: 96 | * Can help users understand what the purpose of the circuit is 97 | #### Challenges: 98 | * This is objectively subjective 99 | * Many contracts do not have great documentation 100 | #### How to capture: 101 | --- 102 | ### Metric: Number of Trusted Setup Participants 103 | #### Example: 1114 Participants 104 | #### Benefits: 105 | * One of the primary security data points 106 | * Should have real differences between circuits 107 | #### Challenges: 108 | * Not sure how to collect the data on chain 109 | * There are more data points than just number of participants, i.e. browser based, and timing that should probably be included 110 | #### How to capture: 111 | --- 112 | ### Metric: L2 Contracts Data 113 | #### Benefits: 114 | * Many projects are deployed to L2s vs L1s which should accelerate over time 115 | * Should have real differences between circuits 116 | #### Challenges: 117 | * Need to get access to chain data on L2s 118 | * Need to likely run a node for all L2s to accurately capture data 119 | #### How to capture: 120 | -------------------------------------------------------------------------------- /queries/aggregate_finite_fields.sql: -------------------------------------------------------------------------------- 1 | -- This code is intended to find all contracts on Ethereum main chain which are using 2 | -- zk Snarks and collect all of their transactions. The bytecode of the contracts deployed 3 | -- is in a public use table on Google Big Query, (`bigquery-public-data.crypto_ethereum.contracts`), 4 | -- allowing for reasonably cheap and very efficient SQL searching through it. Constants in contract 5 | -- data are hexed and put into the bytecode, which allow a simple LIKE query to find them, 6 | -- provided they are unique. Luckily, the finite field natively supported on Ethereum is a massive and 7 | -- unique number 21888242871839275222246405745257275088548364400416034343698204186575808495617. 8 | 9 | WITH contracts AS ( 10 | SELECT 11 | address, 12 | block_timestamp, 13 | block_number, 14 | bytecode as runtime_bytecode 15 | FROM `bigquery-public-data.crypto_ethereum.contracts` 16 | WHERE bytecode LIKE '%30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001%' 17 | OR bytecode LIKE '%x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47%' -- The prime q in the base field also used in many contracts 18 | ), 19 | 20 | --This joins data from the contract creation transaction and the contracts grabbed above 21 | creation AS ( 22 | SELECT 23 | c.address as contract_address, 24 | c.block_timestamp, 25 | receipt_gas_used as contract_creation_cost, 26 | t.hash as creation_hash, 27 | t.from_address as deployed_by, 28 | LEFT(t.input,10) as deployment_method, 29 | c.runtime_bytecode, 30 | input as creation_input_bytecode 31 | FROM contracts c 32 | LEFT JOIN `bigquery-public-data.crypto_ethereum.transactions` t 33 | on t.receipt_contract_address = c.address 34 | ), 35 | 36 | -- This query joins data from all transactions into the contract address. 37 | -- Later I realized that I am missing internal txs (traces) and put that 38 | -- into a different search type (driven by methods) 39 | all_txs AS ( 40 | SELECT 41 | c.contract_address, 42 | c.block_timestamp, 43 | t.hash as transaction_hash, 44 | LEFT(t.input,10) as tx_method, 45 | c.contract_creation_cost, 46 | c.creation_hash, 47 | t.hash as transaction_hash, 48 | c.deployment_method, 49 | c.deployed_by, 50 | t.receipt_gas_used as transaction_gas_cost, 51 | COUNT(from_address) OVER (PARTITION BY contract_address) as num_transactions, 52 | c.runtime_bytecode, 53 | c.creation_input_bytecode 54 | FROM creation c 55 | LEFT JOIN `bigquery-public-data.crypto_ethereum.transactions` t 56 | on t.to_address = c.contract_address 57 | ) 58 | 59 | -- group the txns by contract_address 60 | SELECT 61 | contract_address, 62 | MIN(block_timestamp) AS creation_time_stamp, 63 | MAX(creation_hash) AS creation_hash, 64 | MAX(deployed_by) AS deployed_by, 65 | MAX(num_transactions) AS num_transactions, 66 | MAX(runtime_bytecode) AS runtime_bytecode, 67 | MAX(creation_input_bytecode) AS creation_input_bytecode 68 | FROM all_txs 69 | GROUP BY contract_address 70 | ORDER BY creation_time_stamp -------------------------------------------------------------------------------- /queries/gas_costs_by_project: -------------------------------------------------------------------------------- 1 | 2 | -- This query is to pull the gas costs per active project. They pull the txs from 9/20/22-9/26/22 which are sent to the public address of the active project. 3 | -- There is a "CASE WHEN" used to name the function call whenever useful. :) 4 | 5 | WITH txs AS ( 6 | SELECT 7 | "Element Finance" as project, 8 | block_number, 9 | "claimAirdropAndDelegate" as Type, 10 | receipt_gas_used as Gas, 11 | t.hash as tx_hash, 12 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 13 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 14 | WHERE DATE(block_timestamp) > "2022-09-19" 15 | AND DATE(block_timestamp) < "2022-9-27" 16 | AND to_address = '0x72d3acdad21df959db2c112a0a5982d03759a154' 17 | Union ALL 18 | SELECT 19 | "zkSync V1", 20 | block_number, 21 | CASE WHEN LEFT(input,10) = '0x83981808' THEN "proveBlocks" 22 | WHEN LEFT(input,10) = '0x45269298' THEN "commitBlocks" 23 | WHEN LEFT(input,10) = '0xb0705b42' THEN "executeBlocks" 24 | ELSE "unknown" END as Type, 25 | receipt_gas_used as Gas, 26 | t.hash as tx_hash, 27 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 28 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 29 | WHERE DATE(block_timestamp) > "2022-09-19" 30 | AND DATE(block_timestamp) < "2022-9-27" 31 | AND from_address = '0x01c3a1a6890a146ac187a019f9863b3ab2bff91e' 32 | Union ALL 33 | SELECT 34 | "Aztec Connect", 35 | block_number, 36 | CASE WHEN LEFT(input,10) = '0xf81cccbe'THEN "processRollup" 37 | WHEN LEFT(input,10) = '0x20825443' THEN "offchainData" 38 | ELSE "unknown" END as Type, 39 | receipt_gas_used as Gas, 40 | t.hash as tx_hash, 41 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 42 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 43 | WHERE DATE(block_timestamp) > "2022-09-19" 44 | AND DATE(block_timestamp) < "2022-9-27" 45 | AND from_address = '0xa173bddf4953c1e8be2ca0695cfc07502ff3b1e7' 46 | Union ALL 47 | SELECT 48 | "dYdX", 49 | block_number, 50 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 51 | WHEN LEFT(input,10) = '0x9b3b76cc' THEN "verifyProofAndRegister" 52 | WHEN LEFT(input,10) = '0x5578ceae' THEN "registerContinuousMemoryPage" 53 | WHEN LEFT(input,10) = '0xe85a6a28' THEN "verifyFRI" 54 | WHEN LEFT(input,10) = '0x3fe317a6' THEN "verifyMerkle" 55 | ELSE "unknown" END as Type, 56 | receipt_gas_used as Gas, 57 | t.hash as tx_hash, 58 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 59 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 60 | WHERE DATE(block_timestamp) > "2022-09-19" 61 | AND DATE(block_timestamp) < "2022-9-27" 62 | AND from_address = '0x8129b737912e17212c8693b781928f5d0303390a' 63 | Union ALL 64 | SELECT 65 | "ZKSpace", 66 | block_number, 67 | CASE WHEN LEFT(input,10) = '0x6898e6fc'THEN "verifyBlocks" 68 | WHEN LEFT(input,10) = '0x4e913cd9' THEN "commitBlock" 69 | ELSE "unknown" END as Type, 70 | receipt_gas_used as Gas, 71 | t.hash as tx_hash, 72 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 73 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 74 | WHERE DATE(block_timestamp) > "2022-09-19" 75 | AND DATE(block_timestamp) < "2022-9-27" 76 | AND from_address = '0x5bd9404260d2b0d55081e599e4e085be080141e2' 77 | UNION ALL 78 | SELECT 79 | "Aztec", 80 | block_number, 81 | CASE WHEN LEFT(input,10) = '0x06011a46'THEN "processRollup" 82 | ELSE "unknown" END as Type, 83 | receipt_gas_used as Gas, 84 | t.hash as tx_hash, 85 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 86 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 87 | WHERE DATE(block_timestamp) > "2022-09-19" 88 | AND DATE(block_timestamp) < "2022-9-27" 89 | AND from_address = '0xfcf75295f242c4e87203abb5d7c9bbeda90a8895' 90 | UNION ALL 91 | SELECT 92 | "Loopring", 93 | block_number, 94 | CASE WHEN LEFT(input,10) = '0xdcb2aa31'THEN "submitBlocksWithCallbacks" 95 | ELSE "unknown" END as Type, 96 | receipt_gas_used as Gas, 97 | t.hash as tx_hash, 98 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 99 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 100 | WHERE DATE(block_timestamp) > "2022-09-19" 101 | AND DATE(block_timestamp) < "2022-9-27" 102 | AND from_address = '0x7961076f6130092c1c90bd0d2c6f7f54055fa6c7' 103 | Union ALL 104 | -- Last ZKSwap for V1 occured in June 2022 105 | SELECT 106 | "ZKSwap v1", 107 | block_number, 108 | CASE WHEN LEFT(input,10) = '0x3b3cf7b8'THEN "verifyBlocks" 109 | WHEN LEFT(input,10) = '0x4e913cd9' THEN "commitBlock" 110 | ELSE "unknown" END as Type, 111 | receipt_gas_used as Gas, 112 | t.hash as tx_hash, 113 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 114 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 115 | WHERE DATE(block_timestamp) > "2022-09-19" 116 | AND DATE(block_timestamp) < "2022-9-27" 117 | AND from_address = '0x042147bd43d3f59b3133ee08322b67e4e9f2fdb3' 118 | UNION ALL 119 | -- Last ZKSwap for V2 occured on Sept. 8th 2022 120 | SELECT 121 | "ZKSwap v2", 122 | block_number, 123 | CASE WHEN LEFT(input,10) = '0x3b3cf7b8'THEN "verifyBlocks" 124 | WHEN LEFT(input,10) = '0x4e913cd9' THEN "commitBlock" 125 | ELSE "unknown" END as Type, 126 | receipt_gas_used as Gas, 127 | t.hash as tx_hash, 128 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 129 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 130 | WHERE DATE(block_timestamp) > "2022-09-19" 131 | AND DATE(block_timestamp) < "2022-9-27" 132 | AND from_address = '0x38101ae98196c8bcf7df1835bf3983b384272ae4' 133 | UNION ALL 134 | -- Note Polygon Hermez may have paused thier blockchain on 9/15/22 which was merge day... 135 | SELECT 136 | "Polygon Hermez", 137 | block_number, 138 | CASE WHEN LEFT(input,10) = '0x6e7e1365'THEN "forgeBatch" 139 | ELSE "unknown" END as Type, 140 | receipt_gas_used as Gas, 141 | t.hash as tx_hash, 142 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 143 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 144 | WHERE DATE(block_timestamp) > "2022-09-19" 145 | AND DATE(block_timestamp) < "2022-9-27" 146 | AND from_address = '0xc3867da55e14b722ab2a8e9fa4e39f51f5e03de5' 147 | UNION ALL 148 | SELECT 149 | "WanChain", 150 | block_number, 151 | CASE WHEN LEFT(input,10) = '0x0f856267'THEN "smgRelease" 152 | ELSE "unknown" END as Type, 153 | receipt_gas_used as Gas, 154 | t.hash as tx_hash, 155 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 156 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 157 | WHERE DATE(block_timestamp) > "2022-09-19" 158 | AND DATE(block_timestamp) < "2022-9-27" 159 | AND from_address = '0x8faee769b0b2c4072ef11029b1aedd5650145b9d' 160 | AND LEFT(input,10) = '0x0f856267' 161 | UNION ALL 162 | SELECT 163 | "Starknet" as project, 164 | block_number, 165 | CASE WHEN LEFT(input,10) = '0x77552641'THEN "updateState" 166 | ELSE "unknown" END as Type, 167 | receipt_gas_used as Gas, 168 | t.hash as tx_hash, 169 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 170 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 171 | WHERE DATE(block_timestamp) > "2022-09-19" 172 | AND DATE(block_timestamp) < "2022-9-27" 173 | AND from_address = '0x2c169dfe5fbba12957bdd0ba47d9cedbfe260ca7' 174 | UNION ALL 175 | SELECT 176 | "IMX", 177 | block_number, 178 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 179 | WHEN LEFT(input,10) = '0x504f7f6f' THEN "verifyAvailabilityProof" 180 | ELSE "unknown" END as Type, 181 | receipt_gas_used as Gas, 182 | t.hash as tx_hash, 183 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 184 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 185 | WHERE DATE(block_timestamp) > "2022-09-19" 186 | AND DATE(block_timestamp) < "2022-9-27" 187 | AND from_address = '0x9b7f7d0d23d4cace5a3157752d0d4e4bf25e927e' 188 | UNION ALL 189 | SELECT 190 | "RinoFi", 191 | block_number, 192 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 193 | WHEN LEFT(input,10) = '0x504f7f6f' THEN "verifyAvailabilityProof" 194 | ELSE "unknown" END as Type, 195 | receipt_gas_used as Gas, 196 | t.hash as tx_hash, 197 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 198 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 199 | WHERE DATE(block_timestamp) > "2022-09-19" 200 | AND DATE(block_timestamp) < "2022-9-27" 201 | AND from_address = '0x8a6c80aab6497e2db35817817b593b79d78f6ae5' 202 | UNION ALL 203 | SELECT 204 | "Sorare", 205 | block_number, 206 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 207 | WHEN LEFT(input,10) = '0x504f7f6f' THEN "verifyAvailabilityProof" 208 | ELSE "unknown" END as Type, 209 | receipt_gas_used as Gas, 210 | t.hash as tx_hash, 211 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 212 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 213 | WHERE DATE(block_timestamp) > "2022-09-19" 214 | AND DATE(block_timestamp) < "2022-9-27" 215 | AND from_address = '0x63881ac44293e22f3c3183a0c4113586abb3e653' 216 | UNION ALL 217 | SELECT 218 | "Celer", 219 | block_number, 220 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 221 | WHEN LEFT(input,10) = '0x504f7f6f' THEN "verifyAvailabilityProof" 222 | ELSE "unknown" END as Type, 223 | receipt_gas_used as Gas, 224 | t.hash as tx_hash, 225 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 226 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 227 | WHERE DATE(block_timestamp) > "2022-09-19" 228 | AND DATE(block_timestamp) < "2022-9-27" 229 | AND from_address = '0x85A732d8e21f1890BdeA4eDddCf4Dd0E70a31EA5' 230 | UNION ALL 231 | SELECT 232 | "Myria", 233 | block_number, 234 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 235 | WHEN LEFT(input,10) = '0x504f7f6f' THEN "verifyAvailabilityProof" 236 | ELSE "unknown" END as Type, 237 | receipt_gas_used as Gas, 238 | t.hash as tx_hash, 239 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 240 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 241 | WHERE DATE(block_timestamp) > "2022-09-19" 242 | AND DATE(block_timestamp) < "2022-9-27" 243 | AND from_address = '0xe997ece81cb8A686206ea6042886B594Ecf6DdED' 244 | UNION ALL 245 | SELECT 246 | "Davion", 247 | block_number, 248 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 249 | WHEN LEFT(input,10) = '0x504f7f6f' THEN "verifyAvailabilityProof" 250 | ELSE "unknown" END as Type, 251 | receipt_gas_used as Gas, 252 | t.hash as tx_hash, 253 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 254 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 255 | WHERE DATE(block_timestamp) > "2022-09-19" 256 | AND DATE(block_timestamp) < "2022-9-27" 257 | AND from_address = '0x78e802d42Bbc1834f962A11B54e0F8e07f52d4Fb' 258 | UNION ALL 259 | SELECT 260 | "Starkware", 261 | block_number, 262 | CASE WHEN LEFT(input,10) = '0x538f9406'THEN "updateState" 263 | WHEN LEFT(input,10) = '0x9b3b76cc' THEN "verifyProofAndRegister" 264 | WHEN LEFT(input,10) = '0x5578ceae' THEN "registerContinuousMemoryPage" 265 | WHEN LEFT(input,10) = '0xe85a6a28' THEN "verifyFRI" 266 | WHEN LEFT(input,10) = '0x3fe317a6' THEN "verifyMerkle" 267 | ELSE "unknown" END as Type, 268 | receipt_gas_used as Gas, 269 | t.hash as tx_hash, 270 | COUNT(*) OVER (PARTITION BY LEFT(input,10)) AS num_txs 271 | FROM `bigquery-public-data.crypto_ethereum.transactions` t 272 | WHERE DATE(block_timestamp) > "2022-09-19" 273 | AND DATE(block_timestamp) < "2022-9-27" 274 | AND from_address = '0x99ade43be1c386423ea4ab53e69efcd98e211fda' 275 | ) 276 | 277 | 278 | SELECT 279 | t.project, 280 | type, 281 | sum(gas) as gas, 282 | AVG(num_txs) as num_txs, 283 | sum(gas)/Avg(num_txs) as avg_gas_per_tx 284 | FROM txs t 285 | GROUP BY t.project, type 286 | ORDER BY project, gas 287 | -------------------------------------------------------------------------------- /queries/queries_read_me: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /queries/verifications_per_month_by _proving_system: -------------------------------------------------------------------------------- 1 | 2 | -- The point of this query is to get a list of all verification by public verifiers on Ethereum Main Chain 3 | -- and group them by month from the first verification (2018-11-16 11:43:50 UTC) and prover system 4 | -- The top part is the same as Verifier Contracts and grabs all contracts using the Method IDs which 5 | -- I believe are verifications. 6 | 7 | WITH traces as ( 8 | SELECT 9 | *, 10 | "Plonk_check" as type 11 | FROM `bigquery-public-data.crypto_ethereum.traces` 12 | WHERE LEFT(input,10) = "0xb6d5d214" 13 | UNION ALL 14 | SELECT 15 | *, 16 | "PLONK(Hermez or zkSync/swap)" as type 17 | FROM `bigquery-public-data.crypto_ethereum.traces` 18 | WHERE LEFT(input,10) = "0xa830bd60" 19 | UNION ALL 20 | SELECT 21 | *, 22 | "Plonk/Turbo_Plonk" as type 23 | FROM `bigquery-public-data.crypto_ethereum.traces` 24 | WHERE LEFT(input,10) = "0xac318c5d" 25 | UNION ALL 26 | SELECT 27 | *, 28 | "PLONK_(zkSync/swap)" as type 29 | FROM `bigquery-public-data.crypto_ethereum.traces` 30 | WHERE LEFT(input,10) = "0x7756aa8a" 31 | UNION ALL 32 | SELECT 33 | *, 34 | "Groth16 ZoKrates" as type 35 | FROM `bigquery-public-data.crypto_ethereum.traces` 36 | WHERE LEFT(input,10) = "0x83e93cd6" 37 | UNION ALL 38 | SELECT 39 | *, 40 | "Groth16 ZoKrates" as type 41 | FROM `bigquery-public-data.crypto_ethereum.traces` 42 | WHERE LEFT(input,10) = "0x5fe8c13b" 43 | UNION ALL 44 | SELECT 45 | *, 46 | "Aztec_Early" as type 47 | FROM `bigquery-public-data.crypto_ethereum.traces` 48 | WHERE LEFT(input,10) = "0xb5596a88" 49 | UNION ALL 50 | SELECT 51 | *, 52 | "Depositor_zkSync" as type 53 | FROM `bigquery-public-data.crypto_ethereum.traces` 54 | WHERE LEFT(input,10) = "0x95b5d617" 55 | UNION ALL 56 | SELECT 57 | *, 58 | "Loopring Block Verifier (Groth16)" as type 59 | FROM `bigquery-public-data.crypto_ethereum.traces` 60 | WHERE LEFT(input,10) = "0x104e4cda" 61 | UNION ALL 62 | SELECT 63 | *, 64 | "ZeroPool (Groth16)" as type 65 | FROM `bigquery-public-data.crypto_ethereum.traces` 66 | WHERE LEFT(input,10) = "0xcfb7b716" 67 | UNION ALL 68 | SELECT 69 | *, 70 | "zkSync (Plonk or Super Plonk)" as type 71 | FROM `bigquery-public-data.crypto_ethereum.traces` 72 | WHERE LEFT(input,10) = "0xdc46ea94" 73 | UNION ALL 74 | SELECT 75 | *, 76 | "Groth 16 Circom" as type 77 | FROM `bigquery-public-data.crypto_ethereum.traces` 78 | WHERE LEFT(input,10) = "0x598da1d1" 79 | UNION ALL 80 | SELECT 81 | *, 82 | "Groth 16 Circom" as type 83 | FROM `bigquery-public-data.crypto_ethereum.traces` 84 | WHERE LEFT(input,10) = "0x695ef6f9" 85 | UNION ALL 86 | SELECT 87 | *, 88 | "WanChain" as type 89 | FROM `bigquery-public-data.crypto_ethereum.traces` 90 | WHERE LEFT(input,10) = "0x182f875c" 91 | UNION ALL 92 | SELECT 93 | *, 94 | "Loopring Block Verifier" as type 95 | FROM `bigquery-public-data.crypto_ethereum.traces` 96 | WHERE LEFT(input,10) = "0xdc77295b" 97 | UNION ALL 98 | SELECT 99 | *, 100 | "TreeUpdateVerifier" as type 101 | FROM `bigquery-public-data.crypto_ethereum.traces` 102 | WHERE LEFT(input,10) = "0x6bf062b2" 103 | UNION ALL 104 | SELECT 105 | *, 106 | "Hermez" as type 107 | FROM `bigquery-public-data.crypto_ethereum.traces` 108 | WHERE LEFT(input,10) = "0x43753b4d" 109 | UNION ALL 110 | SELECT 111 | *, 112 | "BatchTreeUpdateVerifier" as type 113 | FROM `bigquery-public-data.crypto_ethereum.traces` 114 | WHERE LEFT(input,10) = "0x8d8f8a5c" 115 | UNION ALL 116 | SELECT 117 | *, 118 | "MembershipVerifier" as type 119 | FROM `bigquery-public-data.crypto_ethereum.traces` 120 | WHERE LEFT(input,10) = "0x11479fea" 121 | UNION ALL 122 | SELECT 123 | *, 124 | "Verifier" as type 125 | FROM `bigquery-public-data.crypto_ethereum.traces` 126 | WHERE LEFT(input,10) = "0xf5c9d69e" 127 | UNION ALL 128 | SELECT 129 | *, 130 | "Plonk Private Airdrop" as type 131 | FROM `bigquery-public-data.crypto_ethereum.traces` 132 | WHERE LEFT(input,10) = "0x1e8e1e13" 133 | UNION ALL 134 | SELECT 135 | *, 136 | "Groth16" as type 137 | FROM `bigquery-public-data.crypto_ethereum.traces` 138 | WHERE LEFT(input,10) = "0x695ef6f9" 139 | 140 | 141 | ), 142 | 143 | txs as ( 144 | SELECT 145 | *, 146 | "Groth16(LoopRing)" as type 147 | FROM `bigquery-public-data.crypto_ethereum.transactions` 148 | WHERE LEFT(input,10) = "0x4be6b36a" 149 | UNION ALL 150 | SELECT 151 | *, 152 | "Mixer 0xfa8c5b87f6f7bddea8fe37d9827182d40d290eb0a94971686c89efa3b2fb4f6a" as type 153 | FROM `bigquery-public-data.crypto_ethereum.transactions` 154 | WHERE LEFT(input,10) = "0x22a6fef1" 155 | -- Starkware is a nest of complexity, but I believe the actual verification of the FRIs is completed with the below method call 156 | UNION ALL 157 | SELECT 158 | *, 159 | "StarkWare (STARK FRI)" as type 160 | FROM `bigquery-public-data.crypto_ethereum.transactions` 161 | WHERE LEFT(input,10) = "0xe85a6a28" 162 | ), 163 | 164 | combine_tx_traces AS ( 165 | SELECT 166 | to_address as verifier_contract, 167 | block_timestamp 168 | FROM traces t 169 | UNION ALL 170 | SELECT 171 | to_address, 172 | block_timestamp 173 | FROM txs 174 | ), 175 | 176 | 177 | -- This connects the verifier's with the public verifiers found here: https://docs.google.com/spreadsheets/d/1Boo9zmsRDc1nDLUQIp8JyInPddF5F2aXM_1zkKGAG1g/edit#gid=1920635768 178 | -- It also finds the number of months between the first verification and the rows verification. 179 | only_public AS ( 180 | SELECT 181 | count(t.verifier_contract) as num_verifications, 182 | proving_system, 183 | TIMESTAMP_DIFF(t.block_timestamp, '2018-11-16 11:43:50 UTC', MINUTE)/43830 as months, 184 | FROM combine_tx_traces t 185 | RIGHT JOIN `starlit-sandbox-349500.Data.public_verifier_contracts` c ON c.contract_address = t.verifier_contract 186 | GROUP BY months, proving_system 187 | ) 188 | 189 | -- This section takes a the sum of the verifications per month per proving system rounding down. 190 | SELECT 191 | sum(num_verifications) as verifications, 192 | proving_system, 193 | FLOOR(months) as months 194 | FROM only_public 195 | GROUP BY proving_system, months 196 | -------------------------------------------------------------------------------- /queries/verifier_contracts.sql: -------------------------------------------------------------------------------- 1 | 2 | -- 1. Collect all transactions and traces which are used 3 | -- verify zk proofs on Ethereum. 4 | -- 2. Group them by verifier contract address 5 | 6 | -- On traces vs tx: 7 | -- Transactions and Traces can both call functions of deployed smart contracts and 8 | -- deploy new smart contracts. The diff is that transactions are the intitiaters and 9 | -- traces are functions called by smart contracts which have already been called by 10 | -- a transaction (or a trace). So essentially it goes tx first which can then call 11 | -- traces. 12 | 13 | -- On tx methods: 14 | -- These method IDs (in hex) are generated by Keccak256 hashing the function call in 15 | -- the following format (as an example): 16 | -- verifyBlocks(uint32,uint32,uint256[],uint256[],uint256[],bytes[]) 17 | -- the names of the inputs and space around them are discarded. 18 | -- The first 8 characters + 0x are then used as the method ID in the function call. 19 | -- While it is possible that there are either conflicting method IDs, or the same 20 | -- method ID being used for multiple purposes these were realtively clean. 21 | 22 | WITH traces as ( 23 | SELECT 24 | *, 25 | "Plonk_check" as type 26 | FROM `bigquery-public-data.crypto_ethereum.traces` 27 | WHERE LEFT(input,10) = "0xb6d5d214" 28 | UNION ALL 29 | SELECT 30 | *, 31 | "PLONK(Hermez or zkSync/swap)" as type 32 | FROM `bigquery-public-data.crypto_ethereum.traces` 33 | WHERE LEFT(input,10) = "0xa830bd60" 34 | UNION ALL 35 | SELECT 36 | *, 37 | "Plonk/Turbo_Plonk" as type 38 | FROM `bigquery-public-data.crypto_ethereum.traces` 39 | WHERE LEFT(input,10) = "0xac318c5d" 40 | UNION ALL 41 | SELECT 42 | *, 43 | "PLONK_(zkSync/swap)" as type 44 | FROM `bigquery-public-data.crypto_ethereum.traces` 45 | WHERE LEFT(input,10) = "0x7756aa8a" 46 | UNION ALL 47 | SELECT 48 | *, 49 | "Groth16 ZoKrates" as type 50 | FROM `bigquery-public-data.crypto_ethereum.traces` 51 | WHERE LEFT(input,10) = "0x83e93cd6" 52 | UNION ALL 53 | SELECT 54 | *, 55 | "Groth16 ZoKrates" as type 56 | FROM `bigquery-public-data.crypto_ethereum.traces` 57 | WHERE LEFT(input,10) = "0x5fe8c13b" 58 | UNION ALL 59 | SELECT 60 | *, 61 | "Aztec_Early" as type 62 | FROM `bigquery-public-data.crypto_ethereum.traces` 63 | WHERE LEFT(input,10) = "0xb5596a88" 64 | UNION ALL 65 | SELECT 66 | *, 67 | "Depositor_zkSync" as type 68 | FROM `bigquery-public-data.crypto_ethereum.traces` 69 | WHERE LEFT(input,10) = "0x95b5d617" 70 | UNION ALL 71 | SELECT 72 | *, 73 | "Loopring Block Verifier (Groth16)" as type 74 | FROM `bigquery-public-data.crypto_ethereum.traces` 75 | WHERE LEFT(input,10) = "0x104e4cda" 76 | UNION ALL 77 | SELECT 78 | *, 79 | "ZeroPool (Groth16)" as type 80 | FROM `bigquery-public-data.crypto_ethereum.traces` 81 | WHERE LEFT(input,10) = "0xcfb7b716" 82 | UNION ALL 83 | SELECT 84 | *, 85 | "zkSync (Plonk or Super Plonk)" as type 86 | FROM `bigquery-public-data.crypto_ethereum.traces` 87 | WHERE LEFT(input,10) = "0xdc46ea94" 88 | UNION ALL 89 | SELECT 90 | *, 91 | "Groth 16 Circom" as type 92 | FROM `bigquery-public-data.crypto_ethereum.traces` 93 | WHERE LEFT(input,10) = "0x598da1d1" 94 | UNION ALL 95 | SELECT 96 | *, 97 | "Groth 16 Circom" as type 98 | FROM `bigquery-public-data.crypto_ethereum.traces` 99 | WHERE LEFT(input,10) = "0x695ef6f9" 100 | UNION ALL 101 | SELECT 102 | *, 103 | "WanChain" as type 104 | FROM `bigquery-public-data.crypto_ethereum.traces` 105 | WHERE LEFT(input,10) = "0x182f875c" 106 | UNION ALL 107 | SELECT 108 | *, 109 | "Loopring Block Verifier" as type 110 | FROM `bigquery-public-data.crypto_ethereum.traces` 111 | WHERE LEFT(input,10) = "0xdc77295b" 112 | UNION ALL 113 | SELECT 114 | *, 115 | "TreeUpdateVerifier" as type 116 | FROM `bigquery-public-data.crypto_ethereum.traces` 117 | WHERE LEFT(input,10) = "0x6bf062b2" 118 | UNION ALL 119 | SELECT 120 | *, 121 | "Hermez" as type 122 | FROM `bigquery-public-data.crypto_ethereum.traces` 123 | WHERE LEFT(input,10) = "0x43753b4d" 124 | UNION ALL 125 | SELECT 126 | *, 127 | "BatchTreeUpdateVerifier" as type 128 | FROM `bigquery-public-data.crypto_ethereum.traces` 129 | WHERE LEFT(input,10) = "0x8d8f8a5c" 130 | UNION ALL 131 | SELECT 132 | *, 133 | "MembershipVerifier" as type 134 | FROM `bigquery-public-data.crypto_ethereum.traces` 135 | WHERE LEFT(input,10) = "0x11479fea" 136 | UNION ALL 137 | SELECT 138 | *, 139 | "Verifier" as type 140 | FROM `bigquery-public-data.crypto_ethereum.traces` 141 | WHERE LEFT(input,10) = "0xf5c9d69e" 142 | UNION ALL 143 | SELECT 144 | *, 145 | "Plonk Private Airdrop" as type 146 | FROM `bigquery-public-data.crypto_ethereum.traces` 147 | WHERE LEFT(input,10) = "0x1e8e1e13" 148 | UNION ALL 149 | SELECT 150 | *, 151 | "Groth16" as type 152 | FROM `bigquery-public-data.crypto_ethereum.traces` 153 | WHERE LEFT(input,10) = "0x695ef6f9" 154 | 155 | 156 | ), 157 | 158 | txs as ( 159 | SELECT 160 | *, 161 | "Groth16(LoopRing)" as type 162 | FROM `bigquery-public-data.crypto_ethereum.transactions` 163 | WHERE LEFT(input,10) = "0x4be6b36a" 164 | UNION ALL 165 | SELECT 166 | *, 167 | "Mixer 0xfa8c5b87f6f7bddea8fe37d9827182d40d290eb0a94971686c89efa3b2fb4f6a" as type 168 | FROM `bigquery-public-data.crypto_ethereum.transactions` 169 | WHERE LEFT(input,10) = "0x22a6fef1" 170 | -- Starkware is a nest of complexity, but I believe the actual verification of the FRIs is completed with the below method call 171 | UNION ALL 172 | SELECT 173 | *, 174 | "StarkWare (STARK FRI)" as type 175 | FROM `bigquery-public-data.crypto_ethereum.transactions` 176 | WHERE LEFT(input,10) = "0xe85a6a28" 177 | ), 178 | 179 | -- Here we group the txns and traces by the verifier contract address. 180 | -- We also get the first & last transaction timestamp, the average gas used 181 | -- the method ID, and the method type 182 | combine_tx_traces as ( 183 | SELECT 184 | to_address as verifier_contract, 185 | MIN(t.block_timestamp) as first_tx, 186 | MAX(t.block_timestamp) as last_tx, 187 | ROUND(avg(t.gas_used)) as avg_gas_used, 188 | MAX(LEFT(t.input,10)) as method_ID, 189 | MAX(type) as snark_type, 190 | "Internal (trace)" as method_type, 191 | COUNT(*) AS num_contract_calls, 192 | MAX(LENGTH(input)) as tx_input_length 193 | FROM traces t 194 | GROUP BY to_address 195 | UNION ALL 196 | SELECT 197 | to_address as verifier_contract, 198 | MIN(t.block_timestamp) as first_tx, 199 | MAX(t.block_timestamp) as last_tx, 200 | ROUND(avg(t.receipt_gas_used)) as avg_gas_used, 201 | MAX(LEFT(t.input,10)), 202 | MAX(type), 203 | "External (transaction)", 204 | COUNT(*), 205 | MAX(LENGTH(input)) as tx_input_length 206 | FROM txs t 207 | GROUP BY to_address 208 | ), 209 | 210 | -- Left join the data from es_bytecode table into the verifier address table 211 | -- This data was manually pulled from Etherscan Data 212 | add_es as ( 213 | SELECT 214 | * 215 | FROM combine_tx_traces c 216 | LEFT JOIN `starlit-sandbox-349500.snark_contracts.es_bytecode` b 217 | ON b.contract_address = c.verifier_contract 218 | ), 219 | -- Left join the contract data for each verifier contract 220 | add_contract_data as ( 221 | SELECT 222 | verifier_contract, 223 | first_tx, 224 | last_tx, 225 | avg_gas_used, 226 | method_ID, 227 | snark_type, 228 | method_type, 229 | num_contract_calls, 230 | contract_name, 231 | contract_author, 232 | es_tag, 233 | identity, 234 | public_es, 235 | c.block_timestamp as creation_time, 236 | NULL as transaction_hash_creation, 237 | NULL as deployed_by_address, 238 | num_contract_transactions, 239 | a.contract_abi as contract_ABI, 240 | c.bytecode as runtime_bytecode, 241 | tx_input_length, 242 | FROM add_es a 243 | LEFT JOIN `bigquery-public-data.crypto_ethereum.contracts` c 244 | ON c.address = a.verifier_contract 245 | ), 246 | 247 | -- Left Join the first transactions data for each verifing contract 248 | -- Need to group them in order to only have the first tx data (and sort that by lowest tx position) 249 | add_transaction_data as ( 250 | SELECT 251 | verifier_contract, 252 | first_tx, 253 | last_tx, 254 | avg_gas_used, 255 | method_ID, 256 | snark_type, 257 | method_type, 258 | num_contract_calls, 259 | contract_name, 260 | contract_author, 261 | es_tag, 262 | identity, 263 | public_es, 264 | creation_time, 265 | t.transaction_index, 266 | FIRST_VALUE(t.hash) OVER (PARTITION BY verifier_contract ORDER BY block_number, transaction_index) as transaction_hash_creation, 267 | FIRST_VALUE(t.from_address) OVER (PARTITION BY verifier_contract ORDER BY block_number, transaction_index) as deployed_by_address, 268 | a.num_contract_transactions, 269 | a.contract_ABI, 270 | runtime_bytecode, 271 | FIRST_VALUE(t.input) OVER (PARTITION BY verifier_contract ORDER BY block_number, transaction_index) as input_bytecode, 272 | a.tx_input_length 273 | FROM add_contract_data a 274 | LEFT JOIN `bigquery-public-data.crypto_ethereum.transactions` t 275 | ON t.receipt_contract_address = a.verifier_contract 276 | ) 277 | 278 | SELECT 279 | verifier_contract, 280 | MIN(first_tx) as first_tx, 281 | MAX(last_tx) as last_tx, 282 | MAX(avg_gas_used) as avg_gas_used, 283 | MAX(method_ID) as method_ID, 284 | MAX(snark_type) as snark_type, 285 | MAX(method_type) as method_type, 286 | MAX(num_contract_calls) as num_contract_calls, 287 | MAX(contract_name) as contract_name, 288 | MAX(contract_author) as contract_author, 289 | MAX(es_tag) as es_tag, 290 | MAX(identity) as identity, 291 | MAX(public_es) as public_es, 292 | MAX(creation_time) as creation_time, 293 | MAX(transaction_hash_creation) as tx_hash_creation, 294 | MAX(deployed_by_address) as deployed_by_address, 295 | MAX(num_contract_transactions) as num_contract_transactions, 296 | MAX(contract_ABI) as contract_ABI, 297 | MAX(runtime_bytecode) as runtime_bytecode, 298 | MAX(input_bytecode) as input_bytecode, 299 | MAX(tx_input_length) as tx_input_length 300 | FROM add_transaction_data 301 | GROUP BY verifier_contract 302 | --------------------------------------------------------------------------------