Image

I’ll describe two new memory-checking arguments, Twist and Shout, that exploit repeated structure in the computation to be proved. Shout gives a fast, simple protocol for batch evaluation: proving many evaluations of the same function. By paying a small one-time cost, the prover avoids circuit-based encodings and slashes the per-evaluation cost. Twist extends Shout to efficiently handle read/write memory. Together, Twist and Shout enable SNARKs for CPU execution (zkVMs) that are both simpler and faster than prior work. They also yield a streaming prover with low memory usage, no SNARK recursion required.