barretenberg
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
proof_system::plonk::UltraComposer Class Reference

Public Types

using Flavor = flavor::Ultra
 
using CircuitBuilder = UltraCircuitBuilder
 
using Curve = Flavor::Curve
 

Public Member Functions

 UltraComposer (std::shared_ptr< proving_key > p_key, std::shared_ptr< verification_key > v_key)
 
 UltraComposer (UltraComposer &&other) noexcept=default
 
 UltraComposer (UltraComposer const &other) noexcept=default
 
UltraComposeroperator= (UltraComposer &&other) noexcept=default
 
UltraComposeroperator= (UltraComposer const &other) noexcept=default
 
std::vector< SelectorPropertiesultra_selector_properties ()
 
size_t get_num_selectors ()
 
std::shared_ptr< plonk::proving_keycompute_proving_key (CircuitBuilder &circuit_constructor)
 
std::shared_ptr< plonk::verification_keycompute_verification_key (CircuitBuilder &circuit_constructor)
 
void compute_witness (CircuitBuilder &circuit_constructor)
 Computes this.witness, which is basiclly a set of polynomials mapped-to by strings.
 
UltraProver create_prover (CircuitBuilder &circuit_constructor)
 
UltraVerifier create_verifier (CircuitBuilder &circuit_constructor)
 
UltraToStandardProver create_ultra_to_standard_prover (CircuitBuilder &circuit_constructor)
 Uses slightly different settings from the UltraProver.
 
UltraToStandardVerifier create_ultra_to_standard_verifier (CircuitBuilder &circuit_constructor)
 Create a verifier using pedersen hash for the transcript.
 
UltraWithKeccakProver create_ultra_with_keccak_prover (CircuitBuilder &circuit_constructor)
 Uses slightly different settings from the UltraProver.
 
UltraWithKeccakVerifier create_ultra_with_keccak_verifier (CircuitBuilder &circuit_constructor)
 Create a verifier using keccak for the transcript.
 
void add_table_column_selector_poly_to_proving_key (polynomial &small, const std::string &tag)
 

Static Public Member Functions

static transcript::Manifest create_manifest (const size_t num_public_inputs)
 Create a manifest object.
 

Public Attributes

std::shared_ptr< plonk::proving_keycircuit_proving_key
 
std::shared_ptr< plonk::verification_keycircuit_verification_key
 
bool computed_witness = false
 

Static Public Attributes

static constexpr std::string_view NAME_STRING = "UltraPlonk"
 
static constexpr CircuitType type = CircuitType::ULTRA
 
static constexpr size_t NUM_RESERVED_GATES = 4
 
static constexpr size_t program_width = CircuitBuilder::NUM_WIRES
 
static constexpr size_t s_randomness = 3
 

Member Function Documentation

◆ compute_verification_key()

std::shared_ptr< plonk::verification_key > proof_system::plonk::UltraComposer::compute_verification_key ( CircuitBuilder circuit_constructor)

Compute verification key consisting of selector precommitments.

Returns
Pointer to created circuit verification key.

◆ compute_witness()

void proof_system::plonk::UltraComposer::compute_witness ( CircuitBuilder circuit_constructor)

Computes this.witness, which is basiclly a set of polynomials mapped-to by strings.

Note: this doesn't actually compute the entire witness. Things missing: randomness for blinding both the wires and sorted s poly, lookup rows of the wire witnesses, the values of z_lookup, z. These are all calculated elsewhere.

◆ create_manifest()

static transcript::Manifest proof_system::plonk::UltraComposer::create_manifest ( const size_t  num_public_inputs)
inlinestatic

Create a manifest object.

Note
UltraPlonk manifest does not use linearisation trick
Parameters
num_public_inputs
Returns
transcript::Manifest

◆ create_ultra_to_standard_verifier()

UltraToStandardVerifier proof_system::plonk::UltraComposer::create_ultra_to_standard_verifier ( CircuitBuilder circuit_constructor)

Create a verifier using pedersen hash for the transcript.

Parameters
circuit_constructor
Returns
UltraToStandardVerifier

◆ create_ultra_with_keccak_verifier()

UltraWithKeccakVerifier proof_system::plonk::UltraComposer::create_ultra_with_keccak_verifier ( CircuitBuilder circuit_constructor)

Create a verifier using keccak for the transcript.

Parameters
circuit_constructor
Returns
UltraWithKeccakVerifier

◆ create_verifier()

plonk::UltraVerifier proof_system::plonk::UltraComposer::create_verifier ( CircuitBuilder circuit_constructor)

Create verifier: compute verification key, initialize verifier with it and an initial manifest and initialize commitment_scheme.

Returns
The verifier.

The documentation for this class was generated from the following files: