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)
| File | Size | Uploaded | |
|---|---|---|---|
| zisk_zorch-0.1.1.tar.gz | 80.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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