|
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 |
Static Public Attributes | |
| static constexpr size_t | TRACE_OFFSET = Flavor::TRACE_OFFSET |
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 per-bus databus polynomials (values and read counts) and the identity polynomial. | |
| 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 35 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 38 of file prover_instance.hpp.
|
private |
Definition at line 36 of file prover_instance.hpp.
|
private |
Definition at line 37 of file prover_instance.hpp.
| bb::ProverInstance_< Flavor >::ProverInstance_ | ( | Circuit & | circuit | ) |
Definition at line 22 of file prover_instance.cpp.
|
default |
|
delete |
|
delete |
|
default |
|
private |
Definition at line 246 of file prover_instance.cpp.
|
private |
Definition at line 231 of file prover_instance.cpp.
|
private |
Definition at line 170 of file prover_instance.cpp.
|
private |
Definition at line 153 of file prover_instance.cpp.
|
private |
Definition at line 181 of file prover_instance.cpp.
|
private |
Definition at line 196 of file prover_instance.cpp.
|
private |
Definition at line 142 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 125 of file prover_instance.cpp.
|
private |
Populate the per-bus databus polynomials (values and read counts) and the identity polynomial.
Definition at line 308 of file prover_instance.cpp.
|
private |
Definition at line 292 of file prover_instance.cpp.
|
inline |
Definition at line 56 of file prover_instance.hpp.
|
inline |
Definition at line 64 of file prover_instance.hpp.
|
inline |
Definition at line 71 of file prover_instance.hpp.
|
inline |
Definition at line 57 of file prover_instance.hpp.
|
inline |
Definition at line 59 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 339 of file prover_instance.cpp.
|
inline |
Definition at line 58 of file prover_instance.hpp.
|
inlineprivate |
Get the size of the active trace range (0 to the final active wire index)
Definition at line 87 of file prover_instance.hpp.
| FF bb::ProverInstance_< Flavor_ >::alpha |
Definition at line 47 of file prover_instance.hpp.
| WitnessCommitments bb::ProverInstance_< Flavor_ >::commitments |
Definition at line 46 of file prover_instance.hpp.
|
private |
Definition at line 41 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::gate_challenges |
Definition at line 49 of file prover_instance.hpp.
| HonkProof bb::ProverInstance_< Flavor_ >::ipa_proof |
Definition at line 51 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_read_records |
Definition at line 53 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_write_records |
Definition at line 54 of file prover_instance.hpp.
|
private |
Definition at line 39 of file prover_instance.hpp.
| ProverPolynomials bb::ProverInstance_< Flavor_ >::polynomials |
Definition at line 45 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::public_inputs |
Definition at line 44 of file prover_instance.hpp.
| RelationParameters<FF> bb::ProverInstance_< Flavor_ >::relation_parameters |
Definition at line 48 of file prover_instance.hpp.
|
staticconstexpr |
Definition at line 32 of file prover_instance.hpp.