JSTprove  by inference-labs-inc

zkML toolkit for proving ML inference on ONNX models

Created 1 year ago
550 stars

Top 58.1% 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

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
5
Issues (30d)
0
Star History
541 stars in the last 30 days

Explore Similar Projects

Starred by Elvis Saravia Elvis Saravia(Founder of DAIR.AI), Yineng Zhang Yineng Zhang(Inference Lead at SGLang; Research Scientist at Together AI), and
1 more.

DeepSeek-Math-V2 by deepseek-ai

N/A
1k
LLM for self-verifiable mathematical reasoning
Created 4 days ago
Updated 3 days ago
Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Luis Capelo Luis Capelo(Cofounder of Lightning AI), and
1 more.

tutorials by onnx

0%
4k
ONNX model tutorials and examples
Created 8 years ago
Updated 1 year ago
Feedback? Help us improve.