Benchmarks
Measured performance of Bubble secure operations by opcode and bit size, compared against standard EVM execution on an AWS m5.large instance.
The table below displays performance metrics for various operations across different bit sizes, calculated using an AWS m5.large instance.
Here's what the columns represent:
- Opcode name: This indicates the specific operation being measured, such as addition (ADD), multiplication (MUL), or bitwise operations like AND, OR, and XOR.
- Bit size: This column specifies the width in bits of the operands being handled in the operation.
- Running 1M circuits operations (milliseconds): This represents the time, in milliseconds, required to complete 1M secure operations using bubble garbled circuits.
- Running 1M standard EVM operations (microseconds): This represents the time, in microseconds, to execute 1M operations using the standard EVM computation. Since EVM implementations consistently use 256-bit processing, the same time value is represented for all bit sizes.
| Opcode name | Bit size | Running 1M circuits operations (milliseconds) | Running 1M standard EVM operations (microseconds) |
|---|---|---|---|
| ADD | 8 | 253.9 | 1671.333333 |
| ADD | 16 | 567.1 | 1671.333333 |
| ADD | 32 | 1072 | 1671.333333 |
| ADD | 64 | 2073.9 | 1671.333333 |
| ADD | 128 | 4309.3 | 1671.333333 |
| ADD | 256 | 8644.4 | 1671.333333 |
| ADDWITHOVERFLOWBIT | 8 | 275.1 | |
| ADDWITHOVERFLOWBIT | 16 | 601 | |
| ADDWITHOVERFLOWBIT | 32 | 1102.1 | |
| ADDWITHOVERFLOWBIT | 64 | 2108.8 | |
| ADDWITHOVERFLOWBIT | 128 | 4246.7 | |
| ADDWITHOVERFLOWBIT | 256 | 8717.5 | |
| AND | 1 | 48.2 | 1419.285714 |
| AND | 8 | 180.4 | 1419.285714 |
| AND | 16 | 330.4 | 1419.285714 |
| AND | 32 | 621.2 | 1419.285714 |
| AND | 64 | 1335.6 | 1419.285714 |
| AND | 128 | 2389.5 | 1419.285714 |
| AND | 256 | 4866.6 | 1419.285714 |
| DIV | 8 | 2330.4 | 16729.33333 |
| DIV | 16 | 8529.8 | 16729.33333 |
| DIV | 32 | 30617.6 | 16729.33333 |
| DIV | 64 | 119583.8 | 16729.33333 |
| DIV | 128 | 527244.4 | 16729.33333 |
| DIV | 256 | 2119190 | 16729.33333 |
| EQ | 1 | 40 | 2804.714286 |
| EQ | 8 | 231.6 | 2804.714286 |
| EQ | 16 | 515 | 2804.714286 |
| EQ | 32 | 972.7 | 2804.714286 |
| EQ | 64 | 1843.1 | 2804.714286 |
| EQ | 128 | 3652.5 | 2804.714286 |
| EQ | 256 | 7487.3 | 2804.714286 |
| GE | 8 | 545.8 | 3100 |
| GE | 16 | 1051 | 3100 |
| GE | 32 | 2020.1 | 3100 |
| GE | 64 | 4032.6 | 3100 |
| GE | 128 | 8264.2 | 3100 |
| GE | 256 | 16543.6 | 3100 |
| GT | 8 | 724.2 | 3081 |
| GT | 16 | 1415 | 3081 |
| GT | 32 | 2720.7 | 3081 |
| GT | 64 | 5627.1 | 3081 |
| GT | 128 | 11078.1 | 3081 |
| GT | 256 | 22516.5 | 3081 |
| LE | 8 | 732.1 | 3099 |
| LE | 16 | 1425.6 | 3099 |
| LE | 32 | 2751.6 | 3099 |
| LE | 64 | 5647.5 | 3099 |
| LE | 128 | 11211.6 | 3099 |
| LE | 256 | 22526.8 | 3099 |
| LT | 8 | 548.9 | 3190.5 |
| LT | 16 | 1042.5 | 3190.5 |
| LT | 32 | 2041.6 | 3190.5 |
| LT | 64 | 4055.5 | 3190.5 |
| LT | 128 | 8264.3 | 3190.5 |
| LT | 256 | 16384.7 | 3190.5 |
| MAX | 1 | 86.4 | 3741.333333 |
| MAX | 8 | 751.1 | 3741.333333 |
| MAX | 16 | 1443.3 | 3741.333333 |
| MAX | 32 | 2780.4 | 3741.333333 |
| MAX | 64 | 5732.8 | 3741.333333 |
| MAX | 128 | 11435.1 | 3741.333333 |
| MAX | 256 | 22926 | 3741.333333 |
| MIN | 1 | 82.1 | 4061.5 |
| MIN | 8 | 737.9 | 4061.5 |
| MIN | 16 | 1438.4 | 4061.5 |
| MIN | 32 | 2825.9 | 4061.5 |
| MIN | 64 | 5716.3 | 4061.5 |
| MIN | 128 | 11432.6 | 4061.5 |
| MIN | 256 | 22835.5 | 4061.5 |
| MUL | 8 | 1350.9 | 7486.833333 |
| MUL | 16 | 5659.2 | 7486.833333 |
| MUL | 32 | 28455.3 | 7486.833333 |
| MUL | 64 | 95155.3 | 7486.833333 |
| MUL | 128 | 434665.2 | 7486.833333 |
| MUL | 256 | 1765153.6 | 7486.833333 |
| MULFULLSIZE | 8 | 2718.4 | |
| MULFULLSIZE | 16 | 12019.2 | |
| MULFULLSIZE | 32 | 48161.9 | |
| MULFULLSIZE | 64 | 207799.1 | |
| MULFULLSIZE | 128 | 884389 | |
| MULFULLSIZE | 256 | 3671646.6 | |
| MULWITHOVERFLOWBIT | 8 | 2886.7 | |
| MULWITHOVERFLOWBIT | 16 | 12278.9 | |
| MULWITHOVERFLOWBIT | 32 | 48421.8 | |
| MULWITHOVERFLOWBIT | 64 | 209573.1 | |
| MULWITHOVERFLOWBIT | 128 | 886143.5 | |
| MULWITHOVERFLOWBIT | 256 | 3633495.2 | |
| MUX | 1 | 56 | 1306 |
| MUX | 8 | 233.4 | 1306 |
| MUX | 16 | 448 | 1306 |
| MUX | 32 | 913.6 | 1306 |
| MUX | 64 | 1704.9 | 1306 |
| MUX | 128 | 3415.3 | 1306 |
| MUX | 256 | 6881.2 | 1306 |
| NE | 1 | 36.3 | 2710.142857 |
| NE | 8 | 233 | 2710.142857 |
| NE | 16 | 512 | 2710.142857 |
| NE | 32 | 956.5 | 2710.142857 |
| NE | 64 | 1818.2 | 2710.142857 |
| NE | 128 | 3669.1 | 2710.142857 |
| NE | 256 | 7433 | 2710.142857 |
| NOT | 1 | 36.2 | 446 |
| OFFBOARD | 1 | 278400.6 | 35023 |
| OFFBOARD | 8 | 280640.8 | 35023 |
| OFFBOARD | 16 | 278539.1 | 35023 |
| OFFBOARD | 32 | 278507.1 | 35023 |
| OFFBOARD | 64 | 280620.3 | 35023 |
| OFFBOARD | 128 | 278364.3 | 35023 |
| OFFBOARD | 256 | 574910.4 | 35023 |
| ONBOARD | 1 | 281690.8 | 35023 |
| ONBOARD | 8 | 280591.5 | 35023 |
| ONBOARD | 16 | 280958.4 | 35023 |
| ONBOARD | 32 | 280668.9 | 35023 |
| ONBOARD | 64 | 280757.4 | 35023 |
| ONBOARD | 128 | 280918.3 | 35023 |
| ONBOARD | 256 | 576806.3 | 35023 |
| OR | 1 | 60.8 | 1350.285714 |
| OR | 8 | 269.4 | 1350.285714 |
| OR | 16 | 562.3 | 1350.285714 |
| OR | 32 | 991.9 | 1350.285714 |
| OR | 64 | 1882 | 1350.285714 |
| OR | 128 | 3829.6 | 1350.285714 |
| OR | 256 | 7659.3 | 1350.285714 |
| REM | 8 | 2340.5 | 17872.83333 |
| REM | 16 | 8520.4 | 17872.83333 |
| REM | 32 | 31105.5 | 17872.83333 |
| REM | 64 | 122639.9 | 17872.83333 |
| REM | 128 | 528399.2 | 17872.83333 |
| REM | 256 | 2108571.5 | 17872.83333 |
| SUB | 8 | 558.4 | 1695.333333 |
| SUB | 16 | 1074.5 | 1695.333333 |
| SUB | 32 | 2045.5 | 1695.333333 |
| SUB | 64 | 4225.7 | 1695.333333 |
| SUB | 128 | 8482.6 | 1695.333333 |
| SUB | 256 | 16852.8 | 1695.333333 |
| SUBWITHOVERFLOWBIT | 8 | 559.8 | |
| SUBWITHOVERFLOWBIT | 16 | 1092.3 | |
| SUBWITHOVERFLOWBIT | 32 | 2048.2 | |
| SUBWITHOVERFLOWBIT | 64 | 4219.9 | |
| SUBWITHOVERFLOWBIT | 128 | 8392.4 | |
| SUBWITHOVERFLOWBIT | 256 | 23483.5 | |
| TRANSFER | 8 | 1172.8 | 3927.166667 |
| TRANSFER | 16 | 2318.7 | 3927.166667 |
| TRANSFER | 32 | 4670 | 3927.166667 |
| TRANSFER | 64 | 9428.3 | 3927.166667 |
| TRANSFER | 128 | 18882.9 | 3927.166667 |
| TRANSFER | 256 | 38495.1 | 3927.166667 |
| TRANSFERWITHALLOWANCE | 8 | 2465 | |
| TRANSFERWITHALLOWANCE | 16 | 5209.7 | |
| TRANSFERWITHALLOWANCE | 32 | 10336.6 | |
| TRANSFERWITHALLOWANCE | 64 | 20661.4 | |
| TRANSFERWITHALLOWANCE | 128 | 41453.2 | |
| TRANSFERWITHALLOWANCE | 256 | 83761.5 | |
| XOR | 1 | 39.3 | 1334.571429 |
| XOR | 8 | 78 | 1334.571429 |
| XOR | 16 | 122.7 | 1334.571429 |
| XOR | 32 | 216 | 1334.571429 |
| XOR | 64 | 451.4 | 1334.571429 |
| XOR | 128 | 807 | 1334.571429 |
| XOR | 256 | 1586.5 | 1334.571429 |