arnaucube
arnaucube/sonobe-playgroundPublic Self-hosted repository
sonobe-playground/README.md
README.mdRaw
  1# sonobe-playground
  2
  3## Current state
  4
  5- ✅ Nova folding
  6- ✅ HyperNova without multifolding (μ = ν = 0)
  7- ✅ HyperNova multifolding (μ, ν ≥ 1)
  8
  9## Reproduce
 10
 11```bash
 12make prepare-circuit
 13make run
 14```
 15
 16### Setting
 17
 18- Use BN254-Grumpkin curves
 19- Use Circom-defined circuit with 256 step inputs and state width of 2. 
 20The circuit just copies old state to the new one.
 21- There are 360 steps in total (although, for multifolding there will be less)
 22
 23### Machine used for benchmarks
 24
 25AWS EC2 type `c6a.8xlarge` (32 vCPU, 64 GiB RAM)
 26
 27### Benchmarked schemes:
 28
 29- `Nova`
 30- `HyperNova<M, N>` with `M`, `N` from `{1, 2, 3, 4, 5, 6}`, excluding few configurations (those batching steps by either 7 or 11, which wouldn't cover all 360 inputs - technical detail)
 31
 32### Results
 33
 34```
 35Elapsed (wall clock) time (h:mm:ss or m:ss): 4:57:40
 36Maximum resident set size (kbytes): 2 072 392
 37```
 38
 39<img src="hn-grid.png">
 40
 41```
 42Prepare input: 0.014000 seconds
 43Prepare circuit: 0.000064 seconds
 44Nova total time: 110.000000 seconds
 45HyperNova<1,1> total time: 428.000000 seconds
 46HyperNova<1,2> total time: 434.000000 seconds
 47HyperNova<1,3> total time: 496.000000 seconds
 48HyperNova<1,4> total time: 517.000000 seconds
 49HyperNova<1,5> total time: 537.000000 seconds
 50HyperNova<1,6> total time: 562.000000 seconds
 51HyperNova<2,1> total time: 499.000000 seconds
 52HyperNova<2,2> total time: 514.000000 seconds
 53HyperNova<2,3> total time: 535.000000 seconds
 54HyperNova<2,4> total time: 555.000000 seconds
 55HyperNova<2,5> total time: 579.000000 seconds
 56HyperNova<3,1> total time: 534.000000 seconds
 57HyperNova<3,2> total time: 551.000000 seconds
 58HyperNova<3,3> total time: 576.000000 seconds
 59HyperNova<3,4> total time: 594.000000 seconds
 60HyperNova<3,6> total time: 640.000000 seconds
 61HyperNova<4,1> total time: 567.000000 seconds
 62HyperNova<4,2> total time: 589.000000 seconds
 63HyperNova<4,3> total time: 609.000000 seconds
 64HyperNova<4,5> total time: 657.000000 seconds
 65HyperNova<4,6> total time: 681.000000 seconds
 66HyperNova<5,1> total time: 604.000000 seconds
 67HyperNova<5,2> total time: 627.000000 seconds
 68HyperNova<5,4> total time: 673.000000 seconds
 69HyperNova<5,5> total time: 696.000000 seconds
 70HyperNova<5,6> total time: 719.000000 seconds
 71HyperNova<6,1> total time: 643.000000 seconds
 72HyperNova<6,3> total time: 690.000000 seconds
 73HyperNova<6,4> total time: 710.000000 seconds
 74HyperNova<6,5> total time: 734.000000 seconds
 75
 76--------------------------------------------------------------------------------
 77Scenario: Nova
 78  Prepare folding: 1.440000 seconds
 79  Transform input: 0.000000 seconds
 80  Folding verification: 0.019500 seconds
 81  Folding Steps:
 82    Input preparation
 83      Avg: 0.000139 seconds
 84      Min: 0.000001 seconds
 85      Max: 0.000294 seconds
 86    Proving
 87      Avg: 0.302000 seconds
 88      Min: 0.234000 seconds
 89      Max: 0.312000 seconds
 90--------------------------------------------------------------------------------
 91Scenario: HyperNova<1,1>
 92  Prepare folding: 2.950000 seconds
 93  Transform input: 0.000000 seconds
 94  Folding verification: 0.031900 seconds
 95  Folding Steps:
 96    Input preparation
 97      Avg: 0.000013 seconds
 98      Min: 0.000002 seconds
 99      Max: 0.000365 seconds
100    Proving
101      Avg: 1.179806 seconds
102      Min: 1.070000 seconds
103      Max: 1.200000 seconds
104--------------------------------------------------------------------------------
105Scenario: HyperNova<1,2>
106  Prepare folding: 3.220000 seconds
107  Transform input: 0.000000 seconds
108  Folding verification: 0.032700 seconds
109  Folding Steps:
110    Input preparation
111      Avg: 1.115444 seconds
112      Min: 1.110000 seconds
113      Max: 1.130000 seconds
114    Proving
115      Avg: 1.278167 seconds
116      Min: 1.130000 seconds
117      Max: 1.300000 seconds
118--------------------------------------------------------------------------------
119Scenario: HyperNova<1,3>
120  Prepare folding: 3.690000 seconds
121  Transform input: 0.000000 seconds
122  Folding verification: 0.045900 seconds
123  Folding Steps:
124    Input preparation
125      Avg: 2.554167 seconds
126      Min: 2.540000 seconds
127      Max: 2.590000 seconds
128    Proving
129      Avg: 1.546583 seconds
130      Min: 1.290000 seconds
131      Max: 1.570000 seconds
132--------------------------------------------------------------------------------
133Scenario: HyperNova<1,4>
134  Prepare folding: 4.080000 seconds
135  Transform input: 0.000000 seconds
136  Folding verification: 0.044400 seconds
137  Folding Steps:
138    Input preparation
139      Avg: 4.033000 seconds
140      Min: 4.010000 seconds
141      Max: 4.060000 seconds
142    Proving
143      Avg: 1.665222 seconds
144      Min: 1.350000 seconds
145      Max: 1.680000 seconds
146--------------------------------------------------------------------------------
147Scenario: HyperNova<1,5>
148  Prepare folding: 4.350000 seconds
149  Transform input: 0.000000 seconds
150  Folding verification: 0.047000 seconds
151  Folding Steps:
152    Input preparation
153      Avg: 5.621528 seconds
154      Min: 5.600000 seconds
155      Max: 5.650000 seconds
156    Proving
157      Avg: 1.777222 seconds
158      Min: 1.400000 seconds
159      Max: 1.800000 seconds
160--------------------------------------------------------------------------------
161Scenario: HyperNova<1,6>
162  Prepare folding: 4.830000 seconds
163  Transform input: 0.000000 seconds
164  Folding verification: 0.051500 seconds
165  Folding Steps:
166    Input preparation
167      Avg: 7.383000 seconds
168      Min: 7.360000 seconds
169      Max: 7.410000 seconds
170    Proving
171      Avg: 1.905667 seconds
172      Min: 1.490000 seconds
173      Max: 1.940000 seconds
174--------------------------------------------------------------------------------
175Scenario: HyperNova<2,1>
176  Prepare folding: 3.480000 seconds
177  Transform input: 0.000000 seconds
178  Folding verification: 0.039800 seconds
179  Folding Steps:
180    Input preparation
181      Avg: 1.270000 seconds
182      Min: 1.260000 seconds
183      Max: 1.290000 seconds
184    Proving
185      Avg: 1.480500 seconds
186      Min: 1.260000 seconds
187      Max: 1.490000 seconds
188--------------------------------------------------------------------------------
189Scenario: HyperNova<2,2>
190  Prepare folding: 3.760000 seconds
191  Transform input: 0.000000 seconds
192  Folding verification: 0.041700 seconds
193  Folding Steps:
194    Input preparation
195      Avg: 2.651750 seconds
196      Min: 2.630000 seconds
197      Max: 2.680000 seconds
198    Proving
199      Avg: 1.595167 seconds
200      Min: 1.310000 seconds
201      Max: 1.620000 seconds
202--------------------------------------------------------------------------------
203Scenario: HyperNova<2,3>
204  Prepare folding: 4.180000 seconds
205  Transform input: 0.000000 seconds
206  Folding verification: 0.045100 seconds
207  Folding Steps:
208    Input preparation
209      Avg: 4.177667 seconds
210      Min: 4.150000 seconds
211      Max: 4.220000 seconds
212    Proving
213      Avg: 1.719333 seconds
214      Min: 1.400000 seconds
215      Max: 1.740000 seconds
216--------------------------------------------------------------------------------
217Scenario: HyperNova<2,4>
218  Prepare folding: 4.480000 seconds
219  Transform input: 0.000000 seconds
220  Folding verification: 0.046900 seconds
221  Folding Steps:
222    Input preparation
223      Avg: 5.813194 seconds
224      Min: 5.780000 seconds
225      Max: 5.850000 seconds
226    Proving
227      Avg: 1.830694 seconds
228      Min: 1.460000 seconds
229      Max: 1.850000 seconds
230--------------------------------------------------------------------------------
231Scenario: HyperNova<2,5>
232  Prepare folding: 4.950000 seconds
233  Transform input: 0.000000 seconds
234  Folding verification: 0.049800 seconds
235  Folding Steps:
236    Input preparation
237      Avg: 7.599833 seconds
238      Min: 7.560000 seconds
239      Max: 7.650000 seconds
240    Proving
241      Avg: 1.960333 seconds
242      Min: 1.530000 seconds
243      Max: 2.000000 seconds
244--------------------------------------------------------------------------------
245Scenario: HyperNova<3,1>
246  Prepare folding: 3.870000 seconds
247  Transform input: 0.000000 seconds
248  Folding verification: 0.043300 seconds
249  Folding Steps:
250    Input preparation
251      Avg: 2.761000 seconds
252      Min: 2.740000 seconds
253      Max: 2.790000 seconds
254    Proving
255      Avg: 1.653917 seconds
256      Min: 1.360000 seconds
257      Max: 1.680000 seconds
258--------------------------------------------------------------------------------
259Scenario: HyperNova<3,2>
260  Prepare folding: 4.270000 seconds
261  Transform input: 0.000000 seconds
262  Folding verification: 0.046000 seconds
263  Folding Steps:
264    Input preparation
265      Avg: 4.308778 seconds
266      Min: 4.280000 seconds
267      Max: 4.360000 seconds
268    Proving
269      Avg: 1.769889 seconds
270      Min: 1.420000 seconds
271      Max: 1.810000 seconds
272--------------------------------------------------------------------------------
273Scenario: HyperNova<3,3>
274  Prepare folding: 4.600000 seconds
275  Transform input: 0.000000 seconds
276  Folding verification: 0.048500 seconds
277  Folding Steps:
278    Input preparation
279      Avg: 6.028472 seconds
280      Min: 6.000000 seconds
281      Max: 6.080000 seconds
282    Proving
283      Avg: 1.900278 seconds
284      Min: 1.500000 seconds
285      Max: 1.930000 seconds
286--------------------------------------------------------------------------------
287Scenario: HyperNova<3,4>
288  Prepare folding: 5.050000 seconds
289  Transform input: 0.000000 seconds
290  Folding verification: 0.049700 seconds
291  Folding Steps:
292    Input preparation
293      Avg: 7.806833 seconds
294      Min: 7.760000 seconds
295      Max: 7.850000 seconds
296    Proving
297      Avg: 2.010500 seconds
298      Min: 1.560000 seconds
299      Max: 2.050000 seconds
300--------------------------------------------------------------------------------
301Scenario: HyperNova<3,6>
302  Prepare folding: 5.890000 seconds
303  Transform input: 0.000000 seconds
304  Folding verification: 0.055100 seconds
305  Folding Steps:
306    Input preparation
307      Avg: 11.815556 seconds
308      Min: 11.800000 seconds
309      Max: 11.900000 seconds
310    Proving
311      Avg: 2.272444 seconds
312      Min: 1.680000 seconds
313      Max: 2.310000 seconds
314--------------------------------------------------------------------------------
315Scenario: HyperNova<4,1>
316  Prepare folding: 4.390000 seconds
317  Transform input: 0.000000 seconds
318  Folding verification: 0.047000 seconds
319  Folding Steps:
320    Input preparation
321      Avg: 4.431778 seconds
322      Min: 4.400000 seconds
323      Max: 4.460000 seconds
324    Proving
325      Avg: 1.813444 seconds
326      Min: 1.450000 seconds
327      Max: 1.840000 seconds
328--------------------------------------------------------------------------------
329Scenario: HyperNova<4,2>
330  Prepare folding: 4.680000 seconds
331  Transform input: 0.000000 seconds
332  Folding verification: 0.049800 seconds
333  Folding Steps:
334    Input preparation
335      Avg: 6.173333 seconds
336      Min: 6.130000 seconds
337      Max: 6.220000 seconds
338    Proving
339      Avg: 1.937778 seconds
340      Min: 1.540000 seconds
341      Max: 1.960000 seconds
342--------------------------------------------------------------------------------
343Scenario: HyperNova<4,3>
344  Prepare folding: 5.130000 seconds
345  Transform input: 0.000000 seconds
346  Folding verification: 0.052500 seconds
347  Folding Steps:
348    Input preparation
349      Avg: 8.005333 seconds
350      Min: 7.970000 seconds
351      Max: 8.040000 seconds
352    Proving
353      Avg: 2.053833 seconds
354      Min: 1.590000 seconds
355      Max: 2.090000 seconds
356--------------------------------------------------------------------------------
357Scenario: HyperNova<4,5>
358  Prepare folding: 6.010000 seconds
359  Transform input: 0.000000 seconds
360  Folding verification: 0.056800 seconds
361  Folding Steps:
362    Input preparation
363      Avg: 12.133333 seconds
364      Min: 12.100000 seconds
365      Max: 12.200000 seconds
366    Proving
367      Avg: 2.320222 seconds
368      Min: 1.720000 seconds
369      Max: 2.370000 seconds
370--------------------------------------------------------------------------------
371Scenario: HyperNova<4,6>
372  Prepare folding: 6.320000 seconds
373  Transform input: 0.000000 seconds
374  Folding verification: 0.057600 seconds
375  Folding Steps:
376    Input preparation
377      Avg: 14.390000 seconds
378      Min: 14.300000 seconds
379      Max: 14.500000 seconds
380    Proving
381      Avg: 2.462750 seconds
382      Min: 1.810000 seconds
383      Max: 2.510000 seconds
384--------------------------------------------------------------------------------
385Scenario: HyperNova<5,1>
386  Prepare folding: 4.930000 seconds
387  Transform input: 0.000000 seconds
388  Folding verification: 0.049600 seconds
389  Folding Steps:
390    Input preparation
391      Avg: 6.337500 seconds
392      Min: 6.300000 seconds
393      Max: 6.380000 seconds
394    Proving
395      Avg: 1.988333 seconds
396      Min: 1.560000 seconds
397      Max: 2.010000 seconds
398--------------------------------------------------------------------------------
399Scenario: HyperNova<5,2>
400  Prepare folding: 5.270000 seconds
401  Transform input: 0.000000 seconds
402  Folding verification: 0.051400 seconds
403  Folding Steps:
404    Input preparation
405      Avg: 8.257000 seconds
406      Min: 8.210000 seconds
407      Max: 8.320000 seconds
408    Proving
409      Avg: 2.111000 seconds
410      Min: 1.630000 seconds
411      Max: 2.140000 seconds
412--------------------------------------------------------------------------------
413Scenario: HyperNova<5,4>
414  Prepare folding: 6.110000 seconds
415  Transform input: 0.000000 seconds
416  Folding verification: 0.059200 seconds
417  Folding Steps:
418    Input preparation
419      Avg: 12.437778 seconds
420      Min: 12.400000 seconds
421      Max: 12.500000 seconds
422    Proving
423      Avg: 2.382667 seconds
424      Min: 1.770000 seconds
425      Max: 2.430000 seconds
426--------------------------------------------------------------------------------
427Scenario: HyperNova<5,5>
428  Prepare folding: 6.440000 seconds
429  Transform input: 0.000000 seconds
430  Folding verification: 0.058500 seconds
431  Folding Steps:
432    Input preparation
433      Avg: 14.712500 seconds
434      Min: 14.700000 seconds
435      Max: 14.800000 seconds
436    Proving
437      Avg: 2.513000 seconds
438      Min: 1.830000 seconds
439      Max: 2.550000 seconds
440--------------------------------------------------------------------------------
441Scenario: HyperNova<5,6>
442  Prepare folding: 6.750000 seconds
443  Transform input: 0.000000 seconds
444  Folding verification: 0.062700 seconds
445  Folding Steps:
446    Input preparation
447      Avg: 17.125000 seconds
448      Min: 17.100000 seconds
449      Max: 17.200000 seconds
450    Proving
451      Avg: 2.643889 seconds
452      Min: 1.900000 seconds
453      Max: 2.690000 seconds
454--------------------------------------------------------------------------------
455Scenario: HyperNova<6,1>
456  Prepare folding: 5.360000 seconds
457  Transform input: 0.000000 seconds
458  Folding verification: 0.051300 seconds
459  Folding Steps:
460    Input preparation
461      Avg: 8.461167 seconds
462      Min: 8.420000 seconds
463      Max: 8.500000 seconds
464    Proving
465      Avg: 2.161333 seconds
466      Min: 1.680000 seconds
467      Max: 2.190000 seconds
468--------------------------------------------------------------------------------
469Scenario: HyperNova<6,3>
470  Prepare folding: 6.250000 seconds
471  Transform input: 0.000000 seconds
472  Folding verification: 0.057400 seconds
473  Folding Steps:
474    Input preparation
475      Avg: 12.748889 seconds
476      Min: 12.700000 seconds
477      Max: 12.800000 seconds
478    Proving
479      Avg: 2.433111 seconds
480      Min: 1.820000 seconds
481      Max: 2.470000 seconds
482--------------------------------------------------------------------------------
483Scenario: HyperNova<6,4>
484  Prepare folding: 6.530000 seconds
485  Transform input: 0.000000 seconds
486  Folding verification: 0.058700 seconds
487  Folding Steps:
488    Input preparation
489      Avg: 15.055000 seconds
490      Min: 15.000000 seconds
491      Max: 15.100000 seconds
492    Proving
493      Avg: 2.555500 seconds
494      Min: 1.880000 seconds
495      Max: 2.590000 seconds
496--------------------------------------------------------------------------------
497Scenario: HyperNova<6,5>
498  Prepare folding: 6.890000 seconds
499  Transform input: 0.000000 seconds
500  Folding verification: 0.060100 seconds
501  Folding Steps:
502    Input preparation
503      Avg: 17.511111 seconds
504      Min: 17.400000 seconds
505      Max: 17.600000 seconds
506    Proving
507      Avg: 2.689167 seconds
508      Min: 1.940000 seconds
509      Max: 2.730000 seconds
510```