{"id":13656047,"url":"https://github.com/mattgstevens/awesome-zero-knowledge-proofs","last_synced_at":"2025-04-23T17:31:04.624Z","repository":{"id":70101770,"uuid":"156192561","full_name":"mattgstevens/awesome-zero-knowledge-proofs","owner":"mattgstevens","description":"A collection of videos, reading materials and tools for learning all about the ZK side of crypto.","archived":false,"fork":false,"pushed_at":"2018-11-05T09:32:46.000Z","size":3,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-11T05:01:55.379Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/mattgstevens.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-05T09:32:15.000Z","updated_at":"2025-03-02T08:42:40.000Z","dependencies_parsed_at":"2023-02-22T16:31:08.624Z","dependency_job_id":null,"html_url":"https://github.com/mattgstevens/awesome-zero-knowledge-proofs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattgstevens%2Fawesome-zero-knowledge-proofs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattgstevens%2Fawesome-zero-knowledge-proofs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattgstevens%2Fawesome-zero-knowledge-proofs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattgstevens%2Fawesome-zero-knowledge-proofs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattgstevens","download_url":"https://codeload.github.com/mattgstevens/awesome-zero-knowledge-proofs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250480362,"owners_count":21437530,"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":[],"created_at":"2024-08-02T04:00:47.092Z","updated_at":"2025-04-23T17:31:03.725Z","avatar_url":"https://github.com/mattgstevens.png","language":null,"funding_links":[],"categories":["ZKP-based Solutions"],"sub_categories":["Basic Zero-knowledge Proofs"],"readme":"# awesome zero knowledge proofs\n\n- aka ZK-systems\n- aka spooky moon math\n- aka dont show your secrets on a public blockchain\n\nA collection of videos, reading materials and tools for learning all about the ZK side of crypto.\n\n---\n\n## SNARKs\n\n(Succinct non-interactive argument of knowledge)\n\nFast facts:\n\n- used in Zcash\n- available in Ethereum as pre-compiled smart contracts\n- has a trusted setup phase, making a trusted party needed (OR having to deal with secure multi part computation (sMPC))\n- very fast verification, very small proof\n\n### Videos\n\n- [Coda Protocol: Using ZK-SNARKs for a Constant-size Blockchain :: Izaak Meckler at Zcon0 (June 2018)](https://www.youtube.com/watch?v=qCVACpgQSjo)\n\n### Reading\n\n### Tools\n\n- [ZoKrates](https://github.com/Zokrates/ZoKrates)\n- [DIZK](https://github.com/scipr-lab/dizk)\n\n---\n\n## STARKs\n\n(Succinct transparent argument of knowledge)\n\nFast facts:\n\n- newer, [\"hotter\"](https://twitter.com/avsa/status/1057584874859753472?s=21) cousin of SNARKs\n  - newer also means lots of research actively happening during the \"warm up phase\" for this technique\n- does not require a trusted setup phase\n- proof length is much longer than SNARK\n\n### Videos\n\n- [Zero-Knowledge Proof Protocol :: Eli Ben-Sasson at Web3 Summit (October 2018)](https://www.youtube.com/watch?v=1KSwVIZ82hs)\n- [STARK Arithmetization :: Eli Ben Sasson at Technion Cyber and Computer Security Summer School (September 2017)](https://www.youtube.com/watch?v=9VuZvdxFZQo)\n- [STARK Low Degree Testing :: Eli Ben Sasson at Technion Cyber and Computer Security Summer School (September 2017)](https://www.youtube.com/watch?v=L7tZeO8ihcQ)\n\n### Reading\n\n### Tools\n\n---\n\n## Bulletproofs\n\nFast facts:\n\n- used in Monero\n- great proof legth\n- verification time\n\n### Videos\n\n- [Diving Into Bolt; A Privacy-Preserving Layer Two Approach :: J. Ayo Akinyele at Zcon0 (June 2018)](https://www.youtube.com/watch?v=z2l5NqJ6sOI)\n\n### Reading\n\n- [Monero Compatible Bulletproofs (December 2017)](https://getmonero.org/2017/12/07/Monero-Compatible-Bulletproofs.html)\n\n### Tools\n\n---\n\n## General\n\nThere are other proof systems, and some general Mathematics / ideas / standards that make ZK proofs work in theory and in application.\n\n### Videos\n\n- [Introduction zk SNARKs STARKs :: Eli Ben Sasson at Technion Cyber and Computer Security Summer School (September 2017)](https://www.youtube.com/watch?v=VUN35BC11Qw)\n\n### Reading\n\n- [Initiative for the standardization of usage of proofs](https://zkproof.org/index.html)\n\n## SNARK vs STARK vs Bulletproof comparisson\n\n(Note: summary from the talk \"Zero-Knowledge Proof Protocol :: Eli Ben-Sasson at Web3 Summit (October 2018)\")\n\n- there are many others proofs now, and more will come in the future, but these three are being used in blockchains already\n- STARK prover will be quasi linear to naive computation (naive as in no zero knowledge aspects)\n- SNARK is similar, but also has setup which is also scaling linear to the computation \u0026 prover time\n  - needs trust, and larger keys as the computation becomes larger\n- Recursive SNARK (Coda) does not have this drawback of large keys, as the setup is scoped smaller due to epochs\n  - break the computation into a sequence of epochs\n  - only need to create a key for one epoch\n  - still have trusted setup\n  - proving time is larger\n- Bulletproofs have a great proof length\n  - however the verification time is also super linear along with computation and proving time\n  - not so good for scalability, as there is no savings for the verifiers to process\n- all are using pederson hashes\n  - Starkware\n  - Sapling release for Zcash\n  - Bulletproofs in Monero\n\n---\n\n### STARK Scalability\n\n- 1 TX -\u003e 500kb to 80kb (Consensys 2017) to 45kb now (October 2018)\n  - yet to identify lower bound, more room for improvement!\n- 10k TX -\u003e 190kb to 135kb\n  - 3x greater size even though 10.000 factor increase in payload\n\n---\n\n### SNARK Scalability\n\n- 1 TX -\u003e 200 byte (with a 50MB key to prove)\n- 10k TX -\u003e 200 byte (with a 500GB key to prove)\n\n---\n\n### Bulletproof Scalability\n\n- 1 TX -\u003e 1.5kb\n- 10k TX -\u003e 2.5kb\n  - but the verification time is scaling linear with proving time\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattgstevens%2Fawesome-zero-knowledge-proofs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattgstevens%2Fawesome-zero-knowledge-proofs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattgstevens%2Fawesome-zero-knowledge-proofs/lists"}