The code in this repo implements a fast, scalable, communication-efficient zero-knowledge proof protocol for Boolean/arithmetic circuits and polynomials. The protocols are described in Wolverine, Quicksilver and Mystique.
wget https://raw.githubusercontent.com/emp-toolkit/emp-readme/master/scripts/install.py
python[3] install.py --deps --tool --ot --zk
- By default it will build for Release.
-DCMAKE_BUILD_TYPE=[Release|Debug]
option is also available. - No sudo? Change
CMAKE_INSTALL_PREFIX
.
- By default it will build for Release.
./run ./bin/[binary]
-
Change the IP address in the test code
-
run
./bin/[binary] 1 [port]
on one machine andrun
./bin/[binary] 2 [port]
on the other machine.
The test is done by two AWS EC2 m5.2xlarge servers with throttled network.
All values are for "million gates per second".
Threads | 10 Mbps | 20 Mbps | 30 Mbps | 50 Mbps | Localhost |
---|---|---|---|---|---|
1 | 5.1 | 7.8 | 8.6 | 8.6 | 8.6 |
2 | 6 | 10 | 12.9 | 14.3 | 13.6 |
3 | 6.3 | 10.9 | 14.5 | 17.3 | 18 |
4 | 6.4 | 11.4 | 15.1 | 19 | 19.4 |
Threads | 100 Mbps | 500 Mbps | 1 Gbps | 2 Gbps | Localhost |
---|---|---|---|---|---|
1 | 1.4 | 4.8 | 6.8 | 7.8 | 7.8 |
2 | 1.4 | 5.6 | 8.7 | 10.2 | 10.4 |
3 | 1.4 | 5.9 | 9.3 | 11.7 | 12.5 |
Please send email to Chenkai Weng (ckweng@u.northwestern.edu) and Xiao Wang (wangxiao1254@gmail.com).
This software is produced by wizkit team members in the SIEVE project. This work was supported in part DARPA under Contract No. HR001120C0087, and research awards from Facebook and PlatON Network. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of DARPA.