Skip to content

Commit

Permalink
Update Readme (#9)
Browse files Browse the repository at this point in the history
* Update

* update
  • Loading branch information
Koukyosyumei authored Dec 20, 2024
1 parent 085209d commit 0586208
Show file tree
Hide file tree
Showing 24 changed files with 246 additions and 286 deletions.
46 changes: 44 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,49 @@
╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝
```

# Building Zero Knowledge Proof from Scratch in Rust
# 🚀 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/).

> [!WARNING]
> Warn: This repo is still working in progress. It is likely to contain bugs/wrong-information.
> This repository is a work in progress and may contain bugs or inaccuracies. Contributions and feedback are welcome!

## Index

**🧮 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 zk-SNARKs**

-[Arithmetization](https://koukyosyumei.github.io/MyZKP/zksnark/subsec2.html)
- 🛠️ [Proving Single Polynomial](https://koukyosyumei.github.io/MyZKP/zksnark/subsec3.html)

**🌟 Basic of zk-STARKs**

- ✍️ TBD

**💻 Basic of zkVM**

- ✍️ TBD

## 🛠️ Code Reference

| Module | 📂 File Path |
|---------------------|---------------------------------------------------|
| **Ring** | [ring.rs](./myzkp/src/modules/ring.rs) |
| **Field** | [field.rs](./myzkp/src/modules/field.rs) |
| **Extended Field** | [efield.rs](./myzkp/src/modules/efield.rs) |
| **Polynomial** | [polynomial.rs](./myzkp/src/modules/polynomial.rs)|
| **Elliptic Curve** | [curve.rs](./myzkp/src/modules/curve.rs) |
| **zkSNARKs** | ✍️ Coming soon |

## **Contributions are Welcome!**
Feel free to submit issues or pull requests to enhance the project.
2 changes: 1 addition & 1 deletion book/book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ title = "Book of MyZKP"
[output.html]
mathjax-support = true
additional-css = ["theme/css/custom.css"]
it-repository-url = "https://github.com/Koukyosyumei/MyZKP/tree/main"
git-repository-url = "https://github.com/Koukyosyumei/MyZKP/tree/main"
48 changes: 46 additions & 2 deletions book/src/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# MyZKP: Building Zero Knowledge Proof from Scratch in Rust
# 🚀 MyZKP: Building Zero Knowledge Proof from Scratch in Rust

```
███╗ ███╗ ██╗ ██╗ ███████╗ ██╗ ██╗ ██████╗
Expand All @@ -7,4 +7,48 @@
██║╚██╔╝██║ ╚██╔╝ ███╔╝ ██╔═██╗ ██╔═══╝
██║ ╚═╝ ██║ ██║ ███████╗ ██║ ██╗ ██║
╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝
```
```

**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**

- 📝 [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 zk-SNARKs**

-[Arithmetization](https://koukyosyumei.github.io/MyZKP/zksnark/subsec2.html)
- 🛠️ [Proving Single Polynomial](https://koukyosyumei.github.io/MyZKP/zksnark/subsec3.html)

**🌟 Basic of zk-STARKs**

- ✍️ TBD

**💻 Basic of zkVM**

- ✍️ TBD

## 🛠️ Code Reference

| Module | 📂 File Path |
|---------------------|---------------------------------------------------|
| **Ring** | [ring.rs](https://github.com/Koukyosyumei/MyZKP/tree/main/myzkp/src/modules/ring.rs) |
| **Field** | [field.rs](https://github.com/Koukyosyumei/MyZKP/tree/main/myzkp/src/modules/field.rs) |
| **Extended Field** | [efield.rs](https://github.com/Koukyosyumei/MyZKP/tree/main/myzkp/src/modules/efield.rs) |
| **Polynomial** | [polynomial.rs](https://github.com/Koukyosyumei/MyZKP/tree/main/myzkp/src/modules/polynomial.rs)|
| **Elliptic Curve** | [curve.rs](https://github.com/Koukyosyumei/MyZKP/tree/main/myzkp/src/modules/curve.rs) |
| **zkSNARKs** | ✍️ Coming soon |

## **Contributions are Welcome!**
Feel free to submit issues or pull requests to enhance the project.
2 changes: 1 addition & 1 deletion book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
- [Introduction](./README.md)
- [Basics of Number Theory](./number_theory/README.md)
- [Computation Rule and Properties](./number_theory/subsec1.md)
- [Semigroup, Group, Ring](./number_theory/subsec2.md)
- [Semigroup, Group, Ring, and Field](./number_theory/subsec2.md)
- [Polynomials](./number_theory/subsec3.md)
- [Galois Field](./number_theory/subsec4.md)
- [Elliptic Curve](./number_theory/subsec5.md)
Expand Down
2 changes: 1 addition & 1 deletion book/src/number_theory/subsec2.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Semigroup, Group, Ring
# Semigroup, Group, Ring, and Field

### Definition: Semigroup

Expand Down
21 changes: 4 additions & 17 deletions docs/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@

<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div class="sidebar-scrollbox">
<ol class="chapter"><li class="chapter-item expanded "><a href="index.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li class="chapter-item expanded "><a href="number_theory/index.html"><strong aria-hidden="true">2.</strong> Basics of Number Theory</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="number_theory/subsec1.html"><strong aria-hidden="true">2.1.</strong> Computation Rule and Properties</a></li><li class="chapter-item expanded "><a href="number_theory/subsec2.html"><strong aria-hidden="true">2.2.</strong> Semigroup, Group, Ring</a></li><li class="chapter-item expanded "><a href="number_theory/subsec3.html"><strong aria-hidden="true">2.3.</strong> Polynomials</a></li><li class="chapter-item expanded "><a href="number_theory/subsec4.html"><strong aria-hidden="true">2.4.</strong> Galois Field</a></li><li class="chapter-item expanded "><a href="number_theory/subsec5.html"><strong aria-hidden="true">2.5.</strong> Elliptic Curve</a></li><li class="chapter-item expanded "><a href="number_theory/subsec6.html"><strong aria-hidden="true">2.6.</strong> Pairing</a></li><li class="chapter-item expanded "><a href="number_theory/subsec7.html"><strong aria-hidden="true">2.7.</strong> Useful Assumptions</a></li></ol></li><li class="chapter-item expanded "><a href="zksnark/index.html"><strong aria-hidden="true">3.</strong> Basics of zk-SNARKs</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="zksnark/subsec2.html"><strong aria-hidden="true">3.1.</strong> Arithmetization</a></li><li class="chapter-item expanded "><a href="zksnark/subsec3.html"><strong aria-hidden="true">3.2.</strong> Proving Single Polynomial</a></li></ol></li><li class="chapter-item expanded "><a href="zkstark/index.html"><strong aria-hidden="true">4.</strong> Basics of zk-STARKS</a></li><li class="chapter-item expanded "><a href="zkvm/index.html"><strong aria-hidden="true">5.</strong> Basics of zkVM</a></li></ol>
<ol class="chapter"><li class="chapter-item expanded "><a href="index.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li class="chapter-item expanded "><a href="number_theory/index.html"><strong aria-hidden="true">2.</strong> Basics of Number Theory</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="number_theory/subsec1.html"><strong aria-hidden="true">2.1.</strong> Computation Rule and Properties</a></li><li class="chapter-item expanded "><a href="number_theory/subsec2.html"><strong aria-hidden="true">2.2.</strong> Semigroup, Group, Ring, and Field</a></li><li class="chapter-item expanded "><a href="number_theory/subsec3.html"><strong aria-hidden="true">2.3.</strong> Polynomials</a></li><li class="chapter-item expanded "><a href="number_theory/subsec4.html"><strong aria-hidden="true">2.4.</strong> Galois Field</a></li><li class="chapter-item expanded "><a href="number_theory/subsec5.html"><strong aria-hidden="true">2.5.</strong> Elliptic Curve</a></li><li class="chapter-item expanded "><a href="number_theory/subsec6.html"><strong aria-hidden="true">2.6.</strong> Pairing</a></li><li class="chapter-item expanded "><a href="number_theory/subsec7.html"><strong aria-hidden="true">2.7.</strong> Useful Assumptions</a></li></ol></li><li class="chapter-item expanded "><a href="zksnark/index.html"><strong aria-hidden="true">3.</strong> Basics of zk-SNARKs</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="zksnark/subsec2.html"><strong aria-hidden="true">3.1.</strong> Arithmetization</a></li><li class="chapter-item expanded "><a href="zksnark/subsec3.html"><strong aria-hidden="true">3.2.</strong> Proving Single Polynomial</a></li></ol></li><li class="chapter-item expanded "><a href="zkstark/index.html"><strong aria-hidden="true">4.</strong> Basics of zk-STARKS</a></li><li class="chapter-item expanded "><a href="zkvm/index.html"><strong aria-hidden="true">5.</strong> Basics of zkVM</a></li></ol>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
Expand Down Expand Up @@ -151,6 +151,9 @@ <h1 class="menu-title">Book of MyZKP</h1>
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/Koukyosyumei/MyZKP/tree/main" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>

</div>
</div>
Expand Down Expand Up @@ -197,22 +200,6 @@ <h1 id="document-not-found-404"><a class="header" href="#document-not-found-404"

</div>

<!-- Livereload script (if served using the cli tool) -->
<script>
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
const socket = new WebSocket(wsAddress);
socket.onmessage = function (event) {
if (event.data === "reload") {
socket.close();
location.reload();
}
};

window.onbeforeunload = function() {
socket.close();
}
</script>



Expand Down
Loading

0 comments on commit 0586208

Please sign in to comment.