Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
goblin_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
12
14
23
25 public:
26 // Goblin Recursive Verifier circuit is using Ultra arithmetisation
30
34
36
37 // ECCVM and Translator verification keys
39
40 // Merge commitments
42
43 struct StdlibProof {
46
48 StdlibEccvmProof eccvm_proof; // contains pre-IPA and IPA proofs
50
51 StdlibProof() = default;
52
53 StdlibProof(Builder& builder, const GoblinProof& goblin_proof)
54 : merge_proof(builder, goblin_proof.merge_proof)
56 ECCVMProof{ goblin_proof.eccvm_proof.pre_ipa_proof, goblin_proof.eccvm_proof.ipa_proof })
58 {}
59 };
60
67
68 [[nodiscard("IPA claim and Pairing points should be accumulated")]] GoblinRecursiveVerifierOutput verify(
69 const GoblinProof&,
70 const MergeCommitments& merge_commitments,
71 const MergeSettings merge_settings = MergeSettings::PREPEND);
72 [[nodiscard("IPA claim and Pairing points should be accumulated")]] GoblinRecursiveVerifierOutput verify(
73 const StdlibProof&,
74 const MergeCommitments& merge_commitments,
75 const MergeSettings merge_settings = MergeSettings::PREPEND);
76
77 private:
79 VerificationKey verification_keys; // ECCVM and Translator verification keys
80 std::shared_ptr<Transcript> transcript;
81};
82
83} // namespace bb::stdlib::recursion::honk
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Unverified claim (C,r,v) for some witness polynomial p(X) such that.
Definition claim.hpp:53
The recursive counterpart of the native Translator flavor.
TranslationEvaluations_< BF > TranslationEvaluations
A simple wrapper around a vector of stdlib field elements representing a proof.
Definition proof.hpp:19
GoblinRecursiveVerifier(Builder *builder, const VerificationKey &verification_keys, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
GoblinRecursiveVerifierOutput verify(const GoblinProof &, const MergeCommitments &merge_commitments, const MergeSettings merge_settings=MergeSettings::PREPEND)
Creates a circuit that executes the ECCVM, Translator and Merge verifiers.
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
MergeSettings
The MergeSettings define whether an current subtable will be added at the beginning (PREPEND) or at t...
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Stores the evaluations of op, Px, Py, z1, and z2 computed by the ECCVM Prover. These evaluations are ...
Curve grumpkin in circuit setting.
Definition grumpkin.hpp:21