{"id":13429512,"url":"https://github.com/dusk-network/plonk","last_synced_at":"2025-12-29T22:32:57.561Z","repository":{"id":37414219,"uuid":"222721751","full_name":"dusk-network/plonk","owner":"dusk-network","description":"Pure Rust implementation of the PLONK ZKProof System done by the Dusk team","archived":false,"fork":false,"pushed_at":"2025-02-06T12:48:34.000Z","size":3705,"stargazers_count":573,"open_issues_count":18,"forks_count":158,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-03-09T21:44:57.647Z","etag":null,"topics":["cryptography","plonk","rust","zero-knowledge"],"latest_commit_sha":null,"homepage":"https://dusk-network.github.io/plonk","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dusk-network.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2019-11-19T14:58:11.000Z","updated_at":"2025-03-06T14:18:36.000Z","dependencies_parsed_at":"2023-12-21T15:58:08.616Z","dependency_job_id":"b094aaa3-750b-4d5f-a3b9-016d57da2df0","html_url":"https://github.com/dusk-network/plonk","commit_stats":{"total_commits":617,"total_committers":23,"mean_commits":26.82608695652174,"dds":0.6353322528363047,"last_synced_commit":"1f8374fb7cb0b026de7f9afcf08aadb72906f068"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dusk-network%2Fplonk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dusk-network%2Fplonk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dusk-network%2Fplonk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dusk-network%2Fplonk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dusk-network","download_url":"https://codeload.github.com/dusk-network/plonk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243822310,"owners_count":20353496,"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":["cryptography","plonk","rust","zero-knowledge"],"created_at":"2024-07-31T02:00:41.007Z","updated_at":"2025-12-29T22:32:57.556Z","avatar_url":"https://github.com/dusk-network.png","language":"Rust","readme":"# PLONK \n![Build Status](https://github.com/dusk-network/plonk/workflows/Continuous%20integration/badge.svg)\n[![Repository](https://img.shields.io/badge/github-plonk-blueviolet?logo=github)](https://github.com/dusk-network/plonk)\n[![Documentation](https://img.shields.io/badge/docs-plonk-blue?logo=rust)](https://docs.rs/dusk-plonk/latest/)\n\n_This is a pure Rust implementation of the PLONK proving system over BLS12-381._\n\nThis library contains a modular implementation of KZG10 as the default polynomial commitment scheme. Moreover, it includes custom gates for efficiency purposes. The details on our specific implementation can be found [here](docs/dusk-plonk-specs.pdf). An audit can be found [here](https://github.com/dusk-network/audits).\n\n**DISCLAIMER**: This library is currently unstable. A security audit has been completed, though further in-depth analysis and testing are encouraged. Use at your own risk.\n\n## Usage\n\nTo see how to use this library, check the 'examples' directory.\n\n## Features\n\nThis crate includes a variety of features which are briefly explained below:\n- `alloc`: Enables the usage of an allocator, allowing for `Proof` constructions and verifications. Without this feature it **IS NOT** possible to prove or verify anything. \n  Its absence only makes `dusk-plonk` export certain fixed-size data structures such as `Proof`. This is useful in no_std environments that also do not make use of an allocator.\n- `std`: Enables `std` usage as well as `rayon` parallelization in some proving and verifying operations. \n  It also uses the `std` versions of the elliptic curve dependencies, utilizing the `parallel` feature \n  from `dusk-bls12-381`. This feature is enabled by default.\n- `debug`: Enables the runtime debugger backend, outputting [CDF](https://crates.io/crates/dusk-cdf) files to the path defined in the `CDF_OUTPUT` environment variable. When used, the binary must be compiled with `debug = true`. For more info, check the [cargo book](https://doc.rust-lang.org/cargo/reference/profiles.html#debug).\n  __It is recommended to derive the std output and std error and then place them in a text file for efficient gate analysis.__\n\n## Documentation\n\nThe crate documentation provides information about all the functions that the library provides, as well\nas the documentation regarding the data structures that it exports. To check this, visit the [documentation page](https://docs.rs/dusk-plonk/) or run `make doc` or `make doc-internal`.\n\n## Performance\n\nBenchmarks taken on `Apple M1`, for a circuit-size of `2^16` constraints:\n\n- Proving time: `7.871s`\n- Verification time: `2.821ms` **(This time does not vary depending on the circuit-size.)**\n\nFor more results, please run `cargo bench` to get a full report of benchmarks in respect of constraint numbers.\n\n## Acknowledgements\n\n- Reference implementation by Aztec Protocol/Barretenberg.\n- FFT Module and KZG10 Module were adapted from ZEXE/Zcash and SCIPR Lab, respectively.\n\n## Licensing\n\nThis code is licensed under the Mozilla Public License Version 2.0 (MPL-2.0). Please see [LICENSE](https://github.com/dusk-network/plonk/blob/master/LICENSE) for more information.\n\n## About\n\nThis implementation is designed by the [Dusk](https://dusk.network) team.\n\n## Contributing\n\n- If you want to contribute to this repository/project, please check our [CONTRIBUTING.md](https://github.com/dusk-network/plonk/blob/master/CONTRIBUTING.md).\n- If you want to report a bug or request a new feature addition, please open an issue on this repository.\n","funding_links":[],"categories":["Uncategorized","Rust","Privacy Coins","Web3 and ZKP Framework","Implementations","Libraries"],"sub_categories":["Uncategorized","Cryptography"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdusk-network%2Fplonk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdusk-network%2Fplonk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdusk-network%2Fplonk/lists"}