This repository dedicated to learning and practicing zero-knowledge concepts, with progress tracked through hands-on implementation using the Rust programming language.
Zero-knowledge proofs (ZKP) are a powerful cryptographic concept enabling one party to prove the validity of information without revealing the information itself. This repository serves as a training ground to understand, implement, and experiment with ZKP using the Rust programming language.
- Hands-on exercises for understanding ZKP concepts.
- Implementation of zero-knowledge proof protocols in Rust.
- Progress tracking and learning resources.
- Modular codebase for experimenting with cryptographic ideas.
- Rust: The primary programming language for implementations.
- Makefile: For build automation and task management.
- LLVM: Contributing to low-level optimizations.
Follow these steps to set up the repository locally:
-
Clone the repository:
git clone [https://github.com/Michael-Nwachukwu/Zk-Training.git](https://github.com/Michael-Nwachukwu/Zk-Training.git) cd Zk-Training -
Install Rust (if not already installed):
curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh
-
Build the project:
make build
-
Run tests to verify setup:
make test
The repository is structured to include various modules corresponding to different ZKP concepts. Each module comes with its own README or documentation.
-
Navigate to a specific module:
cd modules/<module_name>
-
Run examples or exercises:
cargo run
-
Explore and modify the code to deepen understanding.
We welcome contributions! To get started:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes with clear descriptions.
- Open a pull request and provide details about your changes.
This project is licensed under the MIT License. See the LICENSE file for details.