barretenberg
Loading...
Searching...
No Matches
goblin_translator_prover.hpp
1#pragma once
2#include "barretenberg/flavor/goblin_translator.hpp"
3#include "barretenberg/plonk/proof_system/types/proof.hpp"
4#include "barretenberg/relations/relation_parameters.hpp"
5#include "barretenberg/sumcheck/sumcheck_output.hpp"
6
7namespace proof_system::honk {
8
9// We won't compile this class with honk::flavor::Standard, but we will like want to compile it (at least for testing)
10// with a flavor that uses the curve Grumpkin, or a flavor that does/does not have zk, etc.
12
14 using FF = typename Flavor::FF;
15 using BF = typename Flavor::BF;
16 using Commitment = typename Flavor::Commitment;
17 using CommitmentKey = typename Flavor::CommitmentKey;
18 using ProvingKey = typename Flavor::ProvingKey;
19 using Polynomial = typename Flavor::Polynomial;
20 using ProverPolynomials = typename Flavor::ProverPolynomials;
21 using CommitmentLabels = typename Flavor::CommitmentLabels;
22 using Curve = typename Flavor::Curve;
23 using Transcript = typename Flavor::Transcript;
24
25 static size_t constexpr MINI_CIRCUIT_SIZE = Flavor::MINI_CIRCUIT_SIZE;
26 static size_t constexpr FULL_CIRCUIT_SIZE = Flavor::FULL_CIRCUIT_SIZE;
27
28 public:
29 explicit GoblinTranslatorProver(const std::shared_ptr<ProvingKey>& input_key,
30 const std::shared_ptr<CommitmentKey>& commitment_key,
31 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
32
38 plonk::proof& export_proof();
39 plonk::proof& construct_proof();
40
41 std::shared_ptr<Transcript> transcript = std::make_shared<Transcript>();
42
43 proof_system::RelationParameters<FF> relation_parameters;
44
45 std::shared_ptr<ProvingKey> key;
46
47 // Container for spans of all polynomials required by the prover (i.e. all multivariates evaluated by Sumcheck).
48 ProverPolynomials prover_polynomials;
49
50 CommitmentLabels commitment_labels;
51
52 std::shared_ptr<CommitmentKey> commitment_key;
53
55
56 private:
57 plonk::proof proof;
58};
59
60} // namespace proof_system::honk
Definition: polynomial.hpp:12
Definition: bn254.hpp:10
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_prover.hpp:11
void execute_grand_product_computation_round()
Compute permutation product polynomial and commitments.
Definition: goblin_translator_prover.cpp:89
void execute_wire_and_sorted_constraints_commitments_round()
Compute commitments to the first three wires.
Definition: goblin_translator_prover.cpp:75
void execute_preamble_round()
Add circuit size and values used in the relations to the transcript.
Definition: goblin_translator_prover.cpp:56
void execute_relation_check_rounds()
Run Sumcheck resulting in u = (u_1,...,u_d) challenges and all evaluations at u being calculated.
Definition: goblin_translator_prover.cpp:139
void execute_zeromorph_rounds()
Execute the ZeroMorph protocol to prove the multilinear evaluations produced by Sumcheck.
Definition: goblin_translator_prover.cpp:154
A container for commitment labels.
Definition: goblin_translator.hpp:1022
A container for the prover polynomials handles.
Definition: goblin_translator.hpp:955
The proving key is responsible for storing the polynomials used by the prover.
Definition: goblin_translator.hpp:902
Definition: goblin_translator.hpp:21
CommitmentKey object over a pairing group 𝔾₁.
Definition: commitment_key.hpp:35
Defines particular circuit builder types expected to be used for circuit construction in stdlib and c...
Definition: claim.hpp:6
Container for parameters used by the grand product (permutation, lookup) Honk relations.
Definition: relation_parameters.hpp:12
Contains the multi-linear evaluations of the polynomials at the challenge point 'u'....
Definition: sumcheck_output.hpp:13
Definition: proof.hpp:11