The following benchmarks compare three different commitment schemes: Merkle Tree with LDE, Pedersen Commitments, and Ajtai Hash-based Commitments. These benchmarks were performed on:

CPU: Intel i7-12700F (single core)

RAM: 32GB

OS: Linux(Archlinux)

Repository: https://github.com/NethermindEth/commitment-schemes-comparison

Each scheme was tested with varying configurations:

Merkle tree + LDE

These benchmarks were conducted using the Goldilocks field (modulus 2^64 - 2^32 + 1),

Keccak

Witness length Blow-up factor LDE size LDE time Commit time
2^16 2 2^17 4.4ms 51.6ms
2^16 4 2^18 7.5ms 103.1ms
2^16 8 2^19 13.0ms 206.0ms
2^17 2 2^18 11.3ms 103.0ms
2^17 4 2^19 16.4ms 206.2ms
2^17 8 2^20 27.4ms 412.3ms
2^18 2 2^19 25.1ms 206.2ms
2^18 4 2^20 35.05ms 412.5ms
2^18 8 2^21 63.3ms 824.1ms
2^19 2 2^20 52.6ms 412.6ms
2^19 4 2^21 76.1ms 825.0ms
2^19 8 2^22 137.7ms 1653.0ms
2^20 2 2^21 109.7ms 824.5ms
2^20 4 2^22 168.7ms 1651.8ms
2^20 8 2^23 311.9ms 3.3s

Poseidon

Witness length Blow-up factor LDE size LDE time Commit time
2^16 2 2^17 4.3ms 530.3ms
2^16 4 2^18 7.5ms 1060.6ms
2^16 8 2^19 13.0ms 2.1s
2^17 2 2^18 11.3ms 1063.0ms
2^17 4 2^19 16.3ms 2.1s
2^17 8 2^20 27.5ms 4.2s
2^18 2 2^19 25.0ms 2.1s
2^18 4 2^20 35.3ms 4.2s
2^18 8 2^21 60.3ms 8.5s
2^19 2 2^20 52.5ms 4.2s
2^19 4 2^21 74.1ms 8.5s
2^29 8 2^22 137.8ms 17.1s
2^20 2 2^21 107.3ms 8.5s
2^20 4 2^22 167.7ms 17.0s
2^20 8 2^23 310.5ms 33.9s

Poseidon 2

Witness length Blow-up factor LDE size LDE time Commit time
2^16 2 2^17 4.3m 227.9ms
2^16 4 2^18 7.5ms 455.8ms
2^16 8 2^19 13.0ms 912.3ms
2^17 2 2^18 11.3ms 456.1ms
2^17 4 2^19 16.3ms 911.4ms
2^17 8 2^20 27.6ms 1823.2ms
2^18 2 2^19 25.1ms 912.2ms
2^18 4 2^20 35.0ms 1822.6ms
2^18 8 2^21 62.1ms 3.6s
2^19 2 2^20 52.6ms 1823.6ms
2^19 4 2^21 76.1ms 3.6s
2^29 8 2^22 137.9ms 7.3s
2^20 2 2^21 109.1ms 3.6s
2^20 4 2^22 165.7ms 7.3s
2^20 8 2^23 312.3ms 14.6s

Pedersen

Witness length Witness type Commit time
2^16 1 in all entries 19.3ms
2^16 (Mod -1)/2 in all entries 132.1ms
2^16 Random witness 305.3ms
2^17 1 in all entries 39.0ms
2^17 (Mod -1)/2 in all entries 256.3ms
2^17 Random witness 589.9ms
2^18 1 in all entries 89.5ms
2^18 (Mod -1)/2 in all entries 469.2ms
2^18 Random witness 1142.5ms
2^19 1 in all entries 179.6ms
2^19 (Mod -1)/2 in all entries 931.7ms
2^19 Random witness 2.1s
2^20 1 in all entries 345.8ms
2^20 (Mod -1)/2 in all entries 1846.1ms
2^20 Random witness 4.1s