halo2_axiom

Module plonk

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

Modules§

Structs§

  • An advice column
  • Query of advice column at a certain relative location
  • A verifier that checks multiple proofs in a batch. This requires the batch crate feature to be enabled.
  • A challenge squeezed from transcript after advice columns at the phase have been committed.
  • 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 set of polynomial constraints with a common selector.
  • First phase
  • A fixed column
  • Query of fixed column at a certain relative location
  • Gate
  • An instance column
  • Query of instance column at a certain relative location
  • 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.
  • Second phase
  • A selector, representing a fixed boolean value per row of the circuit.
  • A fixed column of a lookup table.
  • Third phase
  • This is a verifying key which allows for the verification of proofs for a particular circuit.
  • A “virtual cell” is a PLONK cell that has been queried at a particular relative offset within a custom gate.
  • 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.
  • This is an error that could occur during table synthesis.

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.
  • Phase of advice column

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 ProvingKey from an instance of Circuit. VerifyingKey is generated in the process.
  • Generate a ProvingKey from either a precalculated VerifyingKey and an instance of Circuit, or just a Circuit, in which case a new VerifyingKey is generated. The latter is more efficient because it does fixed column FFTs only once.
  • Generate a VerifyingKey from an instance of Circuit. By default, selector compression is turned off.
  • Generate a VerifyingKey from an instance of Circuit.
  • Returns a boolean indicating whether or not the proof is valid