We present Sluice\textsf{Sluice}, a read-write streaming Groth16 prover that reduces prove-phase\textit{prove-phase} random-access working memory from O(N)\mathcal{O}(N) to O(logN)\mathcal{O}(\log N) 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 Split-Butterfly-Merge\textit{Split-Butterfly-Merge} (SBM\mathsf{SBM}), an NTT algorithm in the read-write streaming model with O(logN)\mathcal{O}(\log N) memory, O(NlogN)\mathcal{O}(N \log N) total I/O, and O(logN)\mathcal{O}(\log N) 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 Sluice\textsf{Sluice} over BN-254. Direct prove-only runs produce valid 128-byte proofs through N=225N=2^{25}. The same-size bounded-memory comparison is at N=223N=2^{23}: Sluice\textsf{Sluice} 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 Sluice\textsf{Sluice} as a storage-rich, RAM-limited proving option rather than a replacement for optimized in-memory provers.