4.4 zk-AI Circuit Walkthrough
Convert a neural network to a ZK circuit and verify it on-chain.
🧪 Steps
# 1. Export PyTorch model
python export_model.py --output model.onnx
# 2. Compile to circuit
zkt compile --onnx model.onnx --output circuit.r1cs
# 3. Generate proving & verifying keys
zkt setup circuit.r1cs proving.key verifying.key
# 4. Create proof
zkt prove circuit.r1cs proving.key input.json output.json proof.bin
# 5. Verify proof
zkt verify circuit.r1cs verifying.key proof.bin
🛡️ Solidity Verifier
function submitProof(bytes32 dataHash, uint256 output, bytes calldata proof) external {
require(verifier.verify(proof, [uint256(dataHash), output]), "Invalid proof");
results[dataHash] = output;
}