TLDR: JSTprove is a new toolkit that simplifies Zero-Knowledge Machine Learning (zkML), allowing AI developers to verify AI model inferences without needing deep cryptographic expertise. Built on Polyhedra Network’s Expander backend, it offers an end-to-end pipeline for compiling, generating witnesses, proving, and verifying AI model outputs. The system aims to enhance trust and privacy in AI applications by making verifiable AI practical and auditable, with ongoing efforts to optimize performance and expand capabilities.
The rapid integration of artificial intelligence (AI) and machine learning (ML) into vital sectors like healthcare, finance, and cybersecurity has revolutionized how decisions are made. However, this widespread adoption also introduces significant challenges concerning trust, security, and accountability. As AI systems become more common, ensuring that their decisions are transparent and correct is paramount, especially when these decisions can impact privacy, security, or fairness.
Verifiable AI, a field powered by Zero-Knowledge Machine Learning (zkML), offers a robust solution to these challenges. zkML allows for the verification of AI model inferences without revealing sensitive underlying data, thereby adding a crucial layer of trust and privacy. Traditionally, however, zkML systems have demanded deep cryptographic expertise, making them largely inaccessible to most ML engineers.
Introducing JSTprove: Bridging the Gap
A new toolkit called JSTprove aims to change this by making verifiable AI more accessible. Developed by Inference Labs Inc., JSTprove is a specialized zkML toolkit built on Polyhedra Network’s Expander backend. Its primary goal is to empower AI developers and ML engineers to generate and verify proofs of AI inference without needing extensive cryptographic knowledge. JSTprove provides an end-to-end verifiable AI inference pipeline that simplifies complex cryptographic processes behind a user-friendly command-line interface (CLI), while also producing auditable records for reproducibility.
The JSTprove pipeline involves several key stages: first, it imports and parses ONNX models, preparing their computational graphs. Next, it quantizes floating-point weights and activations into fixed-point integers, making them suitable for the finite-field arithmetic used in zero-knowledge circuits. The quantized model is then translated into an arithmetic circuit using the Expander Compiler Collection (ECC). Following this, witness generation occurs, where the quantized model runs inference on user inputs, recording outputs and auxiliary values. Finally, a proof is generated using Expander’s GKR/sumcheck-based backend, which is then verified against all artifacts to confirm the inference was performed correctly. This entire process is exposed through simple commands like `compile`, `witness`, `prove`, and `verify`.
Key Innovations and Design
JSTprove’s design emphasizes transparency and auditability. The project maintains an open repository called zkML Blueprints, which contains mathematical proofs, pseudocode, and code for core arithmetic circuits. This open-source approach allows for external review and collaborative improvement, increasing confidence in the system’s intended behavior. The toolkit currently supports essential neural network operations such as fully connected layers, 2D convolution, 2D max pooling, and ReLU, with a modular architecture designed for future expansion.
The quantization strategy used in JSTprove converts real-valued models into integers, balancing computational efficiency with fidelity to the original model. While simple and sound, this initial approach introduces some overhead, which the developers acknowledge as a focal point for future optimization. For instance, future versions plan to integrate Freivalds’ algorithm for matrix multiplication verification to reduce constraint costs, and to optimize range checks using lookup tables.
Also Read:
- Co-Sight: A Framework for Trustworthy and Efficient AI Agent Reasoning
- Bridging the Gap: How Symbolic AI Enhances Transparency and Reasoning in Large Language Models
Performance and Future Outlook
Benchmarking JSTprove involved testing various convolutional neural networks, varying both their depth and input spatial size. The results showed that a metric called “total cost,” provided by ECC, is a reliable predictor of runtime and memory usage across different phases of the proving process. This metric consistently captures circuit complexity, offering a valuable tool for forecasting resource requirements for larger models.
The path forward for JSTprove includes adopting well-known circuit optimizations to reduce constraint counts and streamlining data handling to curb memory usage and compile times. Additionally, enabling GPU proving through Expander/ECC’s emerging zkCUDA support is expected to provide significant speedups by leveraging parallelism in GKR-style circuits. By combining transparency, reproducibility, and sound engineering, JSTprove aims to be a practical toolkit for developers today and a foundational element for advancing verifiable AI in real-world applications. You can learn more about the technical details in the full research paper.


