3#include "barretenberg/flavor/goblin_translator.hpp"
4#include "barretenberg/proof_system/composer/composer_lib.hpp"
5#include "barretenberg/srs/factories/file_crs_factory.hpp"
6#include "barretenberg/srs/global_crs.hpp"
7#include "barretenberg/translator_vm/goblin_translator_prover.hpp"
8#include "barretenberg/translator_vm/goblin_translator_verifier.hpp"
23 static constexpr size_t MINI_CIRCUIT_SIZE = Flavor::MINI_CIRCUIT_SIZE;
25 static constexpr std::string_view NAME_STRING =
"GoblinTranslator";
26 static constexpr size_t NUM_WIRES = CircuitBuilder::NUM_WIRES;
27 std::shared_ptr<ProvingKey> proving_key;
28 std::shared_ptr<VerificationKey> verification_key;
31 std::shared_ptr<barretenberg::srs::factories::CrsFactory<Curve>> crs_factory_;
34 std::shared_ptr<CommitmentKey> commitment_key;
36 bool computed_witness =
false;
37 size_t total_num_gates = 0;
38 size_t dyadic_circuit_size = 0;
39 size_t mini_circuit_dyadic_size = 0;
45 : proving_key(std::move(p_key))
46 , verification_key(std::move(v_key))
57 CircuitBuilder& circuit_builder,
58 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
60 const CircuitBuilder& circuit_builder,
61 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
63 std::shared_ptr<CommitmentKey> compute_commitment_key(
size_t circuit_size)
66 return commitment_key;
69 commitment_key = std::make_shared<CommitmentKey>(circuit_size, crs_factory_);
70 return commitment_key;
Definition: polynomial.hpp:12
GoblinTranslatorCircuitBuilder creates a circuit that evaluates the correctness of the evaluation of ...
Definition: goblin_translator_circuit_builder.hpp:76
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Definition: transcript.hpp:62
Definition: goblin_translator_composer.hpp:11
void compute_circuit_size_parameters(CircuitBuilder &circuit_builder)
Helper method to compute quantities like total number of gates and dyadic circuit size.
Definition: goblin_translator_composer.cpp:34
GoblinTranslatorProver create_prover(CircuitBuilder &circuit_builder, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
Create a prover object (used to create the proof)
Definition: goblin_translator_composer.cpp:205
void compute_witness(CircuitBuilder &circuit_builder)
Compute witness polynomials.
Definition: goblin_translator_composer.cpp:93
std::shared_ptr< VerificationKey > compute_verification_key(const CircuitBuilder &circuit_builder)
Definition: goblin_translator_composer.cpp:292
GoblinTranslatorVerifier create_verifier(const CircuitBuilder &circuit_builder, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
Create verifier: compute verification key, initialize verifier with it and an initial manifest and in...
Definition: goblin_translator_composer.cpp:233
std::shared_ptr< ProvingKey > compute_proving_key(const CircuitBuilder &circuit_builder)
Move goblin translator specific inputs from circuit builder and compute all the constant polynomials ...
Definition: goblin_translator_composer.cpp:256
Definition: goblin_translator_prover.hpp:11
Definition: goblin_translator_verifier.hpp:7
The proving key is responsible for storing the polynomials used by the prover.
Definition: goblin_translator.hpp:902
Definition: goblin_translator.hpp:21
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