zkml is a framework for constructing proofs of ML model execution in ZK-SNARKs. Read our blog post and paper for implementation details.
zkml requires the nightly build of Rust:
rustup override set nightly
Run the following commands:
# Installs rust, skip if you already have rust installed
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://github.com/ddkang/zkml.git
cd zkml
rustup override set nightly
cargo build --release
mkdir params_kzg
mkdir params_ipa
# This should take ~16s to run the first time
# and ~8s to run the second time
./target/release/time_circuit examples/mnist/model.msgpack examples/mnist/inp.msgpack kzg
This will prove an MNIST circuit! It will require around 5GB of memory and take around 16 seconds to run.
If you're interested in extending or using zkml, please contact us at ddkang [at] g.illinois.edu
.