-
Notifications
You must be signed in to change notification settings - Fork 151
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add learning resources * update learning_resources * update learning resources * Update learning_resources.md * update learning resources * add link --------- Co-authored-by: jotabulacios <45471455+jotabulacios@users.noreply.github.com> Co-authored-by: Mario Rugiero <mrugiero@gmail.com> Co-authored-by: Iñaki Garay <igarai@gmail.com>
- Loading branch information
1 parent
d728a83
commit 94c2293
Showing
2 changed files
with
98 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
# Roadmap | ||
|
||
## 1. Fundamentals of Cryptography and Mathematics | ||
|
||
### Key Concepts: | ||
- What is cryptography. | ||
- [Cryptography I - Dan Boneh: Videos 1, 2 and 3.](https://youtube.com/playlist?list=PL58C6Q25sEEHXvACYxiav_lC2DqSlC7Og&si=M8qItPK_HUy3WR7b) | ||
- Symmetric ciphers: the one time pad and stream ciphers. | ||
- [Cryptography I - Dan Boneh: Videos 6, 7, 8 and 9.](https://www.youtube.com/watch?v=pQkyFJp2eUg&list=PL58C6Q25sEEHXvACYxiav_lC2DqSlC7Og&index=7) | ||
- Exclusive or. | ||
- [Crypto101: Chapter 5](https://www.crypto101.io/) | ||
- Block ciphers. | ||
- [Crypto101: Chapter 6](https://www.crypto101.io/) | ||
- Number Theory: Modular arithmetic and prime numbers | ||
- [An Introduction to Mathematical Cryptography: Chapter 1](https://link.springer.com/book/10.1007/978-0-387-77993-5) | ||
- Public key cryptography: Discrete logarithms and Diffie-Hellman. | ||
- [An Introduction to Mathematical Cryptography: Chapters from 2.1 to 2.4](https://link.springer.com/book/10.1007/978-0-387-77993-5) | ||
- Abstract Algebra: Group Theory. | ||
- [An Introduction to Mathematical Cryptography: Chapter 2.5](https://link.springer.com/book/10.1007/978-0-387-77993-5) | ||
- Abstract Algebra: Rings and finite fields. | ||
- [An Introduction to Mathematical Cryptography: Chapter 2.10](https://link.springer.com/book/10.1007/978-0-387-77993-5) | ||
- Finite Field Theory: Operations and applications in cryptography. | ||
- RSA. | ||
- [How RSA Works](https://www.youtube.com/watch?v=qph77bTKJTM&t=1060s) | ||
- Basic Cryptography: hash functions, and digital signatures. | ||
- [What are Digital Signatures?](https://www.youtube.com/watch?v=s22eJ1eVLTU) | ||
|
||
|
||
## 2. Theory and Application of Elliptic Curves | ||
|
||
### Key Concepts: | ||
- Elliptic Curves over Finite Fields: Definition and operations. | ||
- [Elliptic Curves - Computerphile](https://www.youtube.com/watch?v=NF1pwjL9-DE) | ||
- Elliptic Curve Cryptography (ECC): Applications and advantages. | ||
- Points and Operations on Elliptic Curves: Point addition and scalar multiplication. | ||
- Pairing | ||
- [Pairing for Beginners](https://static1.squarespace.com/static/5fdbb09f31d71c1227082339/t/5ff394720493bd28278889c6/1609798774687/PairingsForBeginners.pdf) Chapter 1 & 2 | ||
|
||
|
||
## 3. Introduction to Zero-Knowledge Proofs | ||
|
||
### Key Concepts: | ||
- Definition and Properties: Completeness, soundness, and zero-knowledge. | ||
- [Computer Scientist Explains One Concept in 5 Levels of Difficulty](https://www.youtube.com/watch?v=fOGdb1CTu5c) | ||
|
||
|
||
## 4. SNARKs (Succinct Non-Interactive Arguments of Knowledge) | ||
|
||
### Key Concepts: | ||
- Introduction to SNARKs: Concepts and uses. | ||
- [What is a zk-SNARK?](https://www.youtube.com/watch?v=gcKCW7CNu_M) | ||
- Components of SNARKs: Arithmetization, constraint systems, and quadratic arithmetic programs (QAP). | ||
- [SNARKs vs. STARKs](https://zkhack.dev/whiteboard/module-four/) | ||
|
||
Related Papers | ||
[Pinocchio: Nearly Practical Verifiable Computation](https://eprint.iacr.org/2013/279.pdf) | ||
|
||
## 5. STARKs (Scalable Transparent ARguments of Knowledge) | ||
|
||
### Key Concepts: | ||
- Fundamentals of STARKs: Differences with SNARKs and applications. | ||
- [ZK-STARKs: Scalable Transparent Zero Knowledge Proofs](https://eprint.iacr.org/2018/046.pdf) | ||
- [Diving into Starks](https://www.youtube.com/watch?v=cDzTm3clrEo) | ||
- Multipart tutorial by Vitalik Buterin [I](https://vitalik-eth-limo.translate.goog/general/2017/11/09/starks_part_1.html?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es-419&_x_tr_pto=sc) [II](https://vitalik.eth.limo/general/2017/11/22/starks_part_2.html) & [III](https://vitalik.eth.limo/general/2018/07/21/starks_part_3.html) | ||
- Protocols and Security in STARKs: FRI (Fast Reed-Solomon IOPP) and AIR (Algebraic Intermediate Representation) | ||
|
||
# Other learning resources | ||
|
||
This list contains papers, videos, books, and links to resources that we found useful to learn about zero-knowledge proofs and cryptography. The list is by no means exhaustive and we will be updating it. | ||
|
||
## Videos | ||
|
||
- [ZK Whiteboard](https://zkhack.dev/whiteboard/) | ||
- [All the MATH you need to understand SNARKs and STARKs](https://www.youtube.com/playlist?list=PLFX2cij7c2PynTNWDBzmzaD6ij170ILbQ) | ||
|
||
## Books | ||
|
||
- [Thaler - Proofs, Arguments and Zero-knowledge](https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.pdf) | ||
|
||
## Papers | ||
|
||
- [Pinocchio](https://eprint.iacr.org/2013/279.pdf) | ||
- [Plonk](https://eprint.iacr.org/2019/953.pdf) | ||
- [Square Span Programs with Applications to Succinct NIZK Arguments](https://eprint.iacr.org/2014/718.pdf) | ||
- [KZG Polynomial Commitment Scheme](https://cacr.uwaterloo.ca/techreports/2010/cacr2010-10.pdf) | ||
|
||
## Courses | ||
- [Modern Zero Knowledge Cryptography - MIT IAP 2023](https://zkiap.com) | ||
- [Zero Knowledge Proofs](https://zk-learning.org) Dan Boneh, Shafi Goldwasser, Dawn Song, Justin Thaler & Yupeng Zhang | ||
|
||
## Links | ||
|
||
- [STARK-101 - Python](https://starkware.co/stark-101/) | ||
- [BabySnark Protocol](https://github.com/lambdaclass/lambdaworks/tree/main/examples/baby-snark) |