Skip to content

openvm-org/stark-backend

OpenVM Stark Backend

Ask DeepWiki

Contributor Docs | Crate Docs

A modular proof system backend for proving and verifying multi-chip circuits with inter-chip communication.

The backend is designed to be modular and compatible with different proof systems, with a focus on performance and extensibility. The aim is to support different circuit representations and permutation/lookup arguments.

Crates

  • openvm-stark-backend: General purpose STARK proving system with multi-trace and logup support, built on top of Plonky3.
  • openvm-stark-sdk: Low-level SDK for use with STARK backend to generate proofs for specific STARK configurations.
  • openvm-cuda-builder: Build utilities and CUDA detection crate, meant to be imported as a build dependency in crates that use CUDA.
  • openvm-cuda-common: Shared headers (.cuh/.h files) and CUDA utilities library.
  • openvm-cuda-backend: CUDA implementation of a STARK prover backend using all of the previous crates.

Contributors should read Development without CUDA and Development with CUDA for instructions on how to set up their development environments.

Status

As of June 2025, STARK Backend v1.1.0 and later are recommended for production use. STARK Backend completed an external audit on Cantina from January to March 2025 as well as an internal audit by members of the Axiom team during the same timeframe.

Security

See SECURITY.md.

Acknowledgements

We studied and built upon the work of other teams in our quest to design a modular and performant proving framework. We would like to thank these teams for sharing their code for open source development:

  • Plonky3: This codebase is built on top of Plonky3, where we have heavily benefited from their modular design at the polynomial IOP level. We extend Plonky3 by providing higher level interfaces for proving multi-chip circuits.
  • Valida: Valida introduced the exceptionally elegant interactions interface for multi-chip communication via logup permutation arguments. We have found this interface quite well thought out and have built upon and extended it.
  • SP1: We learned from SP1's AirBuilder designs, and the original design for the InteractionBuilder was inspired by them.
  • Risc0: We used some of Risc0's open source CUDA kernels as the starting point for our own CUDA kernels.
  • Supranational: We ported and modified sppark's open source NTT CUDA kernels for use in our CUDA backend.
  • Scroll: Members of the Scroll team made foundational contributions to the CUDA backend.

About

Proof system backends for OpenVM.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 19