zkVM Benchmark Report

zkVM / Proof System Architecture Frontend Backend Security Bits
RISC Zero RISC-V Rust STARK-based 96 bits
SP1 RISC-V Rust STARK-based 100 bits
OpenVM RISC-V Rust STARK-based 100 bits
Jolt RISC-V Rust Lookup-based -
Stone Cairo VM Cairo STARK-based 100 bits
Stwo Cairo VM Cairo STARK-based 96 bits

Time and Commit Hash

System Information

OS Version

Ubuntu 24.04.2 LTS

CPU Info

Memory Info

Fibonacci

Benchmark n Fibonacci iterations.

Prover Time (s)

n jolt sp1 openvm r0 stone stwo
4096 1.684 5.555 8.825 5.846 15.583 2.651
8192 2.499 6.772 10.733 11.349 22.654 2.562
16384 4.2 9.153 13.421 22.472 32.151 2.739
32768 7.829 14.421 19.739 45.13 63.677 2.925
65536 14.27 26.564 37.304 89.973 103.429 3.24
131072 26.79 29.536 69.569 141.097 * 3.463
262144 52.224 41.88 134.757 279.451 * 4.406
524288 101.165 73.689 142.485 559.176 * 6.311

Verifier Time (ms)

n jolt sp1 openvm r0 stone stwo
4096 86 139 45 21 88.0 10
8192 66 139 45 20 98.0 9
16384 41 138 44 20 88.0 36
32768 83 142 44 20 65.0 34
65536 43 147 45 25 103.0 17
131072 56 341 46 48 * 10
262144 72 543 47 85 * 19
524288 80 906 87 160 * 141

Proof Size (KB)

n jolt sp1 openvm r0 stone stwo
4096 178.959 1799.8 770.545 244.218 106.568 711.1
8192 188.727 1799.8 770.545 255.93 111.848 693.132
16384 198.911 1799.8 770.545 268.154 119.528 711.368
32768 209.511 1875.83 770.545 281.402 126.472 720.612
65536 220.527 1955.06 803.841 562.652 130.952 719.156
131072 231.959 4815.17 838.481 1087.97 * 719.236
262144 243.807 8108.85 874.465 1943.43 * 707.068
524288 256.071 13282.3 1599.9 3643.15 * 723.176

Cycle Count

n jolt sp1 r0 stone stwo
4096 99479 102986 100582 24594.0 32767
8192 197719 201290 198886 49170.0 65535
16384 394406 397898 395494 98322.0 131071
32768 787622 791114 788710 196626 262143
65536 1574054 1577546 1575142 393234 524287
131072 3146918 3150410 3148006 * 1048575
262144 6292646 6296138 6293734 * 2097151
524288 12584102 12587594 12585190 * 4194303

Peak Memory (GB)

n jolt sp1 openvm r0 stone stwo
4096 6.44 4.59 2.81 1.16 12.44 2.68
8192 4.9 5.08 1.36 2.3 15.22 2.61
16384 5.89 6.37 1.54 4.58 30.06 2.68
32768 8.92 8.97 1.92 9.15 59.79 2.81
65536 15.08 13.29 3.39 9.17 119.22 3.07
131072 27.63 21.56 6.19 9.17 * 3.61
262144 51.94 33.34 11.83 9.17 * 4.67
524288 102.01 41.06 11.83 9.18 * 7.1

Sha2

Benchmark Sha256 hash of n bytes. For Stone, the cairo implementation of sha256 by cartridge was used for benchmarking and for other zkvms sha2 Rust crate was used for benchmarking.

Prover Time (s)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
256 1.182 5.141 7.939 5.804 9.439 2.595 3.479 3.088 7.512
512 1.241 5.004 8.536 5.91 19.059 2.642 3.491 5.899 7.626
1024 1.62 5.551 9.699 11.401 29.826 2.808 3.42 5.919 7.907
2048 2.444 6.463 12.55 22.586 30.702 2.829 3.541 11.432 8.386
4096 x 8.358 17.567 44.8 65.437 3.07 3.818 22.628 9.649
8192 x 13.682 28.314 67.908 117.676 3.275 4.912 44.997 11.681
16384 x 25.896 53.536 111.825 * 3.732 7.219 89.82 16.644

Verifier Time (ms)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
256 37.0 141 49 21 328.0 12 384 19 68
512 37.0 141 50 21 308.0 12 385 21 69
1024 39.0 164 50 21 331.0 12 399 20 69
2048 68.0 162 50 11 322.0 12 384 21 68
4096 x 166 50 19 361.0 12 384 19 68
8192 x 170 49 24 429.0 11 388 20 69
16384 x 171 58 37 * 12 407 25 68

Proof Size (KB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
256 172.143 1799.82 811.409 244.442 108.776 1017.86 5674.59 221.402 950.873
512 172.143 1799.82 811.409 244.442 113.128 1012.51 5674.59 244.442 950.873
1024 181.495 1799.82 811.409 256.154 118.76 1020.16 5674.59 244.442 950.873
2048 191.263 1799.82 811.409 268.378 118.248 1044.65 5674.59 256.154 950.873
4096 x 1799.82 811.409 281.626 124.296 1033.81 5674.59 268.378 950.873
8192 x 1875.85 811.409 549.628 129.512 1018.06 5674.59 281.626 950.873
16384 x 1955.08 844.705 830.878 * 1043.84 5674.59 562.876 950.873

Cycle Count

n jolt sp1 r0 stone stwo sp1-precompile r0-precompile
256 35403.0 33132 48398 14780.0 131071 11763 29627
512 60971.0 52288 87266 29222.0 131071 17115 53451
1024 112107 90600 165002 46284.0 131071 27819 101117
2048 214379 167224 320474 80408.0 131071 49227 196447
4096 x 320472 631418 160478 262143 92043 387090
8192 x 626968 1253306 308796 524287 177675 768376
16384 x 1239960 2497082 * 1048575 348939 1530965

Peak Memory (GB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
256 5.09 4.31 1.22 1.15 9.63 2.66 4.4 0.58 1.18
512 4.91 4.29 1.25 1.16 18.94 2.65 4.4 1.15 1.19
1024 4.9 4.57 1.33 2.3 35.74 2.7 4.42 1.16 1.21
2048 4.9 5.01 1.5 4.59 35.75 2.71 4.65 2.3 1.24
4096 x 6.09 1.82 9.15 71.57 2.87 4.73 4.59 1.32
8192 x 8.26 2.46 9.18 142.77 3.17 5.44 9.16 1.46
16384 x 12.96 4.41 9.18 * 3.76 6.89 9.18 1.76

Sha2-Chain

Benchmark Sha256 hash of 32 bytes for n iteration.

Prover Time (s)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
8 1.526 4.993 8.724 5.882 9.362 2.868 3.436 3.033 7.384
16 2.192 5.659 9.671 5.865 9.795 2.722 3.397 3.073 7.579
32 3.871 6.422 12.364 11.369 9.745 2.579 3.538 3.013 7.581
64 7.105 8.312 17.268 22.614 9.575 2.886 3.571 5.859 8.041
128 12.614 13.641 27.652 45.159 18.25 2.725 3.937 5.894 8.501
256 25.265 25.991 52.698 57.442 25.371 2.755 5.485 11.462 9.964
512 47.808 25.239 102.218 112.223 56.474 2.828 8.775 22.608 12.352
1024 92.338 36.896 203.878 225.054 94.504 3.083 15.985 45.164 17.401
2048 x 70.326 329.925 417.449 * 3.685 31.189 90.441 28.385
4096 x 124.759 656.719 832.116 * 4.458 54.085 146.118 49.37

Verifier Time (ms)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
8 37.0 141 50 21 338.0 11 384 20 64
16 39.0 139 50 21 323.0 11 383 21 64
32 78.0 159 50 20 315.0 11 391 20 63
64 40.0 139 49 20 317.0 11 397 20 64
128 42.0 142 50 17 303.0 11 385 10 64
256 74.0 144 50 23 335.0 11 383 20 64
512 104.0 316 51 36 330.0 11 384 12 64
1024 58.0 448 52 65 347.0 11 409 19 63
2048 x 787 100 124 * 36 503 25 64
4096 x 1339 151 238 * 44 629 49 63

Proof Size (KB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
8 181.495 1799.82 811.409 244.442 106.696 907.708 5674.59 221.402 911.697
16 191.263 1799.82 811.409 244.442 107.176 919.924 5674.59 221.402 911.697
32 201.447 1799.82 811.409 256.154 108.776 916.9 5674.59 221.402 911.697
64 212.047 1799.82 811.409 268.378 106.216 962.184 5674.59 244.442 911.697
128 223.063 1875.85 811.409 281.626 111.592 942.304 5674.59 244.442 911.697
256 234.495 1955.08 844.705 537.404 114.792 934.536 5674.59 256.154 911.697
512 246.343 4735.95 879.345 830.878 123.304 930.336 5674.59 268.378 911.697
1024 258.607 6539.66 915.329 1406.63 130.088 940.264 5750.62 281.626 911.697
2048 x 11633.8 1742.7 2787.4 * 941.284 7449.63 562.876 911.697
4096 x 20335.4 2675.33 5330.88 * 962.028 9452.77 1099.9 911.697

Cycle Count

n jolt sp1 r0 stone stwo sp1-precompile r0-precompile
8 69356.0 47296 44730 2997.0 65535 14248 14778
16 136412 83672 80858 5861.0 65535 21248 20954
32 270524 156424 153114 11589.0 65535 35248 33306
64 538748 301928 297626 23045.0 65535 63248 58010
128 1075213 592936 586650 45957.0 65535 119248 107418
256 2148109 1174952 1164698 91781.0 131071 231248 206234
512 4293901 2338984 2320794 183429 262143 455248 403866
1024 8585485 4667048 4632986 366725 524287 903248 799130
2048 x 9323176 9257370 * 1048575 1799248 1589658
4096 x 18635432 18506138 * 2097151 3591248 3170714

Peak Memory (GB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile
8 5.09 4.31 1.25 1.15 9.1 2.57 4.39 0.58 1.18
16 4.9 4.57 1.32 1.16 9.04 2.58 4.46 0.58 1.18
32 5.79 5.03 1.49 2.3 9.04 2.58 4.56 0.58 1.19
64 8.67 6.12 1.79 4.58 9.04 2.6 4.56 1.15 1.21
128 14.46 8.13 2.4 9.14 17.88 2.61 5.06 1.16 1.25
256 26.21 13.35 4.3 9.17 29.73 2.67 6.2 2.3 1.33
512 48.55 14.86 8.13 9.17 59.33 2.79 7.42 4.59 1.49
1024 93.08 26.98 15.8 9.17 118.82 3.02 11.13 9.15 1.81
2048 x 44.18 20.15 9.18 * 3.48 19.53 9.17 2.47
4096 x 44.15 20.16 9.18 * 4.7 33.89 9.17 3.75

Sha3

Benchmark Keccak256 hash of n bytes. For Stone, the implementation of Keccak256 from stdlib as well as builtin was benchmarked.

Prover Time (s)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
256 1.166 5.181 8.632 5.814 19.131 2.6 3.234 24.073 7.575 15.781
512 1.513 5.646 9.602 11.397 31.922 2.646 3.379 26.09 7.671 16.317
1024 2.402 6.661 12.433 11.413 67.444 2.817 3.237 32.07 8.146 16.891
2048 4.167 8.282 17.16 22.414 117.651 3.073 3.356 32.132 8.619 15.829
4096 x 13.843 21.932 44.79 * 3.682 3.555 43.796 9.856 25.902
8192 x 25.786 37.391 89.998 * 4.499 4.46 65.887 12.613 41.13
16384 x 23.059 70.308 179.33 * 4.809 6.791 111.091 18.053 83.958

Verifier Time (ms)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
256 51.0 140 53 20 401.0 11 531 20 155 220
512 43.0 139 52 20 400.0 11 531 20 156 201
1024 71.0 141 52 20 403.0 11 530 21 156 203
2048 55.0 166 53 12 439.0 11 531 21 156 199
4096 x 169 52 19 * 11 530 22 156 193
8192 x 162 52 25 * 12 531 22 156 208
16384 x 310 53 49 * 11 550 34 156 216

Proof Size (KB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
256 170.823 1799.82 832.297 244.442 116.2 974.964 5785.69 444.535 1556.5 108.008
512 180.175 1799.82 832.297 256.154 119.272 973.56 5785.69 467.575 1556.5 107.752
1024 189.943 1799.82 832.297 256.154 126.056 968.968 5785.69 479.287 1556.5 110.312
2048 200.127 1799.82 832.297 268.378 132.84 975.608 5785.69 479.287 1556.5 110.056
4096 x 1875.85 832.297 281.626 * 991.06 5785.69 491.511 1556.5 114.92
8192 x 1955.08 832.297 562.876 * 1008.38 5785.69 504.759 1556.5 119.848
16384 x 4659.92 865.593 1125.38 * 1003.53 5785.69 786.009 1556.5 126.088

Cycle Count

n jolt sp1 r0 stone stwo sp1-precompile r0-precompile stone-builtin
256 46856.0 46003 63303 19420.0 131071 13765 36501 998
512 90422.0 83242 121245 38600.0 131071 18766 64021 1762
1024 177554 157707 237129 59047.0 262143 28755 119061 3286
2048 351866 306632 468897 117848 524287 48728 229141 6334
4096 x 587972 916134 * 1048575 88283 448213 12241
8192 x 1150639 1810608 * 2097151 167380 886357 24055
16384 x 2275984 3599556 * 2097151 325585 1762645 47683

Peak Memory (GB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
256 5.09 4.3 1.25 1.15 19.03 2.65 4.12 3.45 1.23 11.07
512 4.9 4.59 1.32 2.3 35.78 2.69 4 3.45 1.24 11.07
1024 4.9 5.04 1.48 2.3 71.55 2.8 4.05 3.45 1.26 11.07
2048 5.82 6.15 1.78 4.59 142.74 3.03 4.16 3.45 1.31 11.07
4096 x 8.54 2.07 9.17 * 3.68 4.39 4.59 1.4 21.97
8192 x 12.9 2.94 9.17 * 4.92 4.7 9.16 1.58 43.9
16384 x 11.99 5.4 9.18 * 5.36 5.91 9.17 1.96 87.23

Sha3-Chain

Benchmark Keccak256 hash of 32 bytes for n iteration.

Prover Time (s)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
8 2.481 6.533 10.602 11.387 67.345 2.846 3.365 23.298 7.626 15.826
16 3.99 8.432 14.158 22.633 118.349 3.133 3.35 26.373 7.68 15.734
32 7.522 13.789 21.259 45.054 * 3.626 3.326 27.072 8.236 25.707
64 13.651 25.796 35.504 50.801 * 4.585 3.392 31.977 9.126 41.801
128 26.783 22.814 68.366 102.685 * 7.879 3.766 42.572 10.783 83.978
256 50.965 30.845 136.042 202.335 * 14.139 5.169 65.942 14.402 146.807
512 100.764 53.405 267.191 405.196 * x 8.137 68.989 21.452 *
1024 x 99.244 546.345 793.753 * x 14.137 139.083 36.416 *
2048 x 196.044 1066.58 1576.58 * x 27.559 280.385 64.867 *
4096 x 360.793 2124.01 3136.24 * x 42.007 546.264 123.191 *

Verifier Time (ms)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
8 57.0 139 49 11 414.0 11.0 544 20 153 209.0
16 45.0 160 49 21 443.0 11.0 549 20 155 209.0
32 75.0 142 49 19 * 12.0 531 20 154 213.0
64 63.0 145 50 23 * 12.0 530 21 153 218.0
128 93.0 314 50 36 * 12.0 531 21 153 224.0
256 47.0 442 51 63 * 13.0 532 23 155 246.0
512 91.0 645 52 112 * x 536 32 154 *
1024 x 1100 102 224 * x 562 44 153 *
2048 x 1990 203 432 * x 563 69 153 *
4096 x 3904 403 883 * x 684 120 154 *

Proof Size (KB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
8 191.263 1799.82 811.409 256.154 124.904 993.304 5785.69 444.535 1538.61 109.8
16 201.447 1799.82 811.409 268.378 131.112 1017.196 5785.69 467.575 1538.61 108.264
32 212.047 1875.85 811.409 281.626 * 1034.616 5785.69 467.575 1538.61 115.944
64 223.063 1955.08 811.409 525.692 * 1042.476 5785.69 479.287 1538.61 122.856
128 234.495 4659.92 844.705 818.654 * 1091.6 5785.69 491.511 1538.61 123.304
256 246.343 6384.39 879.345 1393.38 * 1131.464 5785.69 504.759 1538.61 131.944
512 258.607 9833.33 915.329 2531.63 * x 5785.69 725.785 1538.61 *
1024 x 16807.3 1813.32 5049.63 * x 5861.73 1007.03 1538.61 *
2048 x 30682.3 3609.31 9844.13 * x 5940.96 1569.54 1538.61 *
4096 x 59843 7201.28 19674.6 * x 7716 2717.57 1538.61 *

Cycle Count

n jolt sp1 r0 stone stwo sp1-precompile r0-precompile stone-builtin
8 203610 145819 145881 57637.0 262143 16867 27813 3480.0
16 404922 281235 283329 115174 524287 23331 43573 6904.0
32 807546 552067 558225 * 1048575 36259 75093 13752.0
64 1612794 1093731 1108017 * 2097151 62115 138133 27448.0
128 3223307 2177059 2207601 * 4194303 113827 264213 54840.0
256 6444299 4343715 4406769 * 8388607 217251 516373 109624
512 12886283 8677027 8805105 * x 424099 1020693 *
1024 x 17343651 17601777 * x 837795 2034194 *
2048 x 34676899 35195121 * x 1665187 4061208 *
4096 x 69343395 70381809 * x 3319971 8110124 *

Peak Memory (GB)

n jolt sp1 openvm r0 stone stwo sp1-precompile r0-precompile openvm-precompile stone-builtin
8 5.09 5.01 1.38 2.3 71.67 2.77 3.97 3.45 1.23 11.07
16 5.82 6.11 1.61 4.58 142.67 2.96 4.03 3.45 1.25 11.07
32 8.81 8.48 2.03 9.14 * 3.61 4.26 3.45 1.29 21.98
64 14.81 12.71 2.87 9.17 * 4.92 4.34 3.45 1.36 43.91
128 26.85 11.53 5.26 9.18 * 8.49 4.41 4.57 1.5 87.27
256 50.41 20.45 10.04 9.18 * 16.07 5.28 9.13 1.79 174.41
512 98.74 43.45 19.51 9.18 * x 7.25 9.16 2.36 *
1024 x 45.25 19.52 9.19 * x 8.86 9.16 3.5 *
2048 x 55.71 19.52 9.2 * x 13.97 9.16 5.78 *
4096 x 55.17 19.95 9.22 * x 33.84 9.17 10.78 *

Matrix Multiplication

Benchmark multiplication of two matrices of size n x n.

Prover Time (s)

n jolt sp1 openvm r0 stone stwo
4 0.922 5.141 7.378 1.618 15.487 2.59
8 1.227 5.152 7.883 3.019 24.453 2.616
16 4.108 6.501 10.673 11.438 70.538 3.337
32 26.037 25.405 36.508 58.826 * 4.287
64 x 75.756 277.29 404.705 * 18.777

Verifier Time (ms)

n jolt sp1 openvm r0 stone stwo
4 37.0 140 52 15 311.0 10
8 36.0 139 52 19 306.0 10
16 45.0 140 52 20 356.0 10
32 64.0 170 52 23 * 45
64 x 762 55 115 * 17

Proof Size (KB)

n jolt sp1 openvm r0 stone stwo
4 153.767 1799.79 829.609 209.506 104.68 817.692
8 170.823 1799.79 829.609 221.154 111.08 832.348
16 200.127 1799.79 829.609 255.906 124.04 850.28
32 234.807 1955.05 829.609 537.156 * 843.452
64 x 11713 933.529 2531.38 * 906.636

Cycle Count

n jolt sp1 r0 stone stwo
4 9107.0 8489 6033 6371.0 131071
8 56283.0 25474 23029 37627.0 131071
16 419008 152551 150141 259691 524287
32 3282080 1144749 1142413 * 2097151
64 x 9005881 9003693 * 16777215

Peak Memory (GB)

n jolt sp1 openvm r0 stone stwo
4 5.09 4.26 1.16 0.3 9.56 2.59
8 4.9 4.33 1.2 0.58 18.22 2.61
16 5.87 5.07 1.39 2.29 71.91 2.94
32 27.18 13.11 2.94 9.17 * 4.47
64 x 38.98 20.11 9.17 * 21.94