Skip to content

Conversation

@xqft
Copy link
Contributor

@xqft xqft commented Nov 24, 2025

Motivation

Integrates OpenVM as a new prover backend. For now it only supports L1 proving, until we can implement blob verification using openvm-kzg.

Currently proving is slow as we didn't yet use the guest libraries/precompiles for crypto primitives.

L2 block proving is not supported for now. The issue blocking this is that openvm-kzg does not support blob KZG proof verification.

Description

  • adds an OpenVM guest program for stateless execution
  • adds a new prover backend for OpenVM
  • added a new kzg implementation using openvm-kzg because of the guest incompatibility with c-kzg and kzg-rs.
  • adds CI jobs for the new backend

Base automatically changed from add_zisk_zkvm_backend to main November 26, 2025 13:40
Copilot AI review requested due to automatic review settings November 26, 2025 14:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR integrates OpenVM as a new prover backend for L1 proving in the L2 system. The implementation adds OpenVM guest programs, backend modules, and KZG cryptographic support using openvm-kzg.

Key changes:

  • Adds OpenVM guest program with stateless execution support
  • Implements OpenVM prover backend with compressed and Groth16 proof formats
  • Integrates openvm-kzg as an alternative to c-kzg for KZG operations
  • Adds CI workflow support for OpenVM backend testing

Reviewed changes

Copilot reviewed 16 out of 18 changed files in this pull request and generated no comments.

Show a summary per file
File Description
crates/l2/prover/src/guest_program/src/openvm/src/main.rs Implements the OpenVM guest program entry point with input deserialization and execution
crates/l2/prover/src/guest_program/src/openvm/Cargo.toml Defines guest program dependencies with OpenVM v1.4.1
crates/l2/prover/src/guest_program/src/openvm/openvm_init.rs Auto-generated OpenVM initialization for algebra and ECC support
crates/l2/prover/src/guest_program/src/openvm/openvm.toml Configuration for OpenVM VM including supported curves and cryptographic primitives
crates/l2/prover/src/guest_program/build.rs Adds build logic for compiling OpenVM guest programs
crates/l2/prover/src/backend/openvm.rs Implements OpenVM backend with execute, prove, and batch proof functions
crates/l2/prover/src/backend/mod.rs Registers OpenVM as a new backend option
crates/l2/prover/src/lib.rs Integrates OpenVM backend into prover's main execution flow
crates/common/crypto/kzg.rs Adds OpenVM-KZG support with conditional compilation for different KZG implementations
crates/common/crypto/Cargo.toml Adds openvm-kzg dependency
.github/workflows/pr-main_l2_prover.yaml Adds CI job for OpenVM backend testing
crates/l2/prover/Cargo.toml Adds OpenVM SDK and related dependencies
crates/vm/levm/Cargo.toml Adds openvm feature flag
crates/vm/Cargo.toml Adds openvm feature flag propagation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ilitteri ilitteri added this pull request to the merge queue Nov 27, 2025
Merged via the queue into main with commit 3f0bf4f Nov 27, 2025
56 checks passed
@ilitteri ilitteri deleted the openvm branch November 27, 2025 19:31
github-merge-queue bot pushed a commit to lambdaclass/ethrex-replay that referenced this pull request Nov 27, 2025
an OpenVM backend was added for ethrex-prover in
lambdaclass/ethrex#5412. This PR adds supports
to use it with ethrex-replay

---------

Co-authored-by: ilitteri <[email protected]>
Co-authored-by: ilitteri <[email protected]>
Co-authored-by: Ivan Litteri <[email protected]>
github-merge-queue bot pushed a commit to lambdaclass/ethrex-replay that referenced this pull request Nov 27, 2025
an OpenVM backend was added for ethrex-prover in
lambdaclass/ethrex#5412. This PR adds supports
to use it with ethrex-replay

---------

Co-authored-by: ilitteri <[email protected]>
Co-authored-by: ilitteri <[email protected]>
Co-authored-by: Ivan Litteri <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

L2 Rollup client

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants