Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wtfacademy/wtf-zk
零知识证明入门教程。Comprehensive Zero-Knowledge Proofs Tutorial. #zk #WIP
https://github.com/wtfacademy/wtf-zk
abstract-algebra bitcoin blockchain cryptography elliptic-curve-cryptography elliptic-curves ethereum group-theory number-theory snark stark zero-knowledge zero-knowledge-proofs zk zkp zkproof zksnarks
Last synced: 3 days ago
JSON representation
零知识证明入门教程。Comprehensive Zero-Knowledge Proofs Tutorial. #zk #WIP
- Host: GitHub
- URL: https://github.com/wtfacademy/wtf-zk
- Owner: WTFAcademy
- License: mit
- Created: 2023-11-29T18:26:06.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-19T15:08:09.000Z (2 months ago)
- Last Synced: 2024-12-19T03:04:27.064Z (3 days ago)
- Topics: abstract-algebra, bitcoin, blockchain, cryptography, elliptic-curve-cryptography, elliptic-curves, ethereum, group-theory, number-theory, snark, stark, zero-knowledge, zero-knowledge-proofs, zk, zkp, zkproof, zksnarks
- Language: Jupyter Notebook
- Homepage:
- Size: 81.5 MB
- Stars: 1,682
- Watchers: 15
- Forks: 203
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WTF zk
[English Version](https://github.com/WTFAcademy/WTF-zk/blob/main/Languages/en/README.md)
零知识证明(zero-knowledge proof)入门教程,目的是让仅有高中数学基础的人也能入门zk。我们会使用python复现一些算法,所以你也需要学python。
> 我们最近在学习zero-knowledge proof,巩固一下细节,也写一个“WTF zk极简入门”,供小白们使用(编程大佬可以另找教程),每周更新1-3讲。
## 数学基础
### 第1章 数论入门
**第1讲 整数运算基础**:[Code](./01_Integer/Integer.ipynb) | [教程](./01_Integer/readme.md)
**第2讲 质数基础**:[Code](./02_Prime/Prime.ipynb) | [教程](./02_Prime/readme.md)
**第3讲 欧几里得算法**:[Code](./03_Euclidean/Euclidean.ipynb) | [教程](./03_Euclidean/readme.md)
**第4讲 拓展欧几里得算法**:[Code](./04_EEA/EEA.ipynb) | [教程](./04_EEA/readme.md)
**第5讲 模运算基础**:[Code](./05_Modular/Modular.ipynb) | [教程](./05_Modular/readme.md)
**第6讲 模运算除法**:[Code](./06_Division/Division.ipynb) | [教程](./06_Division/readme.md)
**第7讲 费马小定理**:[Code](./07_Exp/Exp.ipynb) | [教程](./07_Exp/readme.md)
**第8讲 中国剩余定理**:[Code](./08_Remainder/Remainder.ipynb) | [教程](./08_Remainder/readme.md)
**第9讲 欧拉函数**:[Code](./09_Unit/Unit.ipynb) | [教程](./09_Unit/readme.md)
**第10讲 欧拉定理**:[Code](./10_Euler/Euler.ipynb) | [教程](./10_Euler/readme.md)
**里程碑01 RSA算法** [Code](./MS01_RSA/RSA.ipynb) | [教程](./MS01_RSA/readme.md) | [论文](./papers/RSA_paper.pdf)
### 第2章 抽象代数: 群论
**第11讲 群**: [教程](./11_Group/readme.md)
**第12讲 子群**: [教程](./12_Subgroup/readme.md)
**第13讲 陪集和拉格朗日定理**: [教程](./13_Coset/readme.md)
**第14讲 正规子群和商群**: [教程](./14_Quotient/readme.md)
**第15讲 同态和同构**: [教程](./15_Homomorphism/readme.md)
**第16讲 Abel群**: [教程](./16_Abel/readme.md)
**第17讲 循环群**: [教程](./17_Cyclic/readme.md)
**第18讲 群的直积**: [教程](./18_DirectProduct/readme.md)
**第19讲 离散对数问题**: [教程](./19_DLP/readme.md)
**里程碑02 Diffie-Hellman 密钥交换算法** [Code](./MS02_DH/Difie_Hellman.ipynb) | [教程](./MS02_DH/readme.md) | [论文](./papers/Diffie_Hellman.pdf)
**里程碑03 ElGamal 加密和签名算法** [Code](./MS03_ElGamal/ElGamal.ipynb) | [教程](./MS03_ElGamal/readme.md) | [论文](./papers/ElGamal.pdf)
### 第3章 抽象代数: 环和域
**第20讲 环**: [教程](./20_Ring/readme.md)
**第21讲 理想和商环**: [教程](./21_Ideal/readme.md)
**第22讲 环同态和同构**: [教程](./22_RingHomo/readme.md)
**第23讲 域**: [教程](./23_Field/readme.md)
**第24讲 多项式基础**: [教程](./24_Polynomial/readme.md)
**第25讲 多项式环**: [教程](./25_PolyRing/readme.md)
**第26讲 域扩展**: [教程](./26_FieldExtension/readme.md)
**第27讲 有限域**: [教程](./27_GaloisField/readme.md)
**第28讲 二次剩余**: [教程](./28_Quadratic/readme.md)
**里程碑04 Goldwasser-Micali (GM) 算法** [Code](./MS04_ProbEncryption/GM.ipynb) | [教程](./MS04_ProbEncryption/readme.md) | [论文](./papers/Probabilistic_Encryption.pdf)
**里程碑05 初探零知识证明** [教程](./MS05_zkExample/readme.md) | [论文](./papers/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf)
### 第4章 椭圆曲线
**第29讲 椭圆曲线基础**:[Code](./29_EllipticCurve/EllipticCurve.ipynb) | [教程](./29_EllipticCurve/readme.md)
**第30讲 有限域上的椭圆曲线**:[Code](./30_FiniteEC/FiniteEC.ipynb) | [教程](./30_FiniteEC/readme.md)
**第31讲 椭圆曲线离散对数问题**:[Code](./31_ECDLP/ECDLP.ipynb) | [教程](./31_ECDLP/readme.md)
**第32讲 椭圆曲线密码学**:[Code](./32_ECC/ECC.ipynb) | [教程](./32_ECC/readme.md)
**第33讲 扩域上的椭圆曲线**:[教程](./33_ECExtension/readme.md)
**第34讲 双线性配对基础**:[教程](./34_Pairing/readme.md)
**第35讲 挠群和除子**:[Code](./35_TorsionGroup/TorsionGroup.sage) | [教程](./35_TorsionGroup/readme.md)
**第36讲 Weil 配对**:[教程](./36_WeilPairing/readme.md)
**第37讲 Miller 算法**:[Code](./37_MillerAlgo/WeilPairing.sage) | [教程](./37_MillerAlgo/readme.md)
**第38讲 Tate 配对**:[Code](./38_TatePairing/Ate.ipynb) | [教程](./38_TatePairing/readme.md)
**第39讲 扩域上的 Weil 配对**:[教程](./39_PairingExtension/readme.md)
**第40讲 常用椭圆曲线**:[Code](./40_PopularCurves/40_PopularCurves.ipynb) | [教程](./40_PopularCurves/readme.md)
**里程碑06 哈希函数 Hash** [Code](./MS06_Hash/Hash.ipynb) | [教程](./MS06_Hash/readme.md)
**里程碑07 身份基加密 IBE** [Code](./MS07_IBE/IBE.ipynb) | [教程](./MS07_IBE/readme.md)
### 第5章 计算复杂性理论
**第41讲 计算理论入门**:[Code](./41_Computation/41_Computation.ipynb) | [教程](./41_Computation/readme.md)
**第42讲 图灵机**:[教程](./42_TuringMachine/readme.md)
**第43讲 时间复杂度**:[Code](./43_Complexity/43_Complexity.ipynb) | [教程](./43_Complexity/readme.md)
**第44讲 P和NP**:[Code](./44_PandNP/PandNP.ipynb) | [教程](./44_PandNP/readme.md)
**第45讲 NP完全** [教程](./45_NPComplete/readme.md)
**第46讲 电路复杂度** [Code](./46_CircuitComplexity/CircuitComplexity.ipynb) | [教程](./46_CircuitComplexity/readme.md)
**第47讲 随机计算** [教程](./47_ProbComputation/readme.md)
**第48讲 交互式证明系统** [教程](./48_InteractiveProof/readme.md)
**第49讲 概率可检验证明 PCP** [教程](./49_PCP/readme.md)
**第50讲 线性 PCP 第一部分: R1CS** [教程](./50_R1CS/readme.md)
**第51讲 线性 PCP 第二部分: QAP** [教程](./51_QAP/readme.md)
**里程碑08 Sumcheck Protocol** [教程](./MS08_Sumcheck/readme.md)
## WTF zk贡献者
## WTF zk赞助商
![](./img/full_logo_zksync-black.png)
## Reference
1. [Moonmath Manual by LeastAuthority](https://github.com/LeastAuthority/moonmath-manual)
2. [zk-learning MOOC](https://zk-learning.org/)
3. [The RareSkills Book of Zero Knowledge](https://www.rareskills.io/zk-book)
4. [Number Theory Notes](https://crypto.stanford.edu/pbc/notes/numbertheory/)
5. [密码学的数学基础](https://space.bilibili.com/552018206/channel/collectiondetail?sid=436262)
6. [Cryptography 101 for Blockchain Developers by OpenZeppelin](https://www.youtube.com/watch?v=9TFEBuANioo)
7. Vitalik's blogs: [Weil Pairing](https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627)
8. [探索零知识证明系列 by 郭宇 SecBit](https://github.com/sec-bit/learning-zkp/tree/master)
9. [Theory of Computation, MIT OpenCourseWare](https://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/)
10. [Computational Complexity: A Modern Approach by Arora and Barak](https://www.cs.princeton.edu/theory/complexity/)
11. [Foundations of Probabilistic proofs, Chiesa Alessandro](https://ic-people.epfl.ch/~achiesa/classes/CS294-F2020.html)