Skip to content

Instantly share code, notes, and snippets.

@devfans
Last active February 27, 2025 09:38
Show Gist options
  • Select an option

  • Save devfans/9dcc0fa5604fb3ba007a715b98e061a8 to your computer and use it in GitHub Desktop.

Select an option

Save devfans/9dcc0fa5604fb3ba007a715b98e061a8 to your computer and use it in GitHub Desktop.
ZK ToolKits

ZK ToolKits Benchmarks

Overview

ToolKit Prove Verify Proof Size Prove Recursive Verify Recursive Recursive Proof Size
Mina(o1js) MerkleLeaf(256 Height with PoseidonHash): time: 39456.404ms ± 0.1% 2624.229ms ± 0.3% 31349 bytes 48384.674ms ± 0.1% 2638.434ms ± 0.6% 32813 bytes
Plonky3 2^20 Poseidon2: 1.20s 873813 hashes/s 86.2ms 1227084 bytes Recursive with Plonky2: 23598ms 4ms 162608 bytes
Plonky2 PoseidonGodilocksField 8982 hashes/s 3ms 124544 bytes 267 ms 3 ms 130288 bytes
Expander PoseidonM31 549522 hashes/s 25ms 796032 bytes
SP1 PoseidonBabyBear 1000 552s 1.8 hashes/s 6.63s 81507074 bytes STARK 726s Plonk 72s 2s Compressed: 1315503 bytes Plonk: 868 bytes

Mina(o1js)

MerkleLeaf(PoseidonHash)(256 height) Benchmark: https://github.com/devfans/minazkp

Mina ZK Brief:

Kimchi: Mina’s custom Plonkish arithmetization (a variant of PLONK) optimized for Halo 2. Lookup Arguments: Efficiently handle complex computations (e.g., cryptographic hashes) in circuits.

Pallas (base) and Vesta (scalar) fields, 255-bit primes with a cycle

Plonky3

Poseidon2 hash benchmark: https://github.com/devfans/plonky3

Verify Plonky3 proof in Plonky2: https://github.com/devfans/plonky2.5

Plonky2

Verify Plonky2 PoseidonHash in Goldilocks Field https://github.com/devfans/plonky2bench

PolyHedra Expander GKR

Poseidon M31Ext Field benchmark: https://github.com/devfans/Expander/

SP1-ZKVM

Poseidon BabyBear Field benchmark: https://github.com/devfans/sp1-poseidon-bench/

Poseidon2 vs Poseidon

https://hackernoon.com/benchmarking-the-computation-performance-of-poseidon2-in-plonky3

In 2023, Lorenzo Grassi and others improved the Poseidon hash function, introducing Poseidon2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment