https://github.com/koukyosyumei/myzkp
Building Zero Knowledge Proof from Scratch in Rust
https://github.com/koukyosyumei/myzkp
cryptocurrency cryptography rust zero-knowledge zero-knowledge-proof zkp zksnark zksnarks
Last synced: 3 months ago
JSON representation
Building Zero Knowledge Proof from Scratch in Rust
- Host: GitHub
- URL: https://github.com/koukyosyumei/myzkp
- Owner: Koukyosyumei
- License: apache-2.0
- Created: 2024-10-07T19:27:59.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-29T16:46:22.000Z (11 months ago)
- Last Synced: 2025-01-09T03:06:50.357Z (11 months ago)
- Topics: cryptocurrency, cryptography, rust, zero-knowledge, zero-knowledge-proof, zkp, zksnark, zksnarks
- Language: Rust
- Homepage: https://koukyosyumei.github.io/MyZKP/
- Size: 1.58 MB
- Stars: 22
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
```
███╗ ███╗ ██╗ ██╗ ███████╗ ██╗ ██╗ ██████╗ 🦀
████╗ ████║ ╚██╗ ██╔╝ ╚══███╔╝ ██║ ██╔╝ ██╔══██╗ 🦀
██╔████╔██║ ╚████╔╝ ███╔╝ █████╔╝ ██████╔╝
██║╚██╔╝██║ ╚██╔╝ ███╔╝ ██╔═██╗ ██╔═══╝ 🦀
██║ ╚═╝ ██║ ██║ ███████╗ ██║ ██╗ ██║ 🦀
╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ 🦀
```
# 🚀 Building Zero Knowledge Proofs 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.
- 🌟 Explore the accompanying textbook: [**Book of MyZKP**](https://koukyosyumei.github.io/MyZKP/).
- 📢 Contributions and feedback are encouraged to help make this project even better!
> [!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**
- 📝 [Computation Rule and Properties](https://koukyosyumei.github.io/MyZKP/number_theory/subsec1.html)
- ⚙️ [Semigroup, Group, Ring, and Field](https://koukyosyumei.github.io/MyZKP/number_theory/subsec2.html)
- 🔢 [Polynomials](https://koukyosyumei.github.io/MyZKP/number_theory/subsec3.html)
- 🌐 [Galois Field](https://koukyosyumei.github.io/MyZKP/number_theory/subsec4.html)
- 📈 [Elliptic Curve](https://koukyosyumei.github.io/MyZKP/number_theory/subsec5.html)
- 🔗 [Pairing](https://koukyosyumei.github.io/MyZKP/number_theory/subsec6.html)
- 🤔 [Useful Assumptions](https://koukyosyumei.github.io/MyZKP/number_theory/subsec7.html)
**🌀Basic of Polynomial Commitment**
- ⚔️ [KZG](https://koukyosyumei.github.io/MyZKP/polynomial_commitment/kzg.html)
- ♊ [Gemini](https://koukyosyumei.github.io/MyZKP/polynomial_commitment/gemini.html)
**🔒 Basic of zk-SNARKs**
- ⚡ [Arithmetization](https://koukyosyumei.github.io/MyZKP/zksnark/subsec1.html)
- 🛠️ [Proving Single Polynomial](https://koukyosyumei.github.io/MyZKP/zksnark/subsec2.html)
- 🐍 [Bringing It All Together: SNARK](https://koukyosyumei.github.io/MyZKP/zksnark/subsec3.html)
**🌟 Basic of zk-STARKs**
- 🌈 [FRI](https://koukyosyumei.github.io/MyZKP/zkstark/subsec1.html)
**💻 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.