WTF zk
English Version
零知识证明(zero-knowledge proof)入门教程,目的是让仅有高中数学基础的人也能入门zk。我们会使用python复现一些算法,所以你也需要学python。
我们最近在学习zero-knowledge proof,巩固一下细节,也写一个“WTF zk极简入门”,供小白们使用(编程大佬可以另找教程),每周更新1-3讲。
数学基础
第1章 数论入门
第1讲 整数运算基础:Code | 教程
第2讲 质数基础:Code | 教程
第3讲 欧几里得算法:Code | 教程
第4讲 拓展欧几里得算法:Code | 教程
第5讲 模运算基础:Code | 教程
第6讲 模运算除法:Code | 教程
第7讲 费马小定理:Code | 教程
第8讲 中国剩余定理:Code | 教程
第9讲 欧拉函数:Code | 教程
第10讲 欧拉定理:Code | 教程
里程碑01 RSA算法 Code | 教程 | 论文
第2章 抽象代数: 群论
第11讲 群: 教程
第12讲 子群: 教程
第13讲 陪集和拉格朗日定理: 教程
第14讲 正规子群和商群: 教程
第15讲 同态和同构: 教程
第16讲 Abel群: 教程
第17讲 循环群: 教程
第18讲 群的直积: 教程
第19讲 离散对数问题: 教程
里程碑02 Diffie-Hellman 密钥交换算法 Code | 教程 | 论文
里程碑03 ElGamal 加密和签名算法 Code | 教程 | 论文
第3章 抽象代数: 环和域
第20讲 环: 教程
第21讲 理想和商环: 教程
第22讲 环同态和同构: 教程
第23讲 域: 教程
第24讲 多项式基础: 教程
第25讲 多项式环: 教程
第26讲 域扩展: 教程
第27讲 有限域: 教程
第28讲 二次剩余: 教程
里程碑04 Goldwasser-Micali (GM) 算法 Code | 教程 | 论文
里程碑05 初探零知识证明 教程 | 论文
第4章 椭圆曲线
第29讲 椭圆曲线基础:Code | 教程
第30讲 有限域上的椭圆曲线:Code | 教程
第31讲 椭圆曲线离散对数问题:Code | 教程
第32讲 椭圆曲线密码学:Code | 教程
第33讲 扩域上的椭圆曲线:教程
第34讲 双线性配对基础:教程
第35讲 挠群和除子:Code | 教程
第36讲 Weil 配对:教程
第37讲 Miller 算法:Code | 教程
第38讲 Tate 配对:Code | 教程
第39讲 扩域上的 Weil 配对:教程
第40讲 常用椭圆曲线:Code | 教程
里程碑06 哈希函数 Hash Code | 教程
里程碑07 身份基加密 IBE Code | 教程
第5章 计算复杂性理论
第41讲 计算理论入门:Code | 教程
第42讲 图灵机:教程
第43讲 时间复杂度:Code | 教程
第44讲 P和NP:Code | 教程
第45讲 NP完全 教程
第46讲 电路复杂度 Code | 教程
第47讲 随机计算 教程
第48讲 交互式证明系统 教程
第49讲 概率可检验证明 PCP 教程
第50讲 线性 PCP 第一部分: R1CS 教程
第51讲 线性 PCP 第二部分: QAP 教程
里程碑08 Sumcheck Protocol 教程
WTF zk贡献者
贡献者是WTF学院的基石
WTF zk赞助商
Reference
-
Moonmath Manual by LeastAuthority
-
zk-learning MOOC
-
The RareSkills Book of Zero Knowledge
-
Number Theory Notes
-
密码学的数学基础
-
Cryptography 101 for Blockchain Developers by OpenZeppelin
-
Vitalik's blogs: Weil Pairing
-
探索零知识证明系列 by 郭宇 SecBit
-
Theory of Computation, MIT OpenCourseWare
-
Computational Complexity: A Modern Approach by Arora and Barak
-
Foundations of Probabilistic proofs, Chiesa Alessandro