Search

Search for projects by name or address

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
    $45.69 M6.25%

  • Trusted Setups

    Used in

    Scroll logo

    Verifiers

    4by

    Used in

    Scroll logo

    Verifiers

    4by

    Tech Stack

    zkVM
    Plonky3
    OpenVM
    Baby Bear
    Final wrap
    Halo2
    BN254
    KZG
  • Total Value SecuredTVS
    $45.69 M6.25%
  • About

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



    Total
    Canonically BridgedCanonically Bridged ValueCanonical
    Natively MintedNatively Minted TokensNative
    Externally BridgedExternally Bridged ValueExternal

    ETH & derivatives
    Stablecoins
    BTC & derivatives
    Other

    Description

    OpenVM is a STARKShort for "scalable transparent argument of knowledge", a STARK is a type of zero-knowledge proof that resolves one of the primary weaknesses of ZK-SNARKs, its reliance on a "trusted setup”. STARKs also come with much simpler cryptographic assumptions, avoiding the need for elliptic curves, pairings, and the knowledge-of-exponent assumption and instead relying purely on hashes and information theory. This means that they are secure even against attackers with quantum computers. proving system based on Plonky3 proving library, that has “no-CPU” design paradigm and allows adding new custom instructions to its instruction set architecture (ISAInstruction Set Architecture of a virutal machine describes its computational model, including the available instructions, registers, data types, etc.). It supports recursive STARK aggregation and provides an SDK for creating Solidity verifierAn entity in a ZK-Rollup, often a smart contract, that verifies zero-knowledge proofs submitted by a prover. smart contracts.

    Proof systemThe infrastructure that allows projects to verify their state transitions. It is composed by onchain verifiers and offchain provers. The main two flavors are optimistic and ZK proof systems, but they can be combined in a hybrid model. In general though, if a system is able to accept state roots optimistically, even if it has a ZK component, it is considered an optimistic proof system.

    The proof system is split into ZK frontend, i.e. arithmetizationA part of zk proving system, a process that transforms the computation to be proven into a set of polynomials with particular properties., and ZK backend, i.e. a polynomial IOP with the Fiat-Shamir heuristicA method of converting interactive proofs into non-interactive proofs, commonly used in zero-knowledge protocols.. In practice, a batched FRIA proximity test method that is used to determine whether a set of points is mostly on a polynomial with a degree less than a specified value. It resembles the FFT but the arithmetic complexity of its prover is strictly linear and that of the verifier is strictly logarithmic.-based polynomial commitmentA commitment scheme that commits to a polynomial and allows generating the proof of opening the polynomial at a given point against the commitment. is used as the backend. OpenVM backend relies on Plonky3 proverAn entity that generates the cryptographic proof to convince the verifier that the statement is true. In a ZK-Rollup, the prover generates the ZK (validity) proof to submit to the verifier contract. system.

    OpenVM arithmetizes the execution trace using AIRAlgebraic intermediate representation (AIR) is a type of arithmetization commonly used in zkVMs. It represents a trace of zkVM state transitions with low degree polynomial constraints that enforce the correct relation between previous and current states of the computation. Several variations of AIR are used in practice, with slight differences among them. with Interactions over BabyBear prime field. Interactions which include LogUp, permutation check and others.

    zkVMA special type of zk proving system that proves the correctness of state transitions of a virtual machine. Computation is represented by a program in a specific instruction language, it can have private and public inputs and public outputs. Most of zkVMs are STARKs. 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-VA free and open-source instruction set architecure (ISA) used in hardware and software. It is simple and well specified, for this reason it is chosen as an ISA for several zkVMs (usually 32-bit version with base integer instructions and multiplication extension RV32IM). instructions, keccakCryptographic hash function used in Ethereum.-256 and SHA256 hashA fixed-length fingerprint of variable-size input, produced by a hash function. 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 SNARKShort for "succinct non-interactive argument of knowledge", a SNARK is a widely used type of zero-knowledge proof that is short and fast to verify. Different kinds of SNARKs are usually systematized by proof size, verification time, and type of setup. The most famous SNARKs are Groth16, PLONK/Marlin, Bulletproofs, and STARKs. with KZG commitmentsA polynomial commitment scheme that allows a prover to compute a commitment to a polynomial, with the properties that this commitment can later be opened at any position: the prover shows that the value of the polynomial at a certain position is equal to a claimed value. KZG is widely used as it’s applicable both for univariate and k-variate polynomials, is efficient for batch proofs, and is able to generate many proofs at once relatively fast. It is also proof generation time efficient: the time for prover to commit to a polynomial is linear on the degree of the polynomial. over BN254 curve for efficient onchain processing. KZG commitment relies on Perpetual Powers of Tau trusted setupGeneration of a piece of data that must then be used for some cryptographic protocol to run. Generating this data requires some secret information. The "trust" comes from the fact the secret must be destroyed after the ceremony, otherwise cryptographic properties of the protocol could be broken. Once the data is generated, and the secrets are forgotten, no further participation from the creators of the ceremony is required. There are two types of trusted setups for SNARKs: (i) trusted setup per circuit where it is generated from scratch for each circuit, (ii) trusted universal setup per proving system where it can be used for several circuits. ceremony, see below for more details.

    [Disclosed vulnerability] 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

    Halo2

    Detailed description

    A trusted setupGeneration of a piece of data that must then be used for some cryptographic protocol to run. Generating this data requires some secret information. The "trust" comes from the fact the secret must be destroyed after the ceremony, otherwise cryptographic properties of the protocol could be broken. Once the data is generated, and the secrets are forgotten, no further participation from the creators of the ceremony is required. There are two types of trusted setups for SNARKs: (i) trusted setup per circuit where it is generated from scratch for each circuit, (ii) trusted universal setup per proving system where it can be used for several circuits. used for KZG commitmentsA polynomial commitment scheme that allows a prover to compute a commitment to a polynomial, with the properties that this commitment can later be opened at any position: the prover shows that the value of the polynomial at a certain position is equal to a claimed value. KZG is widely used as it’s applicable both for univariate and k-variate polynomials, is efficient for batch proofs, and is able to generate many proofs at once relatively fast. It is also proof generation time efficient: the time for prover to commit to a polynomial is linear on the degree of the polynomial. over BN254 curve for Halo2 SNARKShort for "succinct non-interactive argument of knowledge", a SNARK is a widely used type of zero-knowledge proof that is short and fast to verify. Different kinds of SNARKs are usually systematized by proof size, verification time, and type of setup. The most famous SNARKs are Groth16, PLONK/Marlin, Bulletproofs, and STARKs. 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 different deployments of the same verifier from different verifiers (e.g. different versions).

    Plonk: Halo2

    Rust implementation of Halo2 SNARK proving system, originally developed for ZCash.

    Verifier
    Verification
    Used in
    Known deployments
    OpenVM v2.0.0 PostFeynman
    Scroll logo
    OpenVM v1.6.0 PostFeynman
    by
    OpenVM Feynman
    by
    Scroll logo
    OpenVM Galileo
    by
    Scroll logo

    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
    0x003a...bf72
    Scroll logo
    0x0093...7909
    Scroll logo
    0x0062...d297
    Scroll logo
    0x0067...5655
    Scroll logo
    0x0048...33f7
    Scroll logo