[][src]Crate dusk_plonk

GitHub issues GitHub

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

circuit_builder

Tools & traits for PLONK circuits

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. Merkle Tree like techniques such as FRI are not homomorphic and therefore for PLONK to be usable with all commitment schemes without modification, one would need to remove the lineariser

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 Composer needs to peform with them.

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.