Skip to main content

openvm-zorch

A lean OpenVM prover built on zorch's scheme-agnostic SNARK blocks.

FRX → zorch (scheme-/zkVM-agnostic blocks) → openvm-zorch (SWIRL glue)

FRX is Fractalyze's fork of JAX, and it compiles through Fractalyze's fork of XLA. Both differ from upstream in the way that matters here: finite fields are native dtypes, not emulated. Everywhere below, FRX and XLA mean those forks.

OpenVM proves with SWIRL — a sumcheck-based proof system composing LogUp-GKR (interactions), a batched ZeroCheck with univariate skip (constraints), a stacked opening reduction, and a WHIR polynomial commitment — as implemented by openvm-stark-backend at tag v2.0.0. This repo re-implements that prover on zorch, keeping only the SWIRL-specific surface here and pushing every generic block upstream.

Installation

Python 3.11 on Linux x86_64 only.

CPU

pip install openvm-zorch

GPU (CUDA 12)

pip install openvm-zorch 'frx[cuda12]' \
    --extra-index-url https://fractalyze.github.io/pypi/simple/

The extra index carries the CUDA plugin wheels, which are too large for PyPI's per-file limit. It is not needed for the CPU tier.

Verify

python -c "import frx, openvm_zorch; print(frx.devices()); print(openvm_zorch.__version__)"

[CpuDevice(id=0)] means the CPU tier; a CUDA install prints the GPU devices.

Development

bazel test //...                              # hermetic, CPU by default

Regenerate golden fixtures (requires Rust toolchain; pinned to the reference tag, so output is reproducible):

cd tools/fixture-gen
cargo run --release -- \
  --out ../../openvm_zorch/commit/testdata/stacked_commit \
  --transcript-out ../../openvm_zorch/testdata/transcript \
  --gkr-out ../../openvm_zorch/logup_gkr/testdata/logup_gkr \
  --zerocheck-out ../../openvm_zorch/logup_zerocheck/testdata/zerocheck \
  --stacking-out ../../openvm_zorch/stacked_reduction/testdata/stacking \
  --whir-out ../../openvm_zorch/whir/testdata/whir \
  --prove-out ../../openvm_zorch/testdata/prove

Reference pin

openvm-stark-backend tag v2.0.0 (16d60de724c21dcadfde7d8315a1db507e5832d7) — the same pin the openvm v2.0.0 release consumes. Config: BabyBear base field, BabyBear⁴ challenges, Poseidon2 width-16 (default_babybear_poseidon2_16, plonky3 =0.4.3).

Documentation

See docs/ for the full index — pipeline & terminology, and development & benchmarking.

License

Licensed under the Apache License, Version 2.0 (see LICENSE).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openvm_zorch-0.1.0.tar.gz (122.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openvm_zorch-0.1.0-py3-none-any.whl (151.4 kB view details)

Uploaded Python 3

File details

Details for the file openvm_zorch-0.1.0.tar.gz.

File metadata

  • Download URL: openvm_zorch-0.1.0.tar.gz
  • Upload date:
  • Size: 122.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for openvm_zorch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 94e313c537bde3b13244880b8ad75ff274dfad7842f7075bb9b055727de29b38
MD5 e5977e5788e2eaa94ab8e23256a15959
BLAKE2b-256 2b6a0683b6b784d8216a72c7ac5a43961495f358f8620de36279046e6bc8ea4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for openvm_zorch-0.1.0.tar.gz:

Publisher: release.yml on fractalyze/openvm-zorch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openvm_zorch-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: openvm_zorch-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 151.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for openvm_zorch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e42995da51efbb06d6b5e0cb8caf42938e9499337eb7e42c9c7f0f8647a97c9
MD5 f106b651f8c072e3b2d8f2b27db9ae63
BLAKE2b-256 094e15d3e58319d1c47b137502267a9696e776cd3cdd73c74a40574c74212bf4

See more details on using hashes here.

Provenance

The following attestation bundles were made for openvm_zorch-0.1.0-py3-none-any.whl:

Publisher: release.yml on fractalyze/openvm-zorch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page