🚀 MyZKP: Building Zero Knowledge Proof from Scratch in Rust

███╗   ███╗  ██╗   ██╗  ███████╗  ██╗  ██╗  ██████╗  
████╗ ████║  ╚██╗ ██╔╝  ╚══███╔╝  ██║ ██╔╝  ██╔══██╗ 
██╔████╔██║   ╚████╔╝     ███╔╝   █████╔╝   ██████╔╝ 
██║╚██╔╝██║    ╚██╔╝     ███╔╝    ██╔═██╗   ██╔═══╝  
██║ ╚═╝ ██║     ██║     ███████╗  ██║  ██╗  ██║      
╚═╝     ╚═╝     ╚═╝     ╚══════╝  ╚═╝  ╚═╝  ╚═╝     

MyZKP is a Rust implementation of zero-knowledge protocols built entirely from scratch! This project serves as an educational resource for understanding and working with zero-knowledge proofs.

⚠️ Warning: This repository is a work in progress and may contain bugs or inaccuracies. Contributions and feedback are welcome!

Index

🧮 Basic of Number Theory

🔒 Basic of zk-SNARKs

🌟 Basic of zk-STARKs

  • ✍️ TBD

💻 Basic of zkVM

  • ✍️ TBD

🛠️ Code Reference

Module📂 File Path
Ringring.rs
Fieldfield.rs
Extended Fieldefield.rs
Polynomialpolynomial.rs
Elliptic Curvecurve.rs
zkSNARKs✍️ Coming soon

Contributions are Welcome!

Feel free to submit issues or pull requests to enhance the project.