We present , a read-write streaming Groth16 prover that reduces random-access working memory from to once the CRS, QAP, and witness are materialized as private streams. It preserves the standard Groth16 interface: a proof of 3 group elements, 3-pairing verification, and unchanged verifier contracts.
Our key technical contribution is (), an NTT algorithm in the read-write streaming model with memory, total I/O, and sequential passes over external storage.
Combining SBM with streaming sparse R1CS evaluation and chunked Pippenger MSM yields a verifier-compatible Groth16 proving path that exchanges RAM for sequential storage I/O and wall-clock time. Our prototype uses a fixed-window MSM engineering point; the measurements validate memory reduction and proof compatibility, while the theorem states the asymptotically tuned MSM schedule.
We implement over BN-254. Direct prove-only runs produce valid 128-byte proofs through . The same-size bounded-memory comparison is at : succeeds under an 8GB Linux cgroup cap, whereas the standard prover is killed under 8GB and 12GB caps and succeeds only at 16GB. These results position as a storage-rich, RAM-limited proving option rather than a replacement for optimized in-memory provers.


