3#include "barretenberg/eccvm/eccvm_prover.hpp"
4#include "barretenberg/eccvm/eccvm_verifier.hpp"
5#include "barretenberg/proof_system/circuit_builder/eccvm/eccvm_circuit_builder.hpp"
6#include "barretenberg/proof_system/composer/composer_lib.hpp"
7#include "barretenberg/srs/factories/file_crs_factory.hpp"
8#include "barretenberg/srs/global_crs.hpp"
22 static constexpr std::string_view NAME_STRING =
"ECCVM";
23 static constexpr size_t NUM_RESERVED_GATES = 0;
24 static constexpr size_t NUM_WIRES = CircuitConstructor::NUM_WIRES;
25 std::shared_ptr<ProvingKey> proving_key;
26 std::shared_ptr<VerificationKey> verification_key;
29 std::shared_ptr<barretenberg::srs::factories::CrsFactory<typename Flavor::Curve>> crs_factory_;
32 std::shared_ptr<CommitmentKey> commitment_key;
34 std::vector<uint32_t> recursive_proof_public_input_indices;
35 bool contains_recursive_proof =
false;
36 bool computed_witness =
false;
38 requires(std::same_as<Flavor, honk::flavor::ECCVM>)
40 crs_factory_ = barretenberg::srs::get_grumpkin_crs_factory();
45 : crs_factory_(std::move(crs_factory))
48 ECCVMComposer_(std::shared_ptr<ProvingKey> p_key, std::shared_ptr<VerificationKey> v_key)
49 : proving_key(std::move(p_key))
50 , verification_key(std::move(v_key))
59 std::shared_ptr<ProvingKey> compute_proving_key(
CircuitConstructor& circuit_constructor);
65 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
68 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
72 void compute_commitment_key(
size_t circuit_size)
74 commitment_key = std::make_shared<CommitmentKey>(circuit_size, crs_factory_);
Definition: crs_factory.hpp:72
Definition: eccvm_circuit_builder.hpp:17
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Definition: transcript.hpp:62
Definition: eccvm_composer.hpp:11
std::shared_ptr< VerificationKey > compute_verification_key(CircuitConstructor &circuit_constructor)
Definition: eccvm_composer.cpp:101
ECCVMVerifier_< Flavor > create_verifier(CircuitConstructor &circuit_constructor, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
Definition: eccvm_composer.cpp:49
void compute_witness(CircuitConstructor &circuit_constructor)
Compute witness polynomials.
Definition: eccvm_composer.cpp:11
Definition: eccvm_prover.hpp:15
Definition: eccvm_verifier.hpp:7
The proving key is responsible for storing the polynomials used by the prover.
Definition: goblin_translator.hpp:902
VerificationKey_< PrecomputedEntities< Commitment > > VerificationKey
The verification key is responsible for storing the the commitments to the precomputed (non-witnessk)...
Definition: goblin_translator.hpp:941
CommitmentKey object over a pairing group 𝔾₁.
Definition: commitment_key.hpp:35
Definition: verification_key.hpp:25
Defines particular circuit builder types expected to be used for circuit construction in stdlib and c...
Definition: claim.hpp:6