# [−][src]Crate dusk_plonk

Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge (PLONK) is a zero knowledge proof system.

This protocol was created by:

- Ariel Gabizon (Protocol Labs),
- Zachary J. Williamson (Aztec Protocol)
- Oana Ciobotaru

This crate contains a pure-rust implementation done by the DuskNetwork team of this algorithm using as a reference implementation this one done by the creators of the protocol:

https://github.com/AztecProtocol/barretenberg/blob/master/barretenberg/src/aztec/plonk/

If you want to see library usage examples, please check: https://github.com/dusk-network/plonk/tree/v0.1.0/examples

## Re-exports

`pub use dusk_bls12_381 as bls12_381;` |

`pub use dusk_jubjub as jubjub;` |

## Modules

commitment_scheme | Ideally we should cleanly abstract away the polynomial commitment scheme
We note that PLONK makes use of the linearisation technique
conceived in SONIC [Mary Maller]. This technique implicitly requires the
commitment scheme to be homomorphic. |

constraint_system | The constraint System module stores the implementation of the PLONK Standard Composer, as well as the circuit tools and abstractions, used by the Composer to generate, build, preprocess circuits. |

fft | FFT module contains the tools needed by the Composer backend
to know and use the logic behind Polynomials. As well as
the operations that the |

prelude | Collection of functions needed to use plonk library. |

proof_system | proving system |

transcript | This is an extension over the Merlin Transcript which adds a few extra functionalities. |