Source code and the implementation of the USENIX Security'24 paper - Scalable Zero-knowledge Proofs for Non-linear Functions in Machine Learning.
A novel scalable ZK proof framework for non-linear mathematical functions in machine learning based on LUT techniques.
This repository consists of the following parts:
- src: Implementations for our ZKP protocols.
- test: Test script for performance evaluation.
NOTE: Our implementation is built based on emp-zk and a complete compilation process is required. For any issues occurred during step 1, please refer to emp-zk troubleshooting.
- Install emp-tool, emp-ot and emp-zk.
python install.py --deps --tool --ot --zk- Update code for zkMath.
cp -rf src/* emp-zk/emp-zk/ && rm -rf src \
&& cp -rf test/* emp-zk/test/ && rm -rf test \
&& mv -f CMakeLists.txt emp-zk/- Recompile the code, then the binary executables can be found at ./bin
cd emp-zk
cmake .
make -j8
sudo make install./run ./bin/[binary]
-
Change the IP address in the test code, or use
tmuxcommand to initialize another terminal -
run
./bin/[binary] 1 [port]on one machine andrun
./bin/[binary] 2 [port]on the other machine.
This repository is a proof-of-concept prototype.