Skip to content

An implementation of zero-knowledge proofs of training introduced in eprint:2023/1345

License

Notifications You must be signed in to change notification settings

JunZhaoGroupNTU/zkpot

 
 

Repository files navigation

zkpot 🪴: Experimenting with Zero-Knowledge Proofs of Training ePrint:2023/1345

Rust implementation of a the Zero-Knowledge Proof of Training for Logistic Regression models introdued in ePrint:2023/1345

WARNING: This is an academic proof-of-concept prototype, and in particular has not received careful code review. This implementation is NOT ready for production use.

Requires Rust nightly.

Overview

This project began as a fork of the winterfell crate and has been modified as follows:

  • fri: Added a batch prover for FRI
  • mpcith/: Contains the MPC-in-the-Head proof for the proof of training along with various consistency checks
    • consistency/online: Contains the online phase of the MPC-in-the-Head protocol.
      • online/epoch: Contains the information-theoretic online phase of the MPC-in-the-Head protocol for a training a single batch.
      • online/matvec: Contains the cryptographic checks in the online phase.
    • consistency/offline/: Contains a script to estimate the offline proof size of the zkpot protocol.
    • consistency/sample: Samples a dummy training data set.
    • tests: Contains a test for the online phase of the MPC-in-the-Head protocol.
  • naive-training/: Contains an implementation of the training algorithm for logistic regression to estimate cryptographic overhead. main.rs contains a logistic regression implementation over the f64 rust data type and examples/train128.rs contains the same over the 128 bit field defined in f128.
  • poly-args/: Contains implementations of sum check proofs and its variants.
  • secret-sharing/: Contains an implementation of packed secret sharing.

To run, execute individual tests with cargo. To run all use:

cargo test --release

WARNING: This requires a large amount of memory. Reduce the dataset size to reduce memory usage.

License

This library is released under the MIT License.

About

An implementation of zero-knowledge proofs of training introduced in eprint:2023/1345

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.6%
  • Other 0.4%