logo
Expand description

Collection of functions needed to use plonk library.

Use this as the only import that you need to interact with the principal data structures of the plonk library.

Re-exports

pub use crate::circuit;
pub use crate::circuit::Circuit;
pub use crate::circuit::PublicInputValue;
pub use crate::circuit::VerifierData;
pub use crate::error::Error;

Structs

Represents an element of the scalar field $\mathbb{F}_q$ of the BLS12-381 elliptic curve construction.

CommitKey is used to commit to a polynomial which is bounded by the max_degree.

Constraint representation containing the coefficients of a polynomial evaluation

This represents a Jubjub point in the affine (x, y) coordinates.

This represents an extended point (X, Y, Z, T1, T2) with Z nonzero, corresponding to the affine point (X/Z, Y/Z). We always have T1 * T2 = XY/Z.

Represents an element of the scalar field $\mathbb{F}_r$ of the Jubjub elliptic curve construction.

Opening Key is used to verify opening proofs made about a committed polynomial.

A Proof is a composition of Commitments to the Witness, Permutation, Quotient, Shifted and Opening polynomials as well as the ProofEvaluations.

Abstraction structure designed to construct a circuit and generate Proofs for it.

PLONK circuit Proving Key.

The Public Parameters can also be referred to as the Structured Reference String (SRS). It is available to both the prover and verifier and allows the verifier to efficiently verify and make claims about polynomials up to and including a configured degree.

The TurboComposer is the circuit-builder tool that the dusk-plonk repository provides so that circuit descriptions can be written, stored and transformed into a Proof at some point.

Abstraction structure designed verify Proofs.

PLONK circuit Verification Key.

Witness data indexed in a TurboComposer instance

Represents a JubJub point in the circuit