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.

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).

Metadata

Release files for zisk-zorch 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zisk-zorch 0.1.1
File Size Uploaded
zisk_zorch-0.1.1.tar.gz 80.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zisk-zorch 0.1.1
File Interpreter ABI Platform
zisk_zorch-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 182.0 kB

Release files / zisk_zorch-0.1.1.tar.gz

Download URL zisk_zorch-0.1.1.tar.gz
Size 80.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f80a53800ba1041084c6e09ed4bbf7783eb7f6a6d37e6d566b84d4e4d038d775
BLAKE2b-256 checksum
How to use checksums
3bb23ad47be5ca05c7a569f70ac343e2986f5a227b550861045a15cfb24de446
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release files / zisk_zorch-0.1.1-py3-none-any.whl

Download URL zisk_zorch-0.1.1-py3-none-any.whl
Size 101.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bcd82cc34a86b28d9e8d15acd63227b8ebca07ef35e4aede1c2bbb4d8fe9be3e
BLAKE2b-256 checksum
How to use checksums
ca5eef0a23651abf5a97d2acd73915e37076576f11a5ac3007d62ef38887c03c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page