Search

Search for projects by name

ZK Catalog

OpenVM logo
OpenVMAxiom

About

OpenVM prover is a zk proving system for customizable modular VM built by Axiom and used to prove Scroll L2 STF.


  • Total Value SecuredTVS
    $246.08 M10.5%

  • Trusted Setups

    Used in

    Verifiers

    1

    Used in

    Verifiers

    1

    Tech Stack

    zkVM
    STARK: Plonky3
    ISA: OpenVM
    Field: Baby Bear
    Final wrap
    Plonk: Halo2
    curve: BN254
    PCS: KZG
  • Total Value SecuredTVS
    $246.08 M10.5%
  • About

    OpenVM prover is a zk proving system for customizable modular VM built by Axiom and used to prove Scroll L2 STF.


    Description

    OpenVM is a STARK proving system based on Plonky3 proving library, that has “no-CPU” design paradigm and allows adding new custom instructions to its instruction set architecture (ISA). It supports recursive STARK aggregation and provides an SDK for creating Solidity verifier smart contracts.

    Proof system

    The proof system is split into ZK frontend, i.e. arithmetization, and ZK backend, i.e. a polynomial IOP with the Fiat-Shamir heuristic. In practice, a batched FRI-based polynomial commitment is used as the backend. OpenVM backend relies on Plonky3 prover system. OpenVM arithmetizes the execution trace using AIR with Interactions over BabyBear prime field. Interactions which include LogUp, permutation check and others.

    zkVM design

    OpenVM uses read-only program memory, read/write data memory as well as inputs and hints from host to enable non-deterministic computation. The execution logic is organized into a set of system chips and custom chips, without any centralized CPU-like chip. Interactions between chips are managed by program, execution and memory buses. Currently OpenVM ISA supports RISC-V instructions, keccak-256 and SHA256 hash functions, int256 arithmetic, modular arithmetic over arbitrary fields, some elliptic curve operations for the secp256k1 and secp256r1 curves and pairing operations on the BN254 and BLS12-381 curves.

    Recursion circuits

    OpenVM supports recursive proving and continuations, i.e. splitting a single execution trace into several rather independent ones, by recursive verification of generated STARK proofs in a specialized OpenVM program optimized for efficient proof verification (called native VM).

    Final wrap

    The STARK proof is wrapped in Halo2 SNARK with KZG commitments over BN254 curve for efficient onchain processing. KZG commitment relies on Perpetual Powers of Tau trusted setup ceremony, see below for more details.

    Plonky3 final polynomial degree check vulnerability

    2025 May 26th

    Fix of a bug in OpenVM that was analogous to an identified vulnerability in Plonky3 library.

    Learn more

    Halo2 KZG over BN254

    Plonk: Halo2

    Detailed description

    A trusted setup used for KZG commitments over BN254 curve for Halo2 SNARK proving system (when it is set up not in a transparent way). De-facto it is the first 71 entries in the Perpetual Powers of Tau ceremony that were converted to a particular format.

    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: Halo2
    verifier hashes