Search

Search for projects by name

ZK Catalog

SP1 logo
SP1Succinct

About

SP1 is a zk proving system for RISC-V programs built by Succinct.


  • Total Value SecuredTVS
    $3.41 B8.29%

  • Trusted Setups

    Used in

    +15 more

    Verifiers

    1by
    1

    Used in

    Verifiers

    1

    Used in

    +15 more

    Verifiers

    1by
    1

    Used in

    Verifiers

    1

    Tech Stack

    zkVM
    STARK: Plonky3
    ISA: RISC-V
    Field: Baby Bear
    Final wrap
    Plonk: Gnark
    Groth16: Gnark
    curve: BN254
  • Total Value SecuredTVS
    $3.41 B8.29%
  • About

    SP1 is a zk proving system for RISC-V programs built by Succinct.


    Description

    SP1 is a RISC-V zkVM using the Plonky3 stack. The zkVM execution is proven recursively and is wrapped into a SNARK for final verification. It provides tools to generate onchain Groth16 or Plonk verifiers. SP1 targets 100 bits of security.

    Proof system

    SP1 proves execution of a RISC-V VM using several ZK circuits connected by lookup arguments, as implemented in Plonky3. VM execution trace is split into several chunks that could be proven in parallel with a STARK proving system. The parallelized proofs are recursively checked by the next layer of STARK circuits. The correctness of the final STARK proof is verified with the final wrap SNARK program, the wrap SNARK proof is verified onchain.

    zkVM component

    Verifies execution of a RISC-V program in a zkVM. Uses Plonky3 STARK toolkit with AIR arithmetization and FRI-based polynomial commitment scheme within the BabyBear field.

    Recursion circuits

    SP1 provides tools for recursive proof generation by verifying proofs in a zkVM. This uses the same toolkit as top-level proof system, but proves the correct verification of all proofs generated on the previous step.

    Final wrap

    SP1 supports Plonk (with KZG polynomial commitments) or Groth16 final SNARK wrap of the STARK proof for performant onchain proof verification (link). The gnark implementation of these proof systems over BN254 curve is used. For Plonk, Aztec Ignition trusted setup ceremony is used, for Groth16 Succinct run internal circuit-dependent phase 2 trusted setup, see below for more details.

    [Disclosed vulnerability] Plonky3 final polynomial degree check vulnerability

    2025 Jun 3rd

    Release of SP1 V5.0.0 with a fix of a Plonky3 library issue that affected the security of SP1 zkVM.

    Learn more

    [Disclosed vulnerability] Plonky3 FRI size check vulnerability

    2025 Mar 28th

    Fix of a Plonky3 library soundness issue that affected the security of SP1 zkVM.

    Learn more

    Aztec Ignition

    Plonk: Gnark

    Detailed description

    Aztec Ignition is a trusted setup ceremony for KZG commitments over BN254 curve that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation.


    SP1 Groth16 circuit-specific setup

    Groth16: Gnark

    Detailed description

    Ceremony was run among 7 contributors to the SP1 project without public calls to participate. It generated setup parameters for Groth16 wrapper of SP1 zkVM.

    List of different onchain verifiers for this proving system. Unique ID distinguishes differents deployments of the same verifier from different verifiers (e.g. different versions).

    Plonk: Gnark
    verifier hashes
    Groth16: Gnark
    verifier hashes

    List of known guest zkVM programs used by this prover. Each program represents a piece of offchain execution that is verified onchain. The program hash serves as the program's unique identifier.

    Name
    Hash
    Repository
    Verification
    Used in
    0x0057...6ad1
    Code unknown
    Unknown
    0x00de...0bef
    Code unknown
    Unknown
    0x0083...b8c2
    Code unknown
    Unknown
    0x43f0...0829
    Code unknown
    Unknown
    0x0039...772e
    Code unknown
    Unknown
    0x4906...6872
    Code unknown
    Unknown
    0x713f...fa1f
    Code unknown
    Unknown
    0x00ef...cc30
    Code unknown
    Unknown
    0x00bc...3de7
    Code unknown
    Unknown
    0x2d0d...4256
    Code unknown
    Unknown
    0x008a...0452
    Code unknown
    Unknown
    0x40bc...daa3
    Code unknown
    Unknown
    0x00cd...31f0
    Code unknown
    Unknown