|
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 |
| 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_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 32 of file prover_instance.hpp.
|
private |
Definition at line 38 of file prover_instance.hpp.
|
private |
Definition at line 39 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::FF = typename Flavor::FF |
Definition at line 35 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::Flavor = Flavor_ |
Definition at line 34 of file prover_instance.hpp.
|
private |
Definition at line 42 of file prover_instance.hpp.
|
private |
Definition at line 40 of file prover_instance.hpp.
|
private |
Definition at line 43 of file prover_instance.hpp.
| using bb::ProverInstance_< Flavor_ >::Trace = TraceToPolynomials<Flavor> |
Definition at line 50 of file prover_instance.hpp.
|
private |
Definition at line 41 of file prover_instance.hpp.
|
inline |
Definition at line 94 of file prover_instance.hpp.
|
default |
|
delete |
|
delete |
|
default |
|
private |
Definition at line 142 of file prover_instance.cpp.
|
private |
Definition at line 127 of file prover_instance.cpp.
|
private |
Definition at line 72 of file prover_instance.cpp.
|
private |
Definition at line 55 of file prover_instance.cpp.
|
private |
Definition at line 83 of file prover_instance.cpp.
|
private |
Definition at line 99 of file prover_instance.cpp.
|
private |
Definition at line 43 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 26 of file prover_instance.cpp.
|
private |
|
inline |
Definition at line 68 of file prover_instance.hpp.
|
inline |
Definition at line 77 of file prover_instance.hpp.
|
inline |
Definition at line 76 of file prover_instance.hpp.
|
inline |
Definition at line 89 of file prover_instance.hpp.
|
inline |
Definition at line 69 of file prover_instance.hpp.
|
inline |
Definition at line 71 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 241 of file prover_instance.cpp.
|
inline |
Definition at line 70 of file prover_instance.hpp.
|
inline |
Definition at line 66 of file prover_instance.hpp.
|
inline |
Definition at line 67 of file prover_instance.hpp.
|
inline |
Get the size of the active trace range (0 to the final active wire index)
Definition at line 84 of file prover_instance.hpp.
| SubrelationSeparator bb::ProverInstance_< Flavor_ >::alpha |
Definition at line 55 of file prover_instance.hpp.
| CommitmentKey bb::ProverInstance_< Flavor_ >::commitment_key |
Definition at line 64 of file prover_instance.hpp.
| WitnessCommitments bb::ProverInstance_< Flavor_ >::commitments |
Definition at line 54 of file prover_instance.hpp.
|
private |
Definition at line 47 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::gate_challenges |
Definition at line 57 of file prover_instance.hpp.
| HonkProof bb::ProverInstance_< Flavor_ >::ipa_proof |
Definition at line 59 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_read_records |
Definition at line 61 of file prover_instance.hpp.
| std::vector<uint32_t> bb::ProverInstance_< Flavor_ >::memory_write_records |
Definition at line 62 of file prover_instance.hpp.
|
private |
Definition at line 45 of file prover_instance.hpp.
|
staticconstexprprivate |
Definition at line 207 of file prover_instance.hpp.
| ProverPolynomials bb::ProverInstance_< Flavor_ >::polynomials |
Definition at line 53 of file prover_instance.hpp.
| std::vector<FF> bb::ProverInstance_< Flavor_ >::public_inputs |
Definition at line 52 of file prover_instance.hpp.
| bb::RelationParameters<FF> bb::ProverInstance_< Flavor_ >::relation_parameters |
Definition at line 56 of file prover_instance.hpp.