JSTprove  by inference-labs-inc

zkML toolkit for proving ML inference on ONNX models

Created 1 year ago
1,196 stars

Top 31.8% on SourcePulse

GitHubView on GitHub
Project Summary

JSTprove is a command-line toolkit for generating zero-knowledge proofs (ZKPs) of AI inference on ONNX models. It enables private verification of ML computations via a streamlined pipeline from ONNX input to ZKP generation, leveraging Polyhedra Network's Expander and ECC.

How It Works

A Python frontend orchestrates the pipeline: ONNX models are quantized, compiled into arithmetic circuits using Expander Compiler Collection (ECC), and then processed by Polyhedra Network's Expander (GKR/sum-check prover) for ZKP generation. The design emphasizes explicit control, reproducibility, and a user-friendly CLI, supporting core ML ops like Conv2D, GEMM, ReLU, and MaxPool2D, with optimizations like circuit fusion.

Quick Start & Requirements

  • Installation: Recommended via uv tool install JSTprove. Development requires cloning the repo, Rust (nightly), system dependencies (OpenMPI, clang/llvm), cloning Expander as ./Expander, and uv sync.
  • Python: 3.10–3.12.
  • Dependencies: UV, OpenMPI, Rust nightly, clang/llvm.
  • Demo: LeNet demo illustrates compile, witness, prove, verify CLI workflow.
  • Docs: docs/cli.md, docs/troubleshooting.md, docs/CONTRIBUTING.md.

Highlighted Details

  • Generates ZKPs for AI inference on ONNX models.
  • Utilizes Polyhedra Network's Expander and ECC.
  • Supports Conv2D, GEMM/MatMul, ReLU, MaxPool2D.
  • Emphasizes explicit paths, reproducibility, and deterministic debugging.
  • Includes quantization and circuit fusion.

Maintenance & Community

No specific maintainer or community details (Discord/Slack) are provided. Contributions are welcomed but advised with caution.

Licensing & Compatibility

No explicit license is stated. A prominent disclaimer warns that JSTprove is experimental, unaudited, provided "as-is," and strongly discouraged for production use due to potential bugs and security risks. Users assume all responsibility.

Limitations & Caveats

JSTprove is experimental and unaudited, unsuitable for production. It may contain bugs/vulnerabilities and is subject to breaking changes. Python 3.13 is incompatible. Setup requires careful installation of Rust nightly, OpenMPI, and build tools.

Health Check
Last Commit

3 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
2
Star History
230 stars in the last 30 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Vincent Weisser Vincent Weisser(Cofounder of Prime Intellect), and
3 more.

DeepSeek-Math-V2 by deepseek-ai

0%
2k
LLM for self-verifiable mathematical reasoning
Created 8 months ago
Updated 7 months ago
Feedback? Help us improve.