Search papers, labs, and topics across Lattice.
Guppy decouples state commitment overhead from the critical consensus path by having validators commit solely to state updates while an untrusted off-chain service maintains the full state Merkle tree. The protocol bypasses expensive in-circuit validator signature checks using hash-chain commitments and aggregates proofs across a parallel recursive proving pipeline. Benchmarked on Plonky2, the system maintains a $2^{30}$-leaf Merkle tree processing thousands of updates per second with only 2–4 seconds of latency and logarithmic latency scaling.
Validators no longer need to maintain massive state trees on the critical consensus path to support trustless inclusion proofs: off-chain recursive SNARKs can maintain a billion-leaf state with only 2–4 seconds of latency.
Traditional light clients rely on validators committing to the entire blockchain state at every block via a state commitment such as a Merkle tree, allowing clients to verify facts using short proofs. However, maintaining large and ever-growing state trees imposes a significant burden on validators and lies on the critical path of block production. As a result, many modern high-throughput chains avoid this approach altogether. This work asks whether efficient inclusion proofs can be supported without requiring validators to maintain full state commitments. We present Guppy, a protocol that achieves this by having validators commit to just the state updates. An off-chain, untrusted service, secured by recursive Zero-Knowledge Proofs (ZKPs), then maintains a verifiable Merkle tree over the full state. This design keeps validator overhead negligible and does not increase the asymptotic complexity of block construction. Our design rests on two key technical ideas. First, a hash-chain commitment moves validator signature verification out of the ZK circuit, keeping the proving circuit efficient. Second, we design a parallel recursive proving pipeline that leverages cheap recursion in modern ZKPs to ensure latency grows only logarithmically with throughput. Our Plonky2-based implementation demonstrates that Guppy can maintain a Merkle tree of size 2^30 while processing thousands of updates per second, adding only 2-4 s of latency.