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: Completed, auditors: [Federico], commit: 0e37cb8}
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 StdlibProof& stdlib_proof, const std::vector<std::vector<typename Flavor::FF>>& public_inputs);
38
44 FF hash_avm_transcript(const StdlibProof& stdlib_proof);
45
46 private:
48 std::shared_ptr<VerificationKey> key;
49 std::shared_ptr<Transcript> transcript;
50
52
53 static FF evaluate_public_input_column(const std::vector<FF>& points, const std::vector<FF>& challenges);
54};
55
56} // namespace bb::avm2
NativeFlavor::VerificationKey NativeVerificationKey
FixedStdlibVKAndHash_< CircuitBuilder, AvmFlavor::PrecomputedEntities< Commitment >, NativeVerificationKey > VerificationKey
In-circuit representation of the verification key of the AVM. It is reconstructed from precomputed va...
NativeFlavor::VerifierCommitments_< Commitment, VerificationKey > VerifierCommitments
stdlib::bn254< CircuitBuilder > Curve
TemplatedTranscript< CircuitBuilder > Transcript
std::array< FF, NUM_SUBRELATIONS - 1 > SubrelationSeparators
Curve::AffineElement Commitment
typename Flavor::VerificationKey VerificationKey
std::shared_ptr< Transcript > transcript
typename Flavor::VerifierCommitments VerifierCommitments
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
PairingPoints verify_proof(const StdlibProof &stdlib_proof, const std::vector< std::vector< typename Flavor::FF > > &public_inputs)
Verify an AVM proof and return PairingPoints whose validity bears witness to successful verification ...
static FF evaluate_public_input_column(const std::vector< FF > &points, const std::vector< FF > &challenges)
Evaluate the given public input column over the multivariate challenge points.
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
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.