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;
}