{"id":26436306,"url":"https://github.com/chenxingqiang/zero-knowledge-proofs","last_synced_at":"2026-02-02T03:36:59.240Z","repository":{"id":263785436,"uuid":"891377748","full_name":"chenxingqiang/zero-knowledge-proofs","owner":"chenxingqiang","description":"Zero Knowledge Proofs focusing on Basic Concepts, Interactive Learning, Zero Knowledge Proof Systems Comparison, Courses and Tutorials, SNARKs.","archived":false,"fork":false,"pushed_at":"2024-11-20T08:23:32.000Z","size":938,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T07:02:07.128Z","etag":null,"topics":["academic","ai","knowledge","library","machine-learning","proofs","quantum","research","tool","zero","zero-knowledge-proofs"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chenxingqiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE-OF-CONDUCT.md","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":"2024-11-20T08:22:31.000Z","updated_at":"2025-05-24T11:24:03.000Z","dependencies_parsed_at":"2024-11-20T11:02:54.455Z","dependency_job_id":"3c217ea2-2289-478e-b7cf-d574ee6d3fa6","html_url":"https://github.com/chenxingqiang/zero-knowledge-proofs","commit_stats":null,"previous_names":["chenxingqiang/zero-knowledge-proofs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chenxingqiang/zero-knowledge-proofs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fzero-knowledge-proofs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fzero-knowledge-proofs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fzero-knowledge-proofs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fzero-knowledge-proofs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chenxingqiang","download_url":"https://codeload.github.com/chenxingqiang/zero-knowledge-proofs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenxingqiang%2Fzero-knowledge-proofs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29003240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T01:32:03.847Z","status":"online","status_checked_at":"2026-02-02T02:00:07.448Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["academic","ai","knowledge","library","machine-learning","proofs","quantum","research","tool","zero","zero-knowledge-proofs"],"created_at":"2025-03-18T08:16:14.874Z","updated_at":"2026-02-02T03:36:59.195Z","avatar_url":"https://github.com/chenxingqiang.png","language":null,"readme":"# Awesome Zero Knowledge Proofs (ZKP) Resources\n\nCurated by [chenxingqiang](https://github.com/chenxingqiang)\n\n## Table of Contents\n\n- [General Introduction](#general-introduction)\n- [Courses and Tutorials](#courses-and-tutorials)\n- [Programming Languages \u0026 Tools](#programming-languages--tools)\n- [Proof Systems Comparison](#proof-systems-comparison)\n- [Major Proof Systems](#major-proof-systems)\n- [Applications](#applications)\n- [Communities \u0026 Social Media](#communities--social-media)\n\n## General Introduction\n\n### Basic Concepts\n- [Zero Knowledge Proofs: An Illustrated Primer](https://blog.cryptographyengineering.com/2014/11/27/zero-knowledge-proofs-illustrated-primer/) by Matthew Green\n- [ZK Basics Cheatsheet](https://github.com/ventali/awesome-zk/ZK-Basics-Cheatsheet.md) - A \"for (not too much) dummies\" poster\n- [A Non-Mathematical Introduction to Zero Knowledge Proof](https://github.com/ventali/awesome-zk/non-mathematical-introduction.md)\n\n### ZK Whiteboard Sessions by ZK Hack\n1. What is a SNARK?\n2. Building a SNARK (Part 1)\n3. Building a SNARK (Part 2)\n4. SNARKS vs. STARKS\n5. PLONK and Custom Gates\n6. Lookup Arguments for Performance Optimisation\n7. Zero Knowledge Virtual Machines (zkVM)\n8. Achieving Decentralised Private Computation\n9. Introduction to zkRollups\n\n### Hands-On Tutorial Series\n- [A Hands-On Tutorial for Zero-Knowledge Proofs](https://github.com/starkware-industries/stark-tutorial) by Shir Peled (StarkWare)\n- [Zero-Knowledge Proofs for Engineers](https://www.zkproof.org/2020/03/16/zkproof-standards-workshop-4/) (Dark Forest)\n\n## Courses and Tutorials\n\n### Academic Courses\n- [The 9th BIU Winter School on Cryptography: Zero Knowledge](https://cyber.biu.ac.il/event/the-9th-biu-winter-school-on-cryptography/)\n- [UIUC: Applied Cryptography](https://courses.grainger.illinois.edu/ece498ac/sp2019/)\n- [MIT IAP 2023: Modern Zero Knowledge Cryptography](https://mit-public-courses-iap-2023.github.io/6.S096/)\n\n### Interactive Learning\n- [zk Battleship](https://github.com/battleship-zk/battleship) - Interactive course by sCrypt\n- [Circom and Snarkjs Tutorial](https://github.com/iden3/circom)\n- [0xPARC Learning Resources](https://0xparc.org/learning)\n\n## Programming Languages \u0026 Tools\n\n### Languages\n| Name | Type | GitHub | Documentation |\n|------|------|--------|---------------|\n| ZoKrates | Python subset | [Repo](https://github.com/Zokrates/ZoKrates) | [Docs](https://zokrates.github.io) |\n| Circom | HDL | [Repo](https://github.com/iden3/circom) | [Docs](https://docs.circom.io) |\n| SnarkyJS | TypeScript DSL | [Repo](https://github.com/o1-labs/snarkyjs) | [Docs](https://docs.minaprotocol.com/en/zkapps/snarkyjs-reference) |\n| Cairo | STARK | [Repo](https://github.com/starkware-libs/cairo-lang) | [Docs](https://cairo-lang.org/docs/) |\n| Leo | Functional | [Repo](https://github.com/AleoHQ/leo) | [Docs](https://developer.aleo.org/developer/language/layout/) |\n\n### Major Tools\n- ZoKrates: Toolbox for zkSNARKs\n- Snarkjs: JavaScript \u0026 WASM implementation\n- libsnark: C++ library\n- ethsnarks: Toolkit for Ethereum\n- gnark: Go library\n\n## Proof Systems Comparison\n\n### Key Metrics Comparison\n\n| Feature | SNARKs | STARKs | Bulletproofs |\n|---------|---------|---------|--------------|\n| Proving Time | O(N * log(N)) | O(N * poly-log(N)) | O(N * log(N)) |\n| Verification Time | ~O(1) | O(poly-log(N)) | O(N) |\n| Proof Size | ~O(1) | O(poly-log(N)) | O(log(N)) |\n| Trusted Setup | Required | Not Required | Not Required |\n| Post-quantum Security | No | Yes | No |\n\n## Major Proof Systems\n\n### SNARKs\n- Groth16\n- PLONK\n- Marlin\n- Sonic\n\n### STARKs\n- FRI-STARKs\n- SuperSonic\n- Fractal\n\n### Other Systems\n- Bulletproofs\n- SNORKs\n\n## Applications\n\n### Blockchain Applications\n- Privacy Coins:\n  - Zcash (SNARKs)\n  - Monero (Bulletproofs)\n  - Mina Protocol (Recursive SNARKs)\n  - Namada (SNARKs)\n  \n### Non-blockchain Applications\n- Machine Learning \u0026 AI:\n  - zkML (Zero-Knowledge Machine Learning)\n  - zk-MNIST\n  - zkCNN\n- Identity \u0026 Authentication:\n  - Proof of Passport\n  - Semaphore\n  - ZK Identity Systems\n- Gaming:\n  - Dark Forest\n  - Zordle\n  - zkAutoChess\n- Financial:\n  - Private Auctions\n  - Blind Bidding Systems\n  - Token Systems\n\n## Communities \u0026 Social Media\n\n- [Zero Knowledge Podcast](https://zeroknowledge.fm/)\n- [ZKProof](https://zkproof.org/)\n- [0xPARC](https://0xparc.org/)\n- [Awesome Zero Knowledge Twitter List](https://twitter.com/i/lists/1471426262552109059)\n\n## Additional Resources\n\n### Books\n- [Proofs, Arguments, and Zero-Knowledge](https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.pdf) by Justin Thaler\n- [The MoonMath Manual to zk-SNARKs](https://github.com/ZKProofs/moonmath-manual)\n- [A Graduate Course in Applied Cryptography](https://toc.cryptobook.us/) by Dan Boneh and Victor Shoup\n\n### Performance Benchmarks\n- [🏋️‍♀️ ZK Bench](https://github.com/nullchinchilla/zkbench) - Open source benchmarks for ZK implementations\n\n# Zero Knowledge Proof Systems Comparison\n\n*Notes: d: depth of circuit, h: width of subcircuits, c: number of copies of subcircuits, i: size of instance, w: size of witness, n: number of gates. All complexity is asymptotic*\n\n| ZKP name | Implementation/library | Prover Runtime | Verifier Runtime | CRS/SRS size | Proof size | Post Quantum Secure? | Universal? | Trusted Setup? | Updatable? | Crypto Assumptions |\n|----------|----------------------|----------------|------------------|--------------|------------|-------------------|------------|---------------|------------|-------------------|\n| SNARKs | libsnarkjn (C++) | nlogn | n | n | 1 | NO | NO | YES | NO | Knowledge of Exponent (q-type) |\n| Groth 2016 | bellman (in Rust) | nlogn | i | n | 1 (only 3 group elements) | NO | NO | YES | NO | Knowledge of Exponent (q-type) |\n| Hyrax 2017 | hyrax2K (in C++) | d(n+clog(c))+w | i+d(h+log(h+c)) | sqrt(w) | dlog(h+c)+sqrt(w) | NO | YES | NO | NO | Discrete Log |\n| ZK vSQL 2017 | N/A | nlog(c) | log(n) | log(n) | d*log(c) | NO | YES | NO | YES | Knowledge of Exponent (q-type) |\n| Ligero 2017 | libiop (in C++) | nlog(n) | c*log(c)+h*log*(h) | N/A | sqrt(n) | possible, no security proof | YES | NO | NO | hash function |\n| Bulletproofs 2017 | dalek (in Rust) | nlogn | nlogn | n | logn | NO | YES | NO | NO | Discrete Log |\n| BCC+2017 | N/A | n | n | N/A | sqrt(n) | possible, no security proof | YES | NO | NO | hash function |\n| BBC+2018 | N/A | nlogn | n | sqrt(n) | sqrt(nlogn) | possible, no security proof | YES | NO | NO | SIS |\n| STARKs 2018 | libSTARK (in C++) | n*polylog(n) | polylog(n) | N/A | (logn)^2 | possible, no security proof | YES | NO | NO | hash function |\n| Aurora 2018 | libiop (in C++) | nlog(n) | n | sqrt(n) | (logn)^2 | possible, no security proof | YES | NO | NO | hash function |\n| GKM+2018 | N/A (the previous version of Sonic) | nlogn | i | n^2 | 1 | NO | YES | NO | YES | Knowledge of Exponent (q-type) |\n| Sonic 2019 | sonic (in Rust) | nlogn | i+logn | n | 1 | NO | YES | NO | YES | AGM (algebraic group model) |\n| Fractal 19 | libiop (in C++) | nlogn | i+logn | n | 1 | NO | YES | NO | YES | AGM (algebraic group model) |\n| Libra 2019 (not facebook libra) | N/A (has implementation but not open-source) | n | dlogn | n | dlogn | NO | YES | YES | NO | Knowledge of Exponent (q-type) |\n| PLONK 2019 (based on Sonic) | plonk (not implemented by paper authors) | nlogn | i | n | 1 | NO | YES | NO | YES | AGM (algebraic group model) |\n| MARLIN 2019 (Concurrent Work of PLONK) | marlin (in Rust) | nlogn | i+logn | n | 1 | NO | YES | NO | YES | AGM (algebraic group model) |\n\n## Important Research Lines\nThere are basically two important lines of research:\n1. Groth 16 -\u003e GKM+18 -\u003e Sonic 19 -\u003e PLONK 19 -\u003e MARLIN 19\n2. Ligero 17 -\u003e Aurora 18 -\u003e Fractal 19, which are IOP-based ZKP\n\n*Note: Other works are kind of independent. We should focus on the first line and try the implementation of Groth 16, Sonic 19 and Marlin 19.*\n\n*Source: 知乎 @koala1992*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenxingqiang%2Fzero-knowledge-proofs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchenxingqiang%2Fzero-knowledge-proofs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenxingqiang%2Fzero-knowledge-proofs/lists"}