finds.dev← search

// the find

succinctlabs/sp1

★ 1,703 · Rust · Apache-2.0 · updated Jul 2026

SP1 is a zero‑knowledge virtual machine that proves the correct execution of programs compiled for the RISC-V architecture.

SP1 is a zkVM from Succinct Labs that lets you write programs in standard Rust and generate zero-knowledge proofs that the program ran correctly. It targets RISC-V, so anything LLVM can compile to that target works in theory — not just Rust. The audience is Ethereum protocol developers who need to verify computation off-chain (light clients, bridges, rollups) without trusting a centralized prover.

The precompile architecture is the real differentiator — instead of burying crypto acceleration inside the CPU chip, SP1 externalizes them as separate AIR tables (Keccak, SHA-256, secp256k1, ed25519, BN254, and more). You get native-speed cryptographic operations in your ZK program without hand-writing circuits. The JIT executor for x86_64 (crates/core/jit) is a genuine engineering win — it JIT-compiles RISC-V to native x86 for fast unconstrained execution, separate from the prover, which is how you keep iteration loops tolerable. The audit coverage is thorough: four separate firms including Cantina and Zellic, with reports committed directly to the repo — production deployments can actually point to something. The cargo-prove CLI and Docker-based hermetic toolchain builds make the setup reproducible, which matters more than it sounds for a system this sensitive to toolchain version drift.

You cannot use the system Rust toolchain — SP1 requires its own fork (borrowed from RISC0's approach), which means your Rust version is whatever Succinct ships and MSRV bumps are at their discretion, not yours. The circuit version (`SP1_CIRCUIT_VERSION`) is a hard break: proofs generated with one circuit version cannot be verified with another, and there is no graceful migration story visible in the repo. Recursive aggregation and Groth16 wrapping pull in a Go/gnark dependency via FFI (Dockerfile.gnark-ffi), adding a multi-language build chain that will cause pain in CI and in any environment that doesn't control its own Docker layer. Proving is still fundamentally expensive compute — the prover network abstracts it away, but if you want to self-host proofs at scale you will need serious hardware, and there is little guidance in the repo for what 'at scale' actually means in wall-clock or cost terms.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →