barretenberg
Loading...
Searching...
No Matches
merge_verifier.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/srs/global_crs.hpp"
9#include "barretenberg/transcript/transcript.hpp"
10
11namespace proof_system::honk {
12
18template <typename Flavor> class MergeVerifier_ {
19 using FF = typename Flavor::FF;
20 using Polynomial = typename Flavor::Polynomial;
21 using CommitmentKey = typename Flavor::CommitmentKey;
22 using Commitment = typename Flavor::Commitment;
23 using PCS = typename Flavor::PCS;
24 using Curve = typename Flavor::Curve;
25 using OpeningClaim = typename pcs::OpeningClaim<Curve>;
26 using VerificationKey = typename Flavor::VerificationKey;
27 using VerifierCommitmentKey = typename Flavor::VerifierCommitmentKey;
28 using Transcript = typename Flavor::Transcript;
29
30 public:
31 std::shared_ptr<Transcript> transcript;
32 std::shared_ptr<ECCOpQueue> op_queue;
33 std::shared_ptr<VerifierCommitmentKey> pcs_verification_key;
34
35 explicit MergeVerifier_();
36 bool verify_proof(const plonk::proof& proof);
37};
38
39extern template class MergeVerifier_<honk::flavor::Ultra>;
41
42} // 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
Verifier class for the Goblin ECC op queue transcript merge protocol.
Definition: merge_verifier.hpp:18
bool verify_proof(const plonk::proof &proof)
Verify proper construction of the aggregate Goblin ECC op queue polynomials T_i^(j),...
Definition: merge_verifier.cpp: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
Unverified claim (C,r,v) for some witness polynomial p(X) such that.
Definition: claim.hpp:43
Definition: verification_key.hpp:25
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