dusk-network / plonk

Pure Rust implementation of the PLONK ZKProof System done by the Dusk team
https://dusk-network.github.io/plonk
Mozilla Public License 2.0
535 stars 148 forks source link
cryptography plonk rust zero-knowledge

PLONK

Build Status Repository Documentation

This is a pure Rust implementation of the PLONK proving system over BLS12-381.

This 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.

DISCLAIMER: This library is currently unstable and still needs to undergo an exhaustive security analysis. Use at your own risk.

Usage

To see how to use this library, check the 'examples' directory.

Features

This crate includes a variety of features which are briefly explained below:

Documentation

The crate documentation provides information about all the functions that the library provides, as well as the documentation regarding the data structures that it exports. To check this, visit the documentation page or run make doc or make doc-internal.

Performance

Benchmarks taken on Apple M1, for a circuit-size of 2^16 constraints:

For more results, please run cargo bench to get a full report of benchmarks in respect of constraint numbers.

Acknowledgements

Licensing

This code is licensed under the Mozilla Public License Version 2.0 (MPL-2.0). Please see LICENSE for more information.

About

This implementation is designed by the Dusk team.

Contributing