{"id":13369020,"url":"https://github.com/fluidex/awesome-plonk","last_synced_at":"2025-03-12T20:31:09.635Z","repository":{"id":46997899,"uuid":"316892859","full_name":"fluidex/awesome-plonk","owner":"fluidex","description":"A curated list of awesome things related to plonk proof system","archived":false,"fork":false,"pushed_at":"2021-11-08T02:44:13.000Z","size":52,"stargazers_count":214,"open_issues_count":1,"forks_count":23,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-05-20T00:02:07.716Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/fluidex.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}},"created_at":"2020-11-29T06:46:23.000Z","updated_at":"2024-05-13T01:57:35.000Z","dependencies_parsed_at":"2022-07-21T06:18:18.660Z","dependency_job_id":null,"html_url":"https://github.com/fluidex/awesome-plonk","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/fluidex%2Fawesome-plonk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluidex%2Fawesome-plonk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluidex%2Fawesome-plonk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluidex%2Fawesome-plonk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluidex","download_url":"https://codeload.github.com/fluidex/awesome-plonk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243290826,"owners_count":20267791,"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-07-30T01:01:18.840Z","updated_at":"2025-03-12T20:31:09.602Z","avatar_url":"https://github.com/fluidex.png","language":null,"funding_links":[],"categories":["Proof Systems","Others","ZKP-based Solutions"],"sub_categories":["zkSNARKs","Basic Zero-knowledge Proofs"],"readme":"# Awesome PLONK [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n\n## Papers\n\n+ [PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge](https://eprint.iacr.org/2019/953.pdf)\n    * slides:\n        * [Simons Institute 2019](https://github.com/arielgabizon/Lectures/blob/master/PlonkSimonsCorrected.pdf)\n        * [Stanford Blockchain Conference 2020](https://github.com/arielgabizon/Lectures/blob/master/StanfordJan2020UniversalUpdatable.pdf)\n            - [transcripts](https://diyhpl.us/wiki/transcripts/stanford-blockchain-conference/2020/plonk/)\n+ [Proposal: The Turbo-PLONK program syntax for specifying SNARK programs](https://docs.zkproof.org/pages/standards/accepted-workshop3/proposal-turbo_plonk.pdf)\n    * Turbo-PLONK uses custom gates. Custom gates can make [Halo](https://eprint.iacr.org/2019/1021.pdf)-style Recursive Proof Composition efficient in PlonK.\n        - [[BCMS20]](https://eprint.iacr.org/2020/499.pdf) further formalizes halo-style Recursive Proof Composition, and call it as an Accumulation scheme\n+ [plookup: A simplified polynomial protocol for lookup tables](https://eprint.iacr.org/2020/315.pdf)\n    * slides:\n        * [plookup: speeding up SNARKs on non-friendly functions with lookup tables](https://github.com/arielgabizon/Lectures/blob/master/plookupzksummit2020.pdf)\n        * [Plookup in action](https://github.com/arielgabizon/Lectures/blob/master/plookupinactionDystopia2020.pdf)\n* [fflonK: a Fast-Fourier inspired verifier efficient version of PlonK](https://eprint.iacr.org/2021/1167.pdf)\n   * extends KZG10 commitment scheme and allows for multiple polynomials to be represented by a single commitment\n   * requiring 6 scalar multiplications and 2 bilinear pairings\n   * verifier efficient\n      * saves gas on Ethereum\n      * at the cost of roughly tripling the prover time\n+ [Public inputs in PlonK’s permutation argument](https://github.com/arielgabizon/plonk-addendum/blob/master/plonk-pubinputs.pdf)\n+ [SHPLONK](https://eprint.iacr.org/2020/081.pdf)\n+ [REDSHIFT: Transparent SNARKs from List Polynomial Commitment IOPs](https://eprint.iacr.org/2019/1400.pdf)\n+ Reinforced Concrete: A new ZK friendly hash function. When Plookup is enabled, it can be up to 17x faster than Poseidon (50 cycles/byte), and only 7 times slower than Blake2.\n    + [paper](https://drive.google.com/file/d/1MCIqD8XwKrHVBQPc26XjAmM9RyrLDpjw/view)\n    + [website](https://www.rc-hash.info/)\n\n## Forums\n+ [PLONK Café](https://www.plonk.cafe/)\n\n## Articles\n+ [Understanding PLONK](https://vitalik.ca/general/2019/09/22/plonk.html) by Vitalik Buterin\n+ [Plonk tutorial](https://github.com/barryWhiteHat/plonk_tutorial) by barryWhiteHat\n+ metastate's plonk-by-hand series ([[1]](https://research.metastate.dev/plonk-by-hand-part-1/), [[2]](https://research.metastate.dev/plonk-by-hand-part-2-the-proof/), [[3]](https://research.metastate.dev/plonk-by-hand-part-3-verification/))\n    * [plonk-by-fingers](https://github.com/adria0/plonk-by-fingers) is a toy implementation in rust\n* [On PLONK and plookup](https://research.metastate.dev/on-plonk-and-plookup/)\n* [From AIRs to RAPs - how PLONK-style arithmetization works](https://hackmd.io/@aztec-network/plonk-arithmetiization-air)\n+ [Multiset checks in PLONK and Plookup](https://hackmd.io/@XYwo0oEXTEGRpej1SQVMlg/ByFgSDA7D) by Ariel Gabizon\n+ [Plonk and PLookup](https://hackmd.io/@7dpNYqjKQGeYC7wMlPxHtQ/BJpNmNW0L) by Dmitry Khovratovich\n+ [PLONK custom gates design considerations](https://kobi.one/2021/05/20/plonk-custom-gates.html) by Kobi Gurkan\n+ [Thoughts on Plookup implementation of Sha256 and Keccak](https://hackmd.io/xfgP5_uMTZyaEJJG4EJoRQ?view) by Konstantce\n+ [Plonk and Poseidon](https://drive.google.com/file/d/1bZZvKMQHaZGA4L9eZhupQLyGINkkFG_b/view) (Plonk adaptation tailored to Poseidon) by Dmitry Khovratovich\n+ [Non-native field arithmetic using custom gates](https://hackmd.io/@arielg/B13JoihA8)\n+ [Fast recursive arguments based on Plonk and Halo](https://mirprotocol.org/blog/Fast-recursive-arguments-based-on-Plonk-and-Halo)\n+ [Adding zero knowledge to Plonk-Halo](https://mirprotocol.org/blog/Adding-zero-knowledge-to-Plonk-Halo)\n+ [UltraPLONK Arithmetization in Halo 2](https://zcash.github.io/halo2/concepts/arithmetization.html)\n+ TurboPLONK benchmarks\n   + https://medium.com/aztec-protocol/plonk-benchmarks-2-5x-faster-than-groth16-on-mimc-9e1009f96dfe\n   + https://medium.com/aztec-protocol/plonk-benchmarks-ii-5x-faster-than-groth16-on-pedersen-hashes-ea5285353db0\n+ AZTEC Ignition ([setup codes here](https://github.com/AztecProtocol/Setup), [verification codes here](https://github.com/AztecProtocol/ignition-verification))\n    + [Ignition: Trusted Setup MPC Ceremony for PLONK](https://medium.com/aztec-protocol/aztec-announcing-our-ignition-ceremony-757850264cfe)\n        * [How the Ceremony Works - Basic](https://medium.com/aztec-protocol/aztec-how-the-ceremony-works-5c23a54e2dd9)\n        * [How the Ceremony Works - Advanced](https://medium.com/aztec-protocol/aztec-how-the-ceremony-works-9f021cf190d0)\n    + [AZTEC CRS: The Biggest MPC Setup in History has Successfully Finished](https://medium.com/aztec-protocol/aztec-crs-the-biggest-mpc-setup-in-history-has-successfully-finished-74c6909cd0c4)\n\n## Podcasts / Videos\n+ [Zero Knowledge Episode 112: Dive into Plonk!](https://www.zeroknowledge.fm/112)\n+ [ZK Study Club - Plonk with Zac Williamson](https://youtu.be/NqrVcDuQ8hM)\n+ [Zac Williamson on PLONK and TurboPLONK at ZKSummit](https://youtu.be/ty-LZf0YCK0)\n+ [zkSummit5: PLONK without FFTs - Justin Drake (EF)](https://www.youtube.com/watch?v=ffXgxvlCBvo\u0026list=PLj80z0cJm8QFnY6VLVa84nr-21DNvjWH7\u0026index=25)\n+ [zkSummit: plookup: Speeding up the PLONK prover - Zac Williamson \u0026 Ariel Gabizon](https://youtu.be/Vdlc1CmRYRY) (with Turbo PLONK \u0026 Ultra PLONK benchmarks)\n+ [ZK-LDN 0x04: On Marlin and PLONK](https://www.youtube.com/watch?v=gDpwBYHjcHA)\n+ [Aztec: Plonk in Dystopian Times](https://www.youtube.com/watch?v=nz_VdPbCT64)\n+ [Polynomial protocols for range proofs](https://www.youtube.com/watch?v=8n3c8fbi9Ac)\n+ How does PLONK work? ([[1]](https://www.cryptologie.net/article/529/how-does-the-general-purpose-zero-knowledge-proof-system-plonk-work/), [[2]](https://www.cryptologie.net/article/530/how-does-plonk-work-part-2-an-overview/))\n\n## Demo\n+ dusk-network\n    + [Zero-Knowledge: PLONK Demo - Dusk](https://dusk.network/news/zero-knowledge-plonk-demo)\n    + [Zero-Knowledge: PLONK Demo 2 - Dusk](https://dusk.network/news/zero-knowledge-plonk-demo-2)\n\n## Implementations\n+ [Aztec's implementation in C++](https://github.com/AztecProtocol/barretenberg/tree/master/barretenberg/src/aztec/plonk)\n+ [Matter Labs' implementation in Rust](https://github.com/matter-labs/bellman/tree/plonk_release/src/plonk)\n+ [plonky: Recursive SNARKs based on Plonk and Halo](https://github.com/mir-protocol/plonky)\n+ [dusk-plonk](https://github.com/dusk-network/plonk)\n+ [ark-plonk](https://github.com/rust-zkp/ark-plonk)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluidex%2Fawesome-plonk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluidex%2Fawesome-plonk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluidex%2Fawesome-plonk/lists"}