SSZKP — Sublinear-Space Zero-Knowledge Proofs (Rust, KZG/BN254)
A reference implementation of the sublinear-space ZKP prover/Verifier described in our whitepaper: "Zero-knowledge Proofs in Sublinear Space" (https://arxiv.org/abs/2509.05326). It realizes a streaming prover that uses only O(√T) memory over a trace of length T, while producing standard KZG commitments (BN254) for wires, the permutation accumulator Z , and the quotient Q . The design keeps aggregate-only Fiat–Shamir and never materializes whole polynomials.
Why this matters
Traditional zk proving pipelines routinely buffer whole polynomials, forcing O(T) memory and large intermediate states. This repository demonstrates a practical alternative:
Sublinear space: the active working set stays O(√T) using blocked IFFTs and streaming accumulators.
the active working set stays using blocked IFFTs and streaming accumulators. Production-style commitments: standard KZG commitments/openings (pairing-checked) over BN254 .
standard commitments/openings (pairing-checked) over . No full-poly buffers: wires, Z , and Q are built and opened without holding entire vectors.
wires, , and are built and opened holding entire vectors. Deterministic dev SRS: easy to run locally; switch to trusted SRS files for production.
If you’re building scalable zk systems, this repo shows how to restructure your pipeline around streaming and aggregate-only FS without giving up familiar cryptographic backends.
Features at a glance
... continue reading