|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <prover.hpp>
Public Types | |
| using | Flavor = AvmFlavor |
| using | FF = Flavor::FF |
| using | PCS = Flavor::PCS |
| using | Curve = Flavor::Curve |
| using | PCSCommitmentKey = Flavor::CommitmentKey |
| using | ProvingKey = Flavor::ProvingKey |
| using | VerificationKey = Flavor::VerificationKey |
| using | Polynomial = Flavor::Polynomial |
| using | ProverPolynomials = Flavor::ProverPolynomials |
| using | Transcript = Flavor::Transcript |
| using | Proof = HonkProof |
Public Member Functions | |
| AvmProver (std::shared_ptr< ProvingKey > input_proving_key, std::shared_ptr< VerificationKey > vk, const PCSCommitmentKey &commitment_key) | |
| AvmProver (AvmProver &&prover)=default | |
| virtual | ~AvmProver ()=default |
| void | execute_preamble_round () |
| Add vk hash to transcript. | |
| void | execute_public_inputs_round () |
| Add public inputs to transcript. | |
| void | execute_wire_commitments_round () |
| Compute commitments to all of the witness wires (apart from the logderivative inverse wires) | |
| void | execute_log_derivative_inverse_round () |
| void | execute_log_derivative_inverse_commitments_round () |
| void | execute_relation_check_rounds () |
| Run Sumcheck resulting in u = (u_1,...,u_d) challenges and all evaluations at u being calculated. | |
| void | execute_pcs_rounds () |
| Run the PCS to prove that the claimed evaluations are correct. | |
| HonkProof | export_proof () |
| HonkProof | construct_proof () |
Public Attributes | |
| std::shared_ptr< Transcript > | transcript = std::make_shared<Transcript>() |
| std::vector< FF > | public_inputs |
| bb::RelationParameters< FF > | relation_parameters |
| std::shared_ptr< ProvingKey > | proving_key |
| std::shared_ptr< VerificationKey > | vk |
| ProverPolynomials | prover_polynomials |
| SumcheckOutput< Flavor > | sumcheck_output |
| PCSCommitmentKey | commitment_key |
Definition at line 15 of file prover.hpp.
Definition at line 20 of file prover.hpp.
| using bb::avm2::AvmProver::FF = Flavor::FF |
Definition at line 18 of file prover.hpp.
| using bb::avm2::AvmProver::Flavor = AvmFlavor |
Definition at line 17 of file prover.hpp.
| using bb::avm2::AvmProver::PCS = Flavor::PCS |
Definition at line 19 of file prover.hpp.
Definition at line 21 of file prover.hpp.
Definition at line 24 of file prover.hpp.
| using bb::avm2::AvmProver::Proof = HonkProof |
Definition at line 27 of file prover.hpp.
Definition at line 25 of file prover.hpp.
Definition at line 22 of file prover.hpp.
Definition at line 26 of file prover.hpp.
Definition at line 23 of file prover.hpp.
|
explicit |
Create AvmProver from proving key, verification key and commitment key.
| input_key | Proving key. |
| vk | Verification key. |
| commitment_key | PCS commitment key |
Definition at line 42 of file prover.cpp.
|
default |
|
virtualdefault |
| HonkProof bb::avm2::AvmProver::construct_proof | ( | ) |
Definition at line 266 of file prover.cpp.
| void bb::avm2::AvmProver::execute_log_derivative_inverse_commitments_round | ( | ) |
Definition at line 140 of file prover.cpp.
| void bb::avm2::AvmProver::execute_log_derivative_inverse_round | ( | ) |
Definition at line 109 of file prover.cpp.
| void bb::avm2::AvmProver::execute_pcs_rounds | ( | ) |
Run the PCS to prove that the claimed evaluations are correct.
To optimize the usage of the ECCVM, we batch the polynomials using short scalars before executing Shplemini. The batching proceeds in two phases (note that the unshifted polynomials contain copies of the shifted polynomials that have not been shifted yet; this allows us to save some work by batching the shifted polynomials in their to_be_shifted form and later shift them):
Definition at line 191 of file prover.cpp.
| void bb::avm2::AvmProver::execute_preamble_round | ( | ) |
Add vk hash to transcript.
Definition at line 55 of file prover.cpp.
| void bb::avm2::AvmProver::execute_public_inputs_round | ( | ) |
Add public inputs to transcript.
Definition at line 69 of file prover.cpp.
| void bb::avm2::AvmProver::execute_relation_check_rounds | ( | ) |
Run Sumcheck resulting in u = (u_1,...,u_d) challenges and all evaluations at u being calculated.
Definition at line 157 of file prover.cpp.
| void bb::avm2::AvmProver::execute_wire_commitments_round | ( | ) |
Compute commitments to all of the witness wires (apart from the logderivative inverse wires)
Definition at line 97 of file prover.cpp.
| HonkProof bb::avm2::AvmProver::export_proof | ( | ) |
Definition at line 261 of file prover.cpp.
| PCSCommitmentKey bb::avm2::AvmProver::commitment_key |
Definition at line 60 of file prover.hpp.
| ProverPolynomials bb::avm2::AvmProver::prover_polynomials |
Definition at line 56 of file prover.hpp.
| std::shared_ptr<ProvingKey> bb::avm2::AvmProver::proving_key |
Definition at line 52 of file prover.hpp.
| std::vector<FF> bb::avm2::AvmProver::public_inputs |
Definition at line 48 of file prover.hpp.
| bb::RelationParameters<FF> bb::avm2::AvmProver::relation_parameters |
Definition at line 50 of file prover.hpp.
| SumcheckOutput<Flavor> bb::avm2::AvmProver::sumcheck_output |
Definition at line 58 of file prover.hpp.
| std::shared_ptr<Transcript> bb::avm2::AvmProver::transcript = std::make_shared<Transcript>() |
Definition at line 46 of file prover.hpp.
| std::shared_ptr<VerificationKey> bb::avm2::AvmProver::vk |
Definition at line 53 of file prover.hpp.