Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
decider_recursive_verifier.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5// =====================
6
7#pragma once
15
17template <typename Flavor> class DeciderRecursiveVerifier_ {
18 using NativeFlavor = typename Flavor::NativeFlavor;
19 using FF = typename Flavor::FF;
30
31 public:
35
47 const std::shared_ptr<Transcript>& transcript)
50 {
51 if (this->builder == accumulator->builder) {
52 this->accumulator = std::move(accumulator);
53 } else {
55 this->builder, std::make_shared<NativeVerifierInstance>(accumulator->get_value()));
56 }
57 }
58
59 [[nodiscard("Pairing points should be accumulated")]] PairingPoints verify_proof(const HonkProof& proof);
60 [[nodiscard("Pairing points should be accumulated")]] PairingPoints verify_proof(const StdlibProof& proof);
61
65 std::shared_ptr<Transcript> transcript = std::make_shared<Transcript>();
66};
67
68} // namespace bb::stdlib::recursion::honk
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
The verification key is responsible for storing the commitments to the precomputed (non-witness) poly...
Curve::ScalarField FF
bb::VerifierCommitmentKey< Curve > VerifierCommitmentKey
Curve::Element GroupElement
MegaCircuitBuilder CircuitBuilder
Curve::AffineElement Commitment
The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a ...
A simple wrapper around a vector of stdlib field elements representing a proof.
Definition proof.hpp:19
PairingPoints verify_proof(const HonkProof &proof)
Creates a circuit that executes the decider verifier algorithm up to the final pairing check.
DeciderRecursiveVerifier_(Builder *builder, std::shared_ptr< NativeVerifierInstance > accumulator)
DeciderRecursiveVerifier_(Builder *builder, std::shared_ptr< RecursiveVerifierInstance > accumulator, const std::shared_ptr< Transcript > &transcript)
Construct a decider recursive verifier directly from a stdlib accumulator, returned by a prior iterat...
std::shared_ptr< RecursiveVerifierInstance > accumulator
The stdlib counterpart of VerifierInstance, used in recursive folding verification.
std::vector< fr > HonkProof
Definition proof.hpp:15
STL namespace.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13