Introduction
The goal of the SP1 Hypercube Protocol is to prove the correctness of a program in the RISC V (RV64IM) instruction set. The protocol is based on an Interactive Oracle Proof (IOP) that relies on the following key sub-protocols, with which we assume basic familiarity.
- Zerocheck Protocol, see Chapter 4 of https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.pdf
- Jagged PCS https://eprint.iacr.org/2025/917
- LogUp GKR https://eprint.iacr.org/2023/1284
- Basefold https://eprint.iacr.org/2024/1571
- Multiset Hash https://docs.succinct.xyz/assets/files/SP1_Turbo_Memory_Argument-b042ba18b58c4add20a8370f4802f077.pdf
SP1 Hypercube takes a piecemeal approach. This means that the computation is divided into "shards", consisting of roughly RISC V instructions each. We then:
- Prove that each shard executed correctly.
- Prove memory consistency across the different shards (i.e., if a shard changed memory location to value , then this will be the value of the memory the next time that it is read).
The shard proofs are then aggregated and compressed via a recursion mechanism into a single succinct proof.