zk SNARK on BN254 . written in Rust . 156 tests pass

Everything Groth16 is.
And More.

A small classical proof, about 128 bytes on BN254, with separate paths for universal setup, aggregation, folding and a post quantum direction. Research software built on arkworks, not one artifact that does everything at once.

128core proof bytes, BN254
3 to 5pairings to verify
N to 1proof aggregation
PQmigration path
Why size matters

Proof size, to scale

Smaller proofs cost less to verify onchain and move faster across a network. Drag the slider. UniGroth stays flat while the others grow.

Circuit size 2 to the 14

Bars use a log scale so a 50 KB STARK proof and a 192 byte proof fit side by side. Hover a row for the exact size.

Live and real

Bind a secret to a statement

Enter a secret and a public statement. UniGroth binds both with SHA256 into a commitment that reveals nothing about the secret and breaks if any byte changes. This is the binding and tamper check the post quantum module performs today. It is not yet a full zero knowledge proof that the secret satisfies a circuit. It runs in your browser and nothing is sent anywhere.

01Your secretstays private
02Public statementeveryone sees this
03Binding schemepost quantum target, SHA256 today
Binius . 256 B Plonky3 . 512 B Hybrid . 516 B
Commitment
VALID

Change one character above, or press tamper, and the check fails at once. The same secret and statement always bind to the same commitment. This shows binding and tamper detection, not a soundness proof.

Many into one

Aggregate a batch into one check

Checking many proofs one by one is slow. SnarkPack aggregation combines a batch so the verifier does one check instead of many. The aggregate grows like log N, so it is kilobytes, not the tiny core proof. Drag to set the batch size.

Proofs in the batch 8
fold into one root

One system

What it adds to Groth16

Every limitation removed, and the tiny proof stays.

001

Universal setup

One updatable ceremony covers every circuit of a given size. No setup per circuit.

002

Simulation extractable

Groth16 is already sound. UniGroth adds non malleability, so a proof cannot be reshaped after an attacker sees other valid ones.

003

Aggregation

Fold N proofs into one. Verify a batch of 32 for the cost of one, about 32 times cheaper.

004

Folding and IVC

ProtoStar accumulation with a full relaxed R1CS decision predicate. Fold, then verify once.

005

Post quantum direction

A research scaffold. Today it binds witnesses with SHA256. FRI and sumcheck designs are the target and are not yet built, so it is not a quantum security guarantee.

006

Onchain verifier

Generate a Solidity verifier from any key. About 250k gas using the BN254 precompiles.

007

Custom gates

Plonkish gates like Poseidon and EC add, lookup tables, and a path back to R1CS.

008

Key compression

Shrink a verifying key from order n to order one. Built for large zkEVM circuits.

009

Streaming prover

Run the heavy steps in chunks with bounded memory, for circuits too large for RAM.

Head to head

Against the field

The same comparison the whitepaper draws, in full.

Groth16PLONKMarlinHalo2STARKsUniGroth
Proof size192 B1 to 2 KB2 to 5 KB5 to 15 KB50 to 200 KB192 to 256 B
Verify cost3 pairings10 plus15 plusvariesfast hash3 to 5 pairings
Trusted setupper circuituniversaluniversalnonenoneuniversal
Simulation extractablenonononon ayes
Folding and IVCnonononovariesyes
Aggregationnonononovariesyes
Post quantumnonononoyespath
Public input proofnononononoyes
Key compressionnonononon ayes
Custom gatesnoyesnoyesyesyes
Onchain verifiermanualmanualnononoauto
How it fits together

The stack

Five layers, from your application down to the tiny pairing based proof.

Application
zkEVM, zkML and private transactions sit on top.
Arithmetization
SAP or Plonkish with custom gates and lookups.
Folding and recursion
ProtoStar IVC with a full decision predicate.
Commitments
KZG built from a universal powers of tau setup.
Compression core
Groth16 style pairing encoding. The final 192 to 256 byte proof.

About 11,870 lines across 28 Rust modules. 156 tests, zero clippy warnings. Read the source.