ProveKit, measured against the field
A reproducible input-to-proof comparison against Noir + Barretenberg and Circom + Groth16. Real claims, a mid-tier iPhone, a 2 GB Android phone, and a multithreaded browser—with every gap and trade-off kept visible.
Try ProveKit right here, right now Try the demo
Edit the private input and generate a real zero-knowledge proof in your browser. Witness never leaves this page; only the public hash + proof get published.
revealed after proof How these numbers were captured
The headline clock starts with frozen structured input and ends with serialized proof bytes, so witness generation is included. Cold and warm modes were recorded separately; charts use cold medians. Each runnable lane had to accept a valid proof and reject a tampered proof.
iPhone SE 3 proving time
On a mid-tier 2022 phone, ProveKit finishes the demanding Passport and WebAuthn claims in about three seconds from structured input to serialized proof.
- iPhone SE 2022, iOS 15.4, native execution
- Raw input → witness → serialized proof
- Median of five measured samples after one warmup
Moto E15 proving time
On a 2 GB, 32-bit Android phone, ProveKit keeps Passport P1 and WebAuthn below 30 seconds. Circom WebAuthn cannot complete its cold run because the proving key exhausts memory.
- Moto E15, Android 14 Go, 2 GB, 32-bit userspace
- Circom WebAuthn cold run failed allocating its 1.73 GB zkey
- Failed attempts are explicit gaps, never plotted as zero
Browser proving time
Chrome on an M4 Max used fixed 16-worker policies. ProveKit stays in the same interactive range across all claims; SnarkJS WebAuthn reached extreme memory pressure and produced no proof.
- Chrome 151 on an Apple M4 Max MacBook Pro
- Fixed 16-worker publication policy
- SnarkJS WebAuthn stalled after extreme renderer memory pressure
Download required to prove
ProveKit needs no trusted setup and ships only a small circuit-specific proving payload. The alternatives require tens of megabytes to more than a gigabyte.
- Deduplicated circuit-specific proving payload
- Excludes app bundles, test harnesses, and device uploads
- Barretenberg includes reusable universal setup material
Serialized proof size
Transparent, post-quantum proofs are larger than pairing-based proofs, but every measured ProveKit proof remains below the product target of one megabyte.
- Exact serialized proof bytes
- Larger proofs are the transparent, post-quantum trade-off
- All ProveKit results remain below one megabyte
Memory on the low-end phone
Peak process RSS stays below the one-gigabyte design goal for every successful Moto E15 run. The missing Circom WebAuthn result is an out-of-memory gap, not a zero.
- Peak process RSS for successful cold samples
- Median of five measured samples
- Circom WebAuthn is unavailable because the 32-bit process ran out of memory
Passport P1, side-by-side
One circuit across six categories: input-to-proof time on iPhone, low-end Android, and the browser, followed by proving payload, proof size, and peak memory on the Moto E15.