Flock: Fast Proving for Batch Boolean Computations

arXiv:2607.27491 · cs.CR · Submitted 2026-07-29 · Read on arXiv

Benedikt Bünz, Ron D. Rothblum, William Wang

cs.CR

Submitted: 2026-07-29

Comments: See eprint https://eprint.iacr.org/2026/1329 for up to date version

Code: https://github.com/microsoft/vega-prover

License: http://creativecommons.org/licenses/by-nc-nd/4.0/

The gist: For many applications of SNARKs, a key bottleneck is proving large batches of standard cryptographic hash evaluations, such as SHA-256, Keccak, or BLAKE3.

Terminology

Abstract

For many applications of SNARKs, a key bottleneck is proving large batches of standard cryptographic hash evaluations, such as SHA-256, Keccak, or BLAKE3. We introduce Flock, a hash-based SNARK for extremely fast proving of such batched Boolean computations. Flock proves batches of the same R1CS circuit (plus input/output relations between them), can prove hash-chains and Merkle path openings, and in principle can be extended to full-fledged hash-based signature verification. At its core, Flock combines new optimizations for the lincheck and zerocheck protocols with an aggressively optimized proof-of-concept implementation co-designed by coding agents. On a single core of an M4 Max processor, Flock proves 82k evaluations of the BLAKE3 compression function, 42k SHA-256 compressions, and 30k Keccak permutations per second --- less than a 250 times overhead over native execution. On ten cores, throughput exceeds 660k BLAKE3 compressions per second; in proving SHA-256, Flock is more than 9 times faster than Binius64, the prior state of the art, and more than 500 times faster than the fastest elliptic curve-based SNARK we measured against.

Related papers