Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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学院的基石





## 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)