TomWambsgans/Whirlaway

A pqSNARK with lightweight proofs, powered by the Whir PCS.

Rust

45

250 commits

updated Sep 11, 2025

See the code

README

Whirlaway 🐎

A hash-based SNARK with lightweight proofs, powered by the Whir Polynomial Commitment Scheme.

Development has moved to: leanMultisig

The latest PRs included in Whirlaway will be included in leanMultisig eventually.

Proving System

The protocol is detailed in Whirlaway.pdf

The core argument builds upon SuperSpartan (Srinath Setty, Justin Thaler, Riad Wahby), with AIR-specific optimizations developed by William Borgeaud in A simple multivariate AIR argument inspired by SuperSpartan.

Key techniques:

Poseidon2 Benchmark

RUSTFLAGS='-C target-cpu=native' cargo run --release

CPU: 75K poseidon2 / s (i9-12900H) -> easy 100K with Ring Switching / Univariate Skip in WHIR

GPU: 1M poseidon2 / s (RTX 4090) -> switch to branch gpu

Credits

  • Plonky3 for its finite field crates and poseidon2 AIR arithmetization (src/examples/poseidon2_koala_bear).
  • whir-p3: a Plonky3-compatible WHIR implementation

Contributors

TomWambsgans

192 commits

tcoratger

38 commits

ColoCarletti

9 commits

nicole-graus

8 commits

TomWambsgans/Whirlaway

A pqSNARK with lightweight proofs, powered by the Whir PCS.

Rust

45

250 commits

updated Sep 11, 2025

See the code

README

Whirlaway 🐎

A hash-based SNARK with lightweight proofs, powered by the Whir Polynomial Commitment Scheme.

Development has moved to: leanMultisig

The latest PRs included in Whirlaway will be included in leanMultisig eventually.

Proving System

The protocol is detailed in Whirlaway.pdf

The core argument builds upon SuperSpartan (Srinath Setty, Justin Thaler, Riad Wahby), with AIR-specific optimizations developed by William Borgeaud in A simple multivariate AIR argument inspired by SuperSpartan.

Key techniques:

Poseidon2 Benchmark

RUSTFLAGS='-C target-cpu=native' cargo run --release

CPU: 75K poseidon2 / s (i9-12900H) -> easy 100K with Ring Switching / Univariate Skip in WHIR

GPU: 1M poseidon2 / s (RTX 4090) -> switch to branch gpu

Credits

  • Plonky3 for its finite field crates and poseidon2 AIR arithmetization (src/examples/poseidon2_koala_bear).
  • whir-p3: a Plonky3-compatible WHIR implementation

Contributors

TomWambsgans

192 commits

tcoratger

38 commits

ColoCarletti

9 commits

nicole-graus

8 commits

Languages

Rust

100.0%