๐Ÿš€ 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!

๐Ÿ“š About MyZKP

MyZKP is a growing library that provides:

  • A step-by-step guide to the theoretical foundations of ZKPs, including number theory, elliptic curves, and field arithmetic.
  • Implementation of core primitives for ZKP protocols.
  • A solid base for developers and researchers to learn, experiment, or build their own ZKP-based systems.

๐Ÿ’ก Whether you're a cryptography enthusiast, a Rustacean, or a student, MyZKP is for you!

๐Ÿ“– Educational Modules

๐Ÿงฎ Basic of Number Theory

๐ŸŒ€Basic of Polynomial Commitment

๐Ÿ”’ Basic of zk-SNARKs

๐ŸŒŸ Basic of zk-STARKs

  • โœ๏ธ TBD

๐Ÿ’ป Basic of zkVM

  • โœ๏ธ TBD

๐Ÿค Contributions are Welcome!

We welcome your ideas, feedback, and contributions!

๐Ÿ’ก Here are ways to contribute:

  1. Report Issues: Found a bug or have a suggestion? Open an issue!
  2. Submit Pull Requests: Have code improvements? Feel free to submit them.
  3. Write Documentation: Help us make the educational modules clearer.