Module halo2::plonk[][src]

Expand description

This module provides an implementation of a variant of (Turbo)PLONK that is designed specifically for the polynomial commitment scheme described in the Halo paper.

Structs

An advice column

A column with an index and type

An individual polynomial constraint.

This is a description of the circuit environment, such as the gate, column and permutation arrangements.

A fixed column

An instance column

Represents the minimal parameters that determine a ConstraintSystem.

Minimal representation of a verification key that can be used to identify its active contents.

This is a proving key which allows for the creation of proofs for a particular circuit.

A selector, representing a fixed boolean value per row of the circuit.

A fixed column of a lookup table.

This is a verifying key which allows for the verification of proofs for a particular circuit.

Exposes the “virtual cells” that can be queried while creating a custom gate or lookup table.

Enums

An enum over the Advice, Fixed, Instance structs

A value assigned to a cell within a circuit.

This is an error that could occur during proving or circuit synthesis.

Low-degree expression representing an identity that must hold over the committed columns.

Traits

This trait allows a Circuit to direct some backend to assign a witness for a constraint system.

This is a trait that circuits provide implementations for so that the backend prover can ask the circuit to synthesize using some given ConstraintSystem implementation.

A column type

A floor planning strategy for a circuit.

Functions

This creates a proof for the provided circuit when given the public parameters params and the proving key ProvingKey that was generated previously for the same circuit. The provided instances are zero-padded internally.

Generate a ProvingKey from a VerifyingKey and an instance of Circuit.

Generate a VerifyingKey from an instance of Circuit.

Returns a boolean indicating whether or not the proof is valid