Pure Rust implementation of the PLONK zero-knowledge proof system with KZG10 polynomial commitments and custom gates.
PLONK is a pure Rust implementation of the PLONK zero-knowledge proof system over the BLS12-381 elliptic curve. It provides a modular and efficient proving system for cryptographic applications, enabling privacy-preserving computations with succinct proofs. The library includes a KZG10 polynomial commitment scheme and custom gates for performance optimization.
Cryptography engineers and developers building privacy-focused systems, such as blockchain protocols or secure computation platforms, who need a production-ready, audited Rust implementation of the PLONK proving system.
Developers choose this for its modular design, no_std support for embedded environments, and performance optimizations like parallel proving and custom gates. It offers a robust, audited codebase specifically for the BLS12-381 curve, with features like runtime debugging for circuit analysis.
Pure Rust implementation of the PLONK ZKProof System done by the Dusk team
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements KZG10 as the default polynomial commitment scheme, providing efficient and modular polynomial commitments essential for zero-knowledge proofs.
Includes custom gates that improve proving and verification performance, evidenced by benchmarks showing 7.871s proving time for 2^16 constraints.
Supports no_std environments with the alloc feature, enabling usage in constrained systems while still allowing proof constructions.
With the std feature, leverages Rayon for parallel operations, enhancing performance on multi-core systems for faster proofs.
The debug feature outputs CDF files for gate analysis, facilitating detailed circuit debugging and optimization when compiled with debug=true.
The library is currently labeled as unstable in the disclaimer, with further testing encouraged, posing risks of breaking changes in updates.
Restricted to the BLS12-381 elliptic curve, reducing flexibility for applications that might require other curves or cryptographic primitives.
Debugging requires compiling with debug=true and managing the CDF_OUTPUT environment variable, adding overhead for development and analysis.
Core proving and verification functions are unavailable without the alloc feature, limiting use in no_std environments that lack alloc support.