|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
A ProverInstance is normally constructed from a finalized circuit and it contains all the information required by a Mega Honk prover to create a proof. More...
#include <prover_instance.hpp>
Public Types | |
| using | Flavor = Flavor_ |
| using | FF = typename Flavor::FF |
| using | Trace = TraceToPolynomials< Flavor > |
Public Member Functions | |
| void | set_dyadic_size (size_t size) |
| void | set_final_active_wire_idx (size_t idx) |
| size_t | dyadic_size () const |
| size_t | log_dyadic_size () const |
| size_t | pub_inputs_offset () const |
| size_t | num_public_inputs () const |
| MetaData | get_metadata () const |
| size_t | get_final_active_wire_idx () const |
| size_t | trace_active_range_size () const |
| Get the size of the active trace range (0 to the final active wire index) | |
| Flavor::PrecomputedData | get_precomputed () |
| ProverInstance_ (Circuit &circuit, const CommitmentKey &commitment_key=CommitmentKey()) | |
| 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 |
| SubrelationSeparator | alpha |
| bb::RelationParameters< FF > | relation_parameters |
| std::vector< FF > | gate_challenges |
| HonkProof | ipa_proof |
| bool | is_complete = false |
| std::vector< uint32_t > | memory_read_records |
| std::vector< uint32_t > | memory_write_records |
| CommitmentKey | commitment_key |
Private Types | |
| using | Circuit = typename Flavor::CircuitBuilder |
| using | CommitmentKey = typename Flavor::CommitmentKey |
| using | ProverPolynomials = typename Flavor::ProverPolynomials |
| using | WitnessCommitments = typename Flavor::WitnessCommitments |
| using | Polynomial = typename Flavor::Polynomial |
| using | SubrelationSeparator = typename Flavor::SubrelationSeparator |
Private Member Functions | |
| 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 &) |
| 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() } |
Static Private Attributes | |
| static constexpr size_t | num_zero_rows = Flavor::has_zero_row ? 1 : 0 |
| static constexpr size_t | NUM_WIRES = Circuit::NUM_WIRES |
A ProverInstance is normally constructed from a finalized circuit and it contains all the information required by a Mega Honk prover to create a proof.
Definition at line 33 of file prover_instance.hpp.
|
private |
Definition at line 39 of file prover_instance.hpp.
|
private |
Definition at line 40 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::FF = typename Flavor::FF |
Definition at line 36 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::Flavor = Flavor_ |
Definition at line 35 of file prover_instance.hpp.
|
private |
Definition at line 43 of file prover_instance.hpp.
|
private |
Definition at line 41 of file prover_instance.hpp.
|
private |
Definition at line 44 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::Trace = TraceToPolynomials<Flavor> |
Definition at line 51 of file prover_instance.hpp.
|
private |
Definition at line 42 of file prover_instance.hpp.
|
inline |
Definition at line 96 of file prover_instance.hpp.
|
default |
|
delete |
|
delete |
|
default |
|
private |
Definition at line 141 of file prover_instance.cpp.
|
private |
Definition at line 126 of file prover_instance.cpp.
|
private |
Definition at line 71 of file prover_instance.cpp.
|
private |
Definition at line 54 of file prover_instance.cpp.
|
private |
Definition at line 82 of file prover_instance.cpp.
|
private |
Definition at line 98 of file prover_instance.cpp.
|
private |
Definition at line 42 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 25 of file prover_instance.cpp.
|
private |
|
inline |
Definition at line 70 of file prover_instance.hpp.
|
inline |
Definition at line 79 of file prover_instance.hpp.
|
inline |
Definition at line 78 of file prover_instance.hpp.
|
inline |
Definition at line 91 of file prover_instance.hpp.
|
inline |
Definition at line 71 of file prover_instance.hpp.
|
inline |
Definition at line 73 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 DPK as indices into the full trace by accounting for the offset of the memory block.
Definition at line 240 of file prover_instance.cpp.
|
inline |
Definition at line 72 of file prover_instance.hpp.
|
inline |
Definition at line 68 of file prover_instance.hpp.
|
inline |
Definition at line 69 of file prover_instance.hpp.
|
inline |
Get the size of the active trace range (0 to the final active wire index)
Definition at line 86 of file prover_instance.hpp.
| SubrelationSeparator bb::ProverInstance_< Flavor_ >::alpha |
Definition at line 56 of file prover_instance.hpp.
| CommitmentKey bb::ProverInstance_< Flavor_ >::commitment_key |
Definition at line 66 of file prover_instance.hpp.
| WitnessCommitments bb::ProverInstance_< Flavor_ >::commitments |
Definition at line 55 of file prover_instance.hpp.
|
private |
Definition at line 48 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::gate_challenges |
Definition at line 58 of file prover_instance.hpp.
| HonkProof bb::ProverInstance_< Flavor_ >::ipa_proof |
Definition at line 60 of file prover_instance.hpp.
| bool bb::ProverInstance_< Flavor_ >::is_complete = false |
Definition at line 62 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_read_records |
Definition at line 63 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_write_records |
Definition at line 64 of file prover_instance.hpp.
|
private |
Definition at line 46 of file prover_instance.hpp.
|
staticconstexprprivate |
Definition at line 212 of file prover_instance.hpp.
|
staticconstexprprivate |
Definition at line 211 of file prover_instance.hpp.
| ProverPolynomials bb::ProverInstance_< Flavor_ >::polynomials |
Definition at line 54 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::public_inputs |
Definition at line 53 of file prover_instance.hpp.
| bb::RelationParameters<FF> bb::ProverInstance_< Flavor_ >::relation_parameters |
Definition at line 57 of file prover_instance.hpp.