|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Contains all the information required by a Honk prover to create a proof, constructed from a finalized circuit. More...
#include <prover_instance.hpp>
Public Types | |
| using | Flavor = Flavor_ |
| using | FF = typename Flavor::FF |
Public Member Functions | |
| size_t | dyadic_size () const |
| size_t | log_dyadic_size () const |
| size_t | pub_inputs_offset () const |
| size_t | num_public_inputs () const |
| size_t | get_final_active_wire_idx () const |
| Flavor::PrecomputedData | get_precomputed () |
| ProverInstance_ (Circuit &circuit) | |
| ProverInstance_ ()=default | |
| ProverInstance_ (const ProverInstance_ &)=delete | |
| ProverInstance_ (ProverInstance_ &&)=delete | |
| ProverInstance_ & | operator= (const ProverInstance_ &)=delete |
| ProverInstance_ & | operator= (ProverInstance_ &&)=delete |
| ~ProverInstance_ ()=default | |
Public Attributes | |
| std::vector< FF > | public_inputs |
| ProverPolynomials | polynomials |
| WitnessCommitments | commitments |
| FF | alpha |
| RelationParameters< FF > | relation_parameters |
| std::vector< FF > | gate_challenges |
| HonkProof | ipa_proof |
| std::vector< uint32_t > | memory_read_records |
| std::vector< uint32_t > | memory_write_records |
Private Types | |
| using | Circuit = typename Flavor::CircuitBuilder |
| using | ProverPolynomials = typename Flavor::ProverPolynomials |
| using | WitnessCommitments = typename Flavor::WitnessCommitments |
| using | Polynomial = typename Flavor::Polynomial |
Private Member Functions | |
| size_t | trace_active_range_size () const |
| Get the size of the active trace range (0 to the final active wire index) | |
| size_t | compute_dyadic_size (Circuit &) |
| Compute the minimum dyadic (power-of-2) circuit size. | |
| void | allocate_wires () |
| void | allocate_permutation_argument_polynomials () |
| void | allocate_lagrange_polynomials () |
| void | allocate_selectors (const Circuit &) |
| void | allocate_table_lookup_polynomials (const Circuit &) |
| void | allocate_ecc_op_polynomials (const Circuit &) |
| void | allocate_databus_polynomials (const Circuit &) |
| void | construct_databus_polynomials (Circuit &) |
| Populate the databus polynomials (calldata, secondary_calldata, return_data) and their read counts/tags. | |
| void | construct_lookup_polynomials (Circuit &circuit) |
| void | populate_memory_records (const Circuit &circuit) |
| Copy RAM/ROM record of reads and writes from the circuit to the instance. | |
Private Attributes | |
| MetaData | metadata |
| size_t | final_active_wire_idx { std::numeric_limits<size_t>::max() } |
Contains all the information required by a Honk prover to create a proof, constructed from a finalized circuit.
Definition at line 26 of file prover_instance.hpp.
|
private |
Definition at line 32 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::FF = typename Flavor::FF |
Definition at line 29 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::Flavor = Flavor_ |
Definition at line 28 of file prover_instance.hpp.
|
private |
Definition at line 35 of file prover_instance.hpp.
|
private |
Definition at line 33 of file prover_instance.hpp.
|
private |
Definition at line 34 of file prover_instance.hpp.
| bb::ProverInstance_< Flavor >::ProverInstance_ | ( | Circuit & | circuit | ) |
Definition at line 21 of file prover_instance.cpp.
|
default |
|
delete |
|
delete |
|
default |
|
private |
Definition at line 228 of file prover_instance.cpp.
|
private |
Definition at line 213 of file prover_instance.cpp.
|
private |
Definition at line 159 of file prover_instance.cpp.
|
private |
Definition at line 142 of file prover_instance.cpp.
|
private |
Definition at line 170 of file prover_instance.cpp.
|
private |
Definition at line 185 of file prover_instance.cpp.
|
private |
Definition at line 130 of file prover_instance.cpp.
|
private |
Compute the minimum dyadic (power-of-2) circuit size.
The dyadic circuit size is the smallest power of two which can accommodate all polynomials required for the proving system. This size must account for the execution trace itself, i.e. the wires/selectors, but also any auxiliary polynomials like those that store the table data for lookup arguments.
| Flavor |
| circuit |
Definition at line 113 of file prover_instance.cpp.
|
private |
Populate the databus polynomials (calldata, secondary_calldata, return_data) and their read counts/tags.
Definition at line 287 of file prover_instance.cpp.
|
private |
Definition at line 271 of file prover_instance.cpp.
|
inline |
Definition at line 53 of file prover_instance.hpp.
|
inline |
Definition at line 61 of file prover_instance.hpp.
|
inline |
Definition at line 68 of file prover_instance.hpp.
|
inline |
Definition at line 54 of file prover_instance.hpp.
|
inline |
Definition at line 56 of file prover_instance.hpp.
|
delete |
|
delete |
|
private |
Copy RAM/ROM record of reads and writes from the circuit to the instance.
The memory records in the circuit store indices within the memory block where a read/write is performed. They are stored in the ProverInstance as indices into the full trace by accounting for the offset of the memory block.
Definition at line 336 of file prover_instance.cpp.
|
inline |
Definition at line 55 of file prover_instance.hpp.
|
inlineprivate |
Get the size of the active trace range (0 to the final active wire index)
Definition at line 84 of file prover_instance.hpp.
| FF bb::ProverInstance_< Flavor_ >::alpha |
Definition at line 44 of file prover_instance.hpp.
| WitnessCommitments bb::ProverInstance_< Flavor_ >::commitments |
Definition at line 43 of file prover_instance.hpp.
|
private |
Definition at line 38 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::gate_challenges |
Definition at line 46 of file prover_instance.hpp.
| HonkProof bb::ProverInstance_< Flavor_ >::ipa_proof |
Definition at line 48 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_read_records |
Definition at line 50 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_write_records |
Definition at line 51 of file prover_instance.hpp.
|
private |
Definition at line 36 of file prover_instance.hpp.
| ProverPolynomials bb::ProverInstance_< Flavor_ >::polynomials |
Definition at line 42 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::public_inputs |
Definition at line 41 of file prover_instance.hpp.
| RelationParameters<FF> bb::ProverInstance_< Flavor_ >::relation_parameters |
Definition at line 45 of file prover_instance.hpp.