Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
recursive_verifier.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Planned, auditors: [Federico], commit: }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6
7#pragma once
8
13
14namespace bb::avm2 {
15
18 using FF = typename Flavor::FF;
19 using BF = typename Flavor::BF;
20 using Curve = typename Flavor::Curve;
26 using PCS = typename Flavor::PCS;
31
32 public:
34 const std::shared_ptr<Transcript>& transcript = std::make_shared<Transcript>());
35
36 [[nodiscard("IPA claim and Pairing points should be accumulated")]] PairingPoints verify_proof(
37 const HonkProof& proof, const std::vector<std::vector<fr>>& public_inputs_vec_nt);
38 [[nodiscard("IPA claim and Pairing points should be accumulated")]] PairingPoints verify_proof(
39 const StdlibProof& stdlib_proof, const std::vector<std::vector<typename Flavor::FF>>& public_inputs);
40
46 FF hash_avm_transcript(const StdlibProof& stdlib_proof);
47
48 private:
50 std::shared_ptr<VerificationKey> key;
52 std::shared_ptr<Transcript> transcript;
53
55
56 FF evaluate_public_input_column(const std::vector<FF>& points, const std::vector<FF>& challenges);
57};
58
59} // namespace bb::avm2
NativeFlavor::VerificationKey NativeVerificationKey
NativeFlavor::VerifierCommitments_< Commitment, VerificationKey > VerifierCommitments
AvmRecursiveFlavorSettings::BF BF
AvmRecursiveFlavorSettings::Curve Curve
TemplatedTranscript< CircuitBuilder > Transcript
AvmRecursiveFlavorSettings::CircuitBuilder CircuitBuilder
AvmRecursiveFlavorSettings::FF FF
std::array< FF, NUM_SUBRELATIONS - 1 > SubrelationSeparators
AvmRecursiveFlavorSettings::PCS PCS
AvmRecursiveFlavorSettings::Commitment Commitment
typename Flavor::VerificationKey VerificationKey
std::shared_ptr< Transcript > transcript
typename Flavor::VerifierCommitments VerifierCommitments
PairingPoints verify_proof(const StdlibProof &stdlib_proof, const std::vector< std::vector< typename Flavor::FF > > &public_inputs)
FF hash_avm_transcript(const StdlibProof &stdlib_proof)
Hash the transcript after verification is complete to produce a hash of the public inputs and proofs ...
typename Flavor::SubrelationSeparators SubrelationSeparators
std::shared_ptr< VerificationKey > key
FF evaluate_public_input_column(const std::vector< FF > &points, const std::vector< FF > &challenges)
PairingPoints verify_proof(const HonkProof &proof, const std::vector< std::vector< fr > > &public_inputs_vec_nt)
typename Flavor::CircuitBuilder Builder
typename Flavor::NativeVerificationKey NativeVerificationKey
typename Flavor::Commitment Commitment
A simple wrapper around a vector of stdlib field elements representing a proof.
Definition proof.hpp:19
std::vector< fr > HonkProof
Definition proof.hpp:15
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
An object storing two EC points that represent the inputs to a pairing check.