{"id":14980011,"url":"https://github.com/wtfacademy/wtf-zk","last_synced_at":"2025-04-10T23:28:46.454Z","repository":{"id":210046357,"uuid":"725241944","full_name":"WTFAcademy/WTF-zk","owner":"WTFAcademy","description":"零知识证明入门教程。Comprehensive Zero-Knowledge Proofs Tutorial. #zk #WIP","archived":false,"fork":false,"pushed_at":"2025-02-22T02:50:28.000Z","size":85476,"stargazers_count":1842,"open_issues_count":15,"forks_count":231,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-03T17:53:02.815Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WTFAcademy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-29T18:26:06.000Z","updated_at":"2025-04-03T06:35:39.000Z","dependencies_parsed_at":"2024-12-26T06:16:40.202Z","dependency_job_id":null,"html_url":"https://github.com/WTFAcademy/WTF-zk","commit_stats":{"total_commits":383,"total_committers":42,"mean_commits":9.119047619047619,"dds":0.4255874673629243,"last_synced_commit":"1bea7773913f1f20e7b68f31a6061c798cf17d2c"},"previous_names":["wtfacademy/wtf-zk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WTFAcademy%2FWTF-zk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WTFAcademy%2FWTF-zk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WTFAcademy%2FWTF-zk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WTFAcademy%2FWTF-zk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WTFAcademy","download_url":"https://codeload.github.com/WTFAcademy/WTF-zk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248314637,"owners_count":21083094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-09-24T14:01:09.194Z","updated_at":"2025-04-10T23:28:46.436Z","avatar_url":"https://github.com/WTFAcademy.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WTF zk\n\n[English Version](https://github.com/WTFAcademy/WTF-zk/blob/main/Languages/en/README.md)\n\n零知识证明（zero-knowledge proof）入门教程，目的是让仅有高中数学基础的人也能入门zk。我们会使用python复现一些算法，所以你也需要学python。\n\n\u003e 我们最近在学习zero-knowledge proof，巩固一下细节，也写一个“WTF zk极简入门”，供小白们使用（编程大佬可以另找教程），每周更新1-3讲。\n\n## 数学基础\n\n### 第1章 数论入门\n\n**第1讲 整数运算基础**：[Code](./01_Integer/Integer.ipynb) | [教程](./01_Integer/readme.md) \n\n**第2讲 质数基础**：[Code](./02_Prime/Prime.ipynb) | [教程](./02_Prime/readme.md) \n\n**第3讲 欧几里得算法**：[Code](./03_Euclidean/Euclidean.ipynb) | [教程](./03_Euclidean/readme.md) \n\n**第4讲 拓展欧几里得算法**：[Code](./04_EEA/EEA.ipynb) | [教程](./04_EEA/readme.md) \n\n**第5讲 模运算基础**：[Code](./05_Modular/Modular.ipynb) | [教程](./05_Modular/readme.md) \n\n**第6讲 模运算除法**：[Code](./06_Division/Division.ipynb) | [教程](./06_Division/readme.md) \n\n**第7讲 费马小定理**：[Code](./07_Exp/Exp.ipynb) | [教程](./07_Exp/readme.md) \n\n**第8讲 中国剩余定理**：[Code](./08_Remainder/Remainder.ipynb) | [教程](./08_Remainder/readme.md) \n\n**第9讲 欧拉函数**：[Code](./09_Unit/Unit.ipynb) | [教程](./09_Unit/readme.md) \n\n**第10讲 欧拉定理**：[Code](./10_Euler/Euler.ipynb) | [教程](./10_Euler/readme.md) \n\n**里程碑01 RSA算法** [Code](./MS01_RSA/RSA.ipynb) | [教程](./MS01_RSA/readme.md) | [论文](./papers/RSA_paper.pdf)\n\n### 第2章 抽象代数: 群论\n\n**第11讲 群**： [教程](./11_Group/readme.md) \n\n**第12讲 子群**： [教程](./12_Subgroup/readme.md) \n\n**第13讲 陪集和拉格朗日定理**： [教程](./13_Coset/readme.md) \n\n**第14讲 正规子群和商群**： [教程](./14_Quotient/readme.md) \n\n**第15讲 同态和同构**： [教程](./15_Homomorphism/readme.md) \n\n**第16讲 Abel群**： [教程](./16_Abel/readme.md) \n\n**第17讲 循环群**： [教程](./17_Cyclic/readme.md) \n\n**第18讲 群的直积**： [教程](./18_DirectProduct/readme.md) \n\n**第19讲 离散对数问题**： [教程](./19_DLP/readme.md) \n\n**里程碑02 Diffie-Hellman 密钥交换算法** [Code](./MS02_DH/Difie_Hellman.ipynb) | [教程](./MS02_DH/readme.md) | [论文](./papers/Diffie_Hellman.pdf)\n\n**里程碑03 ElGamal 加密和签名算法** [Code](./MS03_ElGamal/ElGamal.ipynb) | [教程](./MS03_ElGamal/readme.md) | [论文](./papers/ElGamal.pdf)\n\n### 第3章 抽象代数: 环和域\n\n**第20讲 环**： [教程](./20_Ring/readme.md) \n\n**第21讲 理想和商环**： [教程](./21_Ideal/readme.md) \n\n**第22讲 环同态和同构**： [教程](./22_RingHomo/readme.md) \n\n**第23讲 域**： [教程](./23_Field/readme.md) \n\n**第24讲 多项式基础**： [教程](./24_Polynomial/readme.md) \n\n**第25讲 多项式环**： [教程](./25_PolyRing/readme.md) \n\n**第26讲 域扩展**： [教程](./26_FieldExtension/readme.md) \n\n**第27讲 有限域**： [教程](./27_GaloisField/readme.md) \n\n**第28讲 二次剩余**： [教程](./28_Quadratic/readme.md) \n\n**里程碑04 Goldwasser-Micali (GM) 算法** [Code](./MS04_ProbEncryption/GM.ipynb) | [教程](./MS04_ProbEncryption/readme.md) | [论文](./papers/Probabilistic_Encryption.pdf)\n\n**里程碑05 初探零知识证明** [教程](./MS05_zkExample/readme.md) | [论文](./papers/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf)\n\n### 第4章 椭圆曲线\n\n**第29讲 椭圆曲线基础**：[Code](./29_EllipticCurve/EllipticCurve.ipynb) | [教程](./29_EllipticCurve/readme.md) \n\n**第30讲 有限域上的椭圆曲线**：[Code](./30_FiniteEC/FiniteEC.ipynb) | [教程](./30_FiniteEC/readme.md) \n\n**第31讲 椭圆曲线离散对数问题**：[Code](./31_ECDLP/ECDLP.ipynb) | [教程](./31_ECDLP/readme.md) \n\n**第32讲 椭圆曲线密码学**：[Code](./32_ECC/ECC.ipynb) | [教程](./32_ECC/readme.md) \n\n**第33讲 扩域上的椭圆曲线**：[教程](./33_ECExtension/readme.md) \n\n**第34讲 双线性配对基础**：[教程](./34_Pairing/readme.md) \n\n**第35讲 挠群和除子**：[Code](./35_TorsionGroup/TorsionGroup.sage) | [教程](./35_TorsionGroup/readme.md) \n\n**第36讲 Weil 配对**：[教程](./36_WeilPairing/readme.md) \n\n**第37讲 Miller 算法**：[Code](./37_MillerAlgo/WeilPairing.sage) | [教程](./37_MillerAlgo/readme.md) \n\n**第38讲 Tate 配对**：[Code](./38_TatePairing/Ate.ipynb) | [教程](./38_TatePairing/readme.md) \n\n**第39讲 扩域上的 Weil 配对**：[教程](./39_PairingExtension/readme.md) \n\n**第40讲 常用椭圆曲线**：[Code](./40_PopularCurves/40_PopularCurves.ipynb) | [教程](./40_PopularCurves/readme.md) \n\n**里程碑06 哈希函数 Hash** [Code](./MS06_Hash/Hash.ipynb) | [教程](./MS06_Hash/readme.md)\n\n**里程碑07 身份基加密 IBE** [Code](./MS07_IBE/IBE.ipynb) | [教程](./MS07_IBE/readme.md)\n\n### 第5章 计算复杂性理论\n\n**第41讲 计算理论入门**：[Code](./41_Computation/41_Computation.ipynb) | [教程](./41_Computation/readme.md) \n\n**第42讲 图灵机**：[教程](./42_TuringMachine/readme.md) \n\n**第43讲 时间复杂度**：[Code](./43_Complexity/43_Complexity.ipynb) | [教程](./43_Complexity/readme.md) \n\n**第44讲 P和NP**：[Code](./44_PandNP/PandNP.ipynb) | [教程](./44_PandNP/readme.md) \n\n**第45讲 NP完全** [教程](./45_NPComplete/readme.md) \n\n**第46讲 电路复杂度** [Code](./46_CircuitComplexity/CircuitComplexity.ipynb) | [教程](./46_CircuitComplexity/readme.md) \n\n**第47讲 随机计算** [教程](./47_ProbComputation/readme.md) \n\n**第48讲 交互式证明系统** [教程](./48_InteractiveProof/readme.md) \n\n**第49讲 概率可检验证明 PCP** [教程](./49_PCP/readme.md) \n\n**第50讲 线性 PCP 第一部分: R1CS** [教程](./50_R1CS/readme.md)\n\n**第51讲 线性 PCP 第二部分: QAP** [教程](./51_QAP/readme.md)\n\n**里程碑08 Sumcheck Protocol** [教程](./MS08_Sumcheck/readme.md)\n\n## WTF zk贡献者\n\u003cdiv align=\"center\"\u003e\n  \u003ch4 align=\"center\"\u003e\n    贡献者是WTF学院的基石\n  \u003c/h4\u003e\n  \u003ca href=\"https://github.com/WTFAcademy/WTF-zk/graphs/contributors\"\u003e\n    \u003cimg src=\"https://contrib.rocks/image?repo=WTFAcademy/WTF-zk\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## WTF zk赞助商\n\n![](./img/full_logo_zksync-black.png)\n\n## Reference\n\n1. [Moonmath Manual by LeastAuthority](https://github.com/LeastAuthority/moonmath-manual)\n\n2. [zk-learning MOOC](https://zk-learning.org/)\n\n3. [The RareSkills Book of Zero Knowledge](https://www.rareskills.io/zk-book)\n\n4. [Number Theory Notes](https://crypto.stanford.edu/pbc/notes/numbertheory/)\n\n5. [密码学的数学基础](https://space.bilibili.com/552018206/channel/collectiondetail?sid=436262)\n\n6. [Cryptography 101 for Blockchain Developers by OpenZeppelin](https://www.youtube.com/watch?v=9TFEBuANioo)\n\n7. Vitalik's blogs: [Weil Pairing](https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627)\n\n8. [探索零知识证明系列 by 郭宇 SecBit](https://github.com/sec-bit/learning-zkp/tree/master)\n\n9. [Theory of Computation, MIT OpenCourseWare](https://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/)\n\n10. [Computational Complexity: A Modern Approach by Arora and Barak](https://www.cs.princeton.edu/theory/complexity/)\n\n11. [Foundations of Probabilistic proofs, Chiesa Alessandro](https://ic-people.epfl.ch/~achiesa/classes/CS294-F2020.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwtfacademy%2Fwtf-zk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwtfacademy%2Fwtf-zk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwtfacademy%2Fwtf-zk/lists"}