barretenberg
Loading...
Searching...
No Matches
merge_prover.hpp
1#pragma once
2
3#include "barretenberg/commitment_schemes/claim.hpp"
4#include "barretenberg/flavor/goblin_ultra.hpp"
5#include "barretenberg/flavor/ultra.hpp"
6#include "barretenberg/plonk/proof_system/types/proof.hpp"
7#include "barretenberg/proof_system/op_queue/ecc_op_queue.hpp"
8#include "barretenberg/transcript/transcript.hpp"
9
10namespace proof_system::honk {
11
17template <typename Flavor> class MergeProver_ {
18 using FF = typename Flavor::FF;
19 using Polynomial = typename Flavor::Polynomial;
20 using CommitmentKey = typename Flavor::CommitmentKey;
21 using Commitment = typename Flavor::Commitment;
22 using PCS = typename Flavor::PCS;
23 using Curve = typename Flavor::Curve;
24 using OpeningClaim = typename pcs::ProverOpeningClaim<Curve>;
25 using OpeningPair = typename pcs::OpeningPair<Curve>;
27
28 public:
29 std::shared_ptr<Transcript> transcript;
30 std::shared_ptr<ECCOpQueue> op_queue;
31 std::shared_ptr<CommitmentKey> pcs_commitment_key;
32
33 explicit MergeProver_(const std::shared_ptr<CommitmentKey>&,
34 const std::shared_ptr<ECCOpQueue>&,
35 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
37
38 private:
39 plonk::proof proof;
40};
41
42extern template class MergeProver_<honk::flavor::Ultra>;
43extern template class MergeProver_<honk::flavor::GoblinUltra>;
44
45} // 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
Prover class for the Goblin ECC op queue transcript merge protocol.
Definition: merge_prover.hpp:17
plonk::proof & construct_proof()
Prove proper construction of the aggregate Goblin ECC op queue polynomials T_i^(j),...
Definition: merge_prover.cpp:32
CommitmentKey object over a pairing group 𝔾₁.
Definition: commitment_key.hpp:35
Opening pair (r,v) for some witness polynomial p(X) such that p(r) = v.
Definition: claim.hpp:12
Polynomial p and an opening pair (r,v) such that p(r) = v.
Definition: claim.hpp:27
Definition: kzg.hpp:14
Defines particular circuit builder types expected to be used for circuit construction in stdlib and c...
Definition: claim.hpp:6
Definition: proof.hpp:11