83 [[nodiscard(
"Verification result should be checked")]] VerificationResult
verify_proof(
84 const Proof& proof,
const InputCommitments& input_commitments);
88 "LEFT_TABLE_DEGREE_CHECK_1",
89 "LEFT_TABLE_DEGREE_CHECK_2",
90 "LEFT_TABLE_DEGREE_CHECK_3" };
93 "SHPLONK_MERGE_BATCHING_CHALLENGE_0",
"SHPLONK_MERGE_BATCHING_CHALLENGE_1",
94 "SHPLONK_MERGE_BATCHING_CHALLENGE_2",
"SHPLONK_MERGE_BATCHING_CHALLENGE_3",
95 "SHPLONK_MERGE_BATCHING_CHALLENGE_4",
"SHPLONK_MERGE_BATCHING_CHALLENGE_5",
96 "SHPLONK_MERGE_BATCHING_CHALLENGE_6",
"SHPLONK_MERGE_BATCHING_CHALLENGE_7",
97 "SHPLONK_MERGE_BATCHING_CHALLENGE_8",
"SHPLONK_MERGE_BATCHING_CHALLENGE_9",
98 "SHPLONK_MERGE_BATCHING_CHALLENGE_10",
"SHPLONK_MERGE_BATCHING_CHALLENGE_11",
99 "SHPLONK_MERGE_BATCHING_CHALLENGE_12"
105 const FF& pow_kappa_minus_one,
106 const std::vector<FF>& degree_check_challenges)
const;
110 const FF& shplonk_opening_challenge,
111 const std::vector<FF>& shplonk_batching_challenges,
114 const std::vector<FF>& evals)
const;
120namespace stdlib::recursion::goblin {
static constexpr size_t NUM_WIRES
Defines the circuit block types for the Mega arithmetization.
Unified verifier class for the Goblin ECC op queue transcript merge protocol.
static constexpr bool IsRecursive
typename Curve::AffineElement Commitment
typename Curve::ScalarField FF
std::shared_ptr< Transcript > transcript
typename Curve::Element GroupElement
BatchOpeningClaim< Curve > compute_shplonk_opening_claim(const std::vector< Commitment > &table_commitments, const Commitment &shplonk_batched_quotient, const FF &shplonk_opening_challenge, const std::vector< FF > &shplonk_batching_challenges, const FF &kappa, const FF &kappa_inv, const std::vector< FF > &evals) const
TranscriptFor_t< Curve > Transcript
MergeVerifier_(const MergeSettings settings=MergeSettings::PREPEND, std::shared_ptr< Transcript > transcript=std::make_shared< Transcript >())
bool check_concatenation_identities(std::vector< FF > &evals, const FF &pow_kappa) const
std::conditional_t< Curve::is_stdlib_type, stdlib::recursion::PairingPoints< Curve >, bb::PairingPoints< Curve > > PairingPoints
std::vector< std::string > labels_degree_check
static constexpr size_t MERGE_BATCHED_CLAIM_SIZE
VerificationResult verify_proof(const Proof &proof, const InputCommitments &input_commitments)
Verify the merge proof.
bool check_degree_identity(std::vector< FF > &evals, const FF &pow_kappa_minus_one, const std::vector< FF > °ree_check_challenges) const
std::vector< std::string > labels_shplonk_batching_challenges
std::array< Commitment, NUM_WIRES > TableCommitments
static constexpr size_t NUM_WIRES
An object storing two EC points that represent the inputs to a pairing check.
typename Group::element Element
static constexpr bool is_stdlib_type
typename Group::affine_element AffineElement
Entry point for Barretenberg command-line interface.
MergeSettings
The MergeSettings define whether an current subtable will be added at the beginning (PREPEND) or at t...
typename TranscriptFor< Curve >::type TranscriptFor_t
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
An accumulator consisting of the Shplonk evaluation challenge and vectors of commitments and scalars.
Result of merge verification.
PairingPoints pairing_points
bool concatenation_check_passed
TableCommitments merged_commitments