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 {
54 this->accumulator = std::make_shared<RecursiveDeciderVK>(
55 this->builder, std::make_shared<NativeDeciderVK>(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 DeciderVerificationKey encapsulates all the necessary information for a Mega Honk Verifier to ver...
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
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< NativeDeciderVK > accumulator)
DeciderRecursiveVerifier_(Builder *builder, std::shared_ptr< RecursiveDeciderVK > accumulator, const std::shared_ptr< Transcript > &transcript)
Construct a decider recursive verifier directly from a stdlib accumulator, returned by a prior iterat...
The stdlib counterpart of DeciderVerificationKey, 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