Skip to main content

zisk-zorch

A lean ZisK prover built on zorch's scheme-agnostic SNARK building blocks. zorch provides the reusable pieces (hashing, Merkle commitment, Reed-Solomon LDE, transcript, …); zisk-zorch adds only the ZisK-specific glue on top — the pil2-stark Poseidon2-Goldilocks parameters, the pil2 transcript and linear-hash conventions, and the byte-match against the pil2-proofman reference prover that ZisK uses.

frx  ──▶  zorch (scheme-/zkVM-agnostic blocks)  ──▶  zisk-zorch (ZisK / pil2-stark glue)

ZisK proves with Polygon's eSTARK (pil2-stark) — a FRI-based STARK over Goldilocks. None of that scheme-specific knowledge belongs in zorch (its hard rule), so it lives here.

Status

prove_inner runs the inner proof end to end over one Fiat-Shamir transcript — trace commit → quotient → DEEP → FRI. The primitives it is built from are byte-matched against golden vectors generated from pil2-proofman v1.0.0-alpha's fields crate (tools/fixture-gen/); DEEP is the one stage with no golden. No stage is yet byte-matched against a real pil2 dump, so the per-stage timings in docs/development.md are engineering signal, not a sealed baseline. See docs/architecture.md.

Installation

Python 3.11 on Linux x86_64 only.

CPU

pip install zisk-zorch

GPU (CUDA 12)

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

The extra index carries the CUDA plugin wheels: frx-cuda12-pjrt is over PyPI's per-file limit, and frx-cuda12-plugin is not published there. It is not needed for the CPU tier.

The bench extra also needs it, since zkbench is not on PyPI either:

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

That is what python -m zisk_zorch.bench_inner_proof requires.

Verify

python -c \
    "import frx, zisk_zorch.prover; print(frx.devices()); print(zisk_zorch.__version__)"

[CpuDevice(id=0)] is the CPU tier. If you followed the GPU command and still see it, the CUDA plugins did not take effect and everything will run on the CPU without saying so. Importing zisk_zorch.prover rather than the package is deliberate: the package __init__ is a docstring and a version string, so a bare import zisk_zorch touches neither frx nor zorch and stays green on an install that resolved neither.

Development

From a git checkout, not a pip install — nothing below ships in the distribution.

zisk-zorch is pure Python on frx (Field, Ring Accelerated), run against the Fractalyze xla fork's PJRT plugin (the frx-cuda12 wheels), built with Bazel (bzlmod). It consumes zorch as a dev-release wheel from the Fractalyze index, pinned in requirements.in, so frx and zk_dtypes resolve once here. Those pins are the development set, not the packaged dependency set — a release resolves from PyPI via pyproject.toml.

python3.11 -m venv .venv && . .venv/bin/activate
pip install -r requirements.in \
    --extra-index-url https://fractalyze.github.io/pypi/simple/

Dev against a local zorch checkout instead of the pinned wheel — create .bazelrc.user (gitignored):

common --override_module=zorch=/abs/path/to/your/zorch/checkout

Run the tests (CPU is the default for determinism):

bazel test //...

Documentation

See docs/ — the architecture (the inner proof as stages over one transcript, plus the pil2 vocabulary they mirror), the development guide (environment, testing, fixtures, CI, and the per-stage pil2 baseline), and the conventions.

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

zisk_zorch-0.1.0.tar.gz (80.4 kB view details)

Uploaded Source

Built Distribution

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

zisk_zorch-0.1.0-py3-none-any.whl (101.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for zisk_zorch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 de50996a4ea07353dacf275a750434e096893f9d36858a8fd8273eda8a31fb0f
MD5 7bf245835a8b8b78f625801706dadaa9
BLAKE2b-256 8fa2dc88f1271b4232c12c3aab0aa186c0152144d107efc8cebbd26dcdb68ee7

See more details on using hashes here.

Provenance

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

Publisher: release.yml on fractalyze/zisk-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 zisk_zorch-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for zisk_zorch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 248e25b441fc4c6d3d0391f6d8e825dc30b4ffb2f8d58ae60c83fbdef03a907e
MD5 5568b2f78861ee7aa2cccc8d7d74efc8
BLAKE2b-256 c9d26ba855b3048c7ab4b44a39671ddc1ee7bc7d384cb67e4644dbc308fb91de

See more details on using hashes here.

Provenance

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

Publisher: release.yml on fractalyze/zisk-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

0.1.1

2 files

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