barretenberg
Loading...
Searching...
No Matches
merge_recursive_verifier.hpp
1#pragma once
2#include "barretenberg/commitment_schemes/kzg/kzg.hpp"
3#include "barretenberg/plonk/proof_system/types/proof.hpp"
4#include "barretenberg/stdlib/primitives/curves/bn254.hpp"
5#include "barretenberg/stdlib/recursion/honk/transcript/transcript.hpp"
6
7namespace proof_system::plonk::stdlib::recursion::goblin {
8template <typename CircuitBuilder> class MergeRecursiveVerifier_ {
9 public:
11 using FF = typename Curve::ScalarField;
12 using Commitment = typename Curve::Element;
13 using GroupElement = typename Curve::Element;
16 using PairingPoints = std::array<GroupElement, 2>;
18
19 CircuitBuilder* builder;
20 std::shared_ptr<Transcript> transcript;
21
22 static constexpr size_t NUM_WIRES = arithmetization::UltraHonk<FF>::NUM_WIRES;
23
24 explicit MergeRecursiveVerifier_(CircuitBuilder* builder);
25
26 PairingPoints verify_proof(const plonk::proof& proof);
27};
28
31
32} // namespace proof_system::plonk::stdlib::recursion::goblin
Ultra Honk arithmetization.
Definition: arithmetization.hpp:136
Unverified claim (C,r,v) for some witness polynomial p(X) such that.
Definition: claim.hpp:43
Definition: kzg.hpp:14
Definition: biggroup.hpp:22
Definition: field.hpp:10
PairingPoints verify_proof(const plonk::proof &proof)
Construct recursive verifier for Goblin Merge protocol, up to but not including the pairing.
Definition: merge_recursive_verifier.cpp:18
Definition: proof.hpp:11
Definition: bn254.hpp:10