Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
protogalaxy_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
16
18template <class DeciderVerificationKeys> class ProtogalaxyRecursiveVerifier_ {
19 public:
20 using Flavor = typename DeciderVerificationKeys::Flavor;
21 using FF = typename Flavor::FF;
23 using DeciderVK = typename DeciderVerificationKeys::DeciderVK;
24 using VKAndHash = typename Flavor::VKAndHash;
25
28
29 static constexpr size_t NUM_SUBRELATIONS = Flavor::NUM_SUBRELATIONS;
30
32
33 DeciderVerificationKeys keys_to_fold;
34
35 std::shared_ptr<Transcript> transcript = std::make_shared<Transcript>();
36
38 const std::shared_ptr<DeciderVK>& accumulator,
39 const std::vector<std::shared_ptr<VKAndHash>>& vk_and_hashs,
40 const std::shared_ptr<Transcript>& transcript)
42 , keys_to_fold(DeciderVerificationKeys(builder, accumulator, vk_and_hashs))
44
46 const std::shared_ptr<DeciderVK>& accumulator,
47 const std::shared_ptr<DeciderVK>& incoming_instance,
48 const std::shared_ptr<Transcript>& transcript)
50 , keys_to_fold(DeciderVerificationKeys(builder, accumulator, incoming_instance))
52
56 void run_oink_verifier_on_each_incomplete_key(const std::vector<FF>&);
57
67 std::shared_ptr<DeciderVK> verify_folding_proof(const stdlib::Proof<Builder>&);
68};
69
70} // namespace bb::stdlib::recursion::honk
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Curve::ScalarField FF
static constexpr size_t NUM_SUBRELATIONS
MegaCircuitBuilder CircuitBuilder
Curve::AffineElement Commitment
A simple wrapper around a vector of stdlib field elements representing a proof.
Definition proof.hpp:19
ProtogalaxyRecursiveVerifier_(Builder *builder, const std::shared_ptr< DeciderVK > &accumulator, const std::vector< std::shared_ptr< VKAndHash > > &vk_and_hashs, const std::shared_ptr< Transcript > &transcript)
ProtogalaxyRecursiveVerifier_(Builder *builder, const std::shared_ptr< DeciderVK > &accumulator, const std::shared_ptr< DeciderVK > &incoming_instance, const std::shared_ptr< Transcript > &transcript)
std::shared_ptr< DeciderVK > verify_folding_proof(const stdlib::Proof< Builder > &)
Run the folding protocol on the verifier side to establish whether the public data ϕ of the new accum...
void run_oink_verifier_on_each_incomplete_key(const std::vector< FF > &)
Process the public data ϕ for the decider verification keys to be folded.
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13