ProveKit, measured against the field
A reproducible look at how ProveKit performs against Barretenberg and Circom across proving time, memory, and setup artifacts, measured on commodity client hardware, with the dataset and methodology published in full below.
Try ProveKit right here, right now Try the demo
Pick a circuit, 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 Run a zero-knowledge proof in your browser
Try Provekit right in your browser
Edit the inputs, then watch a zero-knowledge proof generate live. Nothing leaves this page.
How these numbers were captured
All three toolkits prove the same SHA-256 preimage statement on the same MacBook Air (Apple M2, 16 GB). Timings are full wall clock including witness generation; memory is peak resident set. ProveKit figures reflect the audited v1 branch. Circom is measured with native rapidsnark.
Proving time
ProveKit proves SHA-256 in 0.37 s on a MacBook Air, ahead of Barretenberg at 0.39 s and Circom at 0.40 s, witness generation included.
- SHA-256 preimage circuit · 52,029 R1CS constraints
- Wall clock includes witness generation
- Circom measured with native rapidsnark
Memory footprint
Proving peaks at 118.9 MiB resident, well within a phone-class memory budget.
- Peak resident set while proving
- Circom measured with native rapidsnark
- All three fit comfortably in phone-class memory
Setup artifacts
A device downloads under 1 MiB of ProveKit keys to start proving, against a 128 MiB CRS for Barretenberg or a 50.9 MiB zkey for Circom.
- Everything a device needs before proving: keys under 1 MiB
- Circom additionally needs a 288 MiB ptau for its ceremony
- Hash-based WHIR commitment, no trusted setup ceremony
Side-by-side
Hover a row to compare across toolkits; click a toolkit header to sort by its strongest results. Best value per row reads in brand blue.