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

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.1.tar.gz (80.3 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.1-py3-none-any.whl (101.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zisk_zorch-0.1.1.tar.gz
  • Upload date:
  • Size: 80.3 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.1.tar.gz
Algorithm Hash digest
SHA256 f80a53800ba1041084c6e09ed4bbf7783eb7f6a6d37e6d566b84d4e4d038d775
MD5 6ac23be4799f596e196a74102bebbb9f
BLAKE2b-256 3bb23ad47be5ca05c7a569f70ac343e2986f5a227b550861045a15cfb24de446

See more details on using hashes here.

Provenance

The following attestation bundles were made for zisk_zorch-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: zisk_zorch-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bcd82cc34a86b28d9e8d15acd63227b8ebca07ef35e4aede1c2bbb4d8fe9be3e
MD5 74a3073c655cbd9e177d89dbb3ac264c
BLAKE2b-256 ca5eef0a23651abf5a97d2acd73915e37076576f11a5ac3007d62ef38887c03c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zisk_zorch-0.1.1-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

This release

0.1.1 This release

2 files

0.1.0

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