This project is a decentralized marketplace for Zero-Knowledge Machine Learning (zkML) proofs. It enables users to request, verify, and pay for cryptographic proofs of model inferences, using decentralized storage and smart contracts for persistence and escrow. Designed for ETHGlobal Prague 2025, it leverages cutting-edge technologies like Filecoin, Akave, Hedera smart contracts and Flow EVM smart contracts to provide trustless, auditable, and privacy-preserving ML proof generation and verification.
Presentation of the project is available at Pitch.
- Train a Machine Learning Model: Simple model architectures are supported.
- Quantize & Compile: Models are quantized and compiled into zk-SNARK circuits using ezkl.
- Key Generation: Generates proving and verifying keys required for zero-knowledge proof generation and verification.
- Request Handling: Receives proof requests from users.
- Inference Matching: Matches input and model hash, re-executes model inference.
- Proof Generation: Generates a new zkML proof.
- Persistence & Notification: Uploads the proof to Filecoin/Akave and notifies the user.
- Sharing and rewards: The user has now the option to verify the proof by a smart contract, making it available for the public and receiving rewards.
- Model Commitment: Stores hashed model weights (commitment).
- Proof Logs: Stores proof logs (
proof.json), input/output hashes, and timestamps. - Audit Trail: Enables both the frontend and contract verifier to audit and trace proofs and model commitments.
- Proof verification: Users can upload their received proof to get it verified.
- Aggregation: Proofs can be aggregated to build benchmarks.
- Rewards:
- Users providing proofs get rewarded.
- Historical Proofs: View all past proofs and their status.
- Proof Requests: Request new proofs for current inputs.
- Verification: Verify proofs locally or on-chain using the verifier.
- Model providers train and upload their models, then generate and upload proving/verifying keys.
- Users request proofs for inputs.
- Proof Backend processes the request, generates a proof, and uploads it to decentralized storage.
- The smart contract manages rewards and does proof verification.
- Frontend allows for proof requests, historical generated proofs and their status on-chain.
- Honest ML infernce Users can be assured that the model they payed for generated the inference.
- Comparability Outputs from the same model can be compared and shared with the public.
- Benchmarks By gathering enough proofs Benchmarks can be created that reflect the real strength of the Model.
- Flow EVM: Smart contracts for proof verification and rewards.
- Hedera: Smart contracts for proof verification and rewards.
- Filecoin/Akave: Decentralized storage for models, proofs, and logs.
- ezkl: Quantization and zkML circuit compilation.
- Frontend: React/Next.js.
- Backend: Node.js/Python for proof orchestration.
The flowchart in the docs/images/Flowchart.jpg provides a high-level overview of the system architecture and component interactions, illustrating how data flows between the different components of the system.
- testnet (Flow): 0xB743a73B763424e2c2d0dF00d747263d1846c57c (https://evm-testnet.flowscan.io/address/0xB743a73B763424e2c2d0dF00d747263d1846c57c)
- testnet (Hedera): 0x6E3419d936bb7126900ecE3496e02397c0EDB9E1 (https://hashscan.io/testnet/contract/0.0.6094088?ps=1&pf=1&pr=1&pa=1)
- Clone the repository
- Install dependencies for each subcomponent (contracts, backend, frontend).
- Deploy the smart contracts (see
/contracts). - Run the backend service for proof generation.
- Start the frontend to interface with users and verifiers.
MIT
- ETHGlobal Prague 2025
- Filecoin & Akave for decentralized storage
- ezkl for zkML tooling
- Flow and Hedera for providing the smart contract platform

