Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
client_ivc_recursive_verifier.cpp
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
#include "
client_ivc_recursive_verifier.hpp
"
8
9
namespace
bb::stdlib::recursion::honk
{
10
17
ClientIVCRecursiveVerifier::Output
ClientIVCRecursiveVerifier::verify
(
const
StdlibProof
& proof)
18
{
19
using
MergeCommitments = GoblinVerifier::MergeVerifier::InputCommitments;
20
std::shared_ptr<Transcript> civc_rec_verifier_transcript(
std::make_shared<Transcript>
());
21
22
// Perform recursive decider verification
23
MegaVerifier
verifier{
builder
,
stdlib_mega_vk_and_hash
, civc_rec_verifier_transcript };
24
MegaVerifier::Output
mega_output = verifier.template verify_proof<HidingKernelIO<Builder>>(proof.
mega_proof
);
25
26
// Perform Goblin recursive verification
27
GoblinVerificationKey
goblin_verification_key{};
28
MergeCommitments merge_commitments{
29
.t_commitments = verifier.key->witness_commitments.get_ecc_op_wires()
30
.get_copy(),
// Commitments to subtables added by the hiding kernel
31
.T_prev_commitments =
std::move
(mega_output.
ecc_op_tables
)
// Commitments to the state of the ecc op_queue as
32
// computed insided the hiding kernel
33
};
34
GoblinVerifier
goblin_verifier{
builder
, goblin_verification_key, civc_rec_verifier_transcript };
35
GoblinRecursiveVerifierOutput
output =
36
goblin_verifier.verify(proof.
goblin_proof
, merge_commitments,
MergeSettings::APPEND
);
37
output.
points_accumulator
.
aggregate
(mega_output.
points_accumulator
);
38
// TODO(https://github.com/AztecProtocol/barretenberg/issues/1396): State tracking in CIVC verifiers
39
return
{ output };
40
}
41
42
}
// namespace bb::stdlib::recursion::honk
bb::stdlib::recursion::honk::ClientIVCRecursiveVerifier::verify
Output verify(const StdlibProof &)
Creates a circuit that executes the ClientIvc verification algorithm.
Definition
client_ivc_recursive_verifier.cpp:17
bb::stdlib::recursion::honk::ClientIVCRecursiveVerifier::builder
Builder * builder
Definition
client_ivc_recursive_verifier.hpp:115
bb::stdlib::recursion::honk::ClientIVCRecursiveVerifier::stdlib_mega_vk_and_hash
std::shared_ptr< RecursiveVKAndHash > stdlib_mega_vk_and_hash
Definition
client_ivc_recursive_verifier.hpp:117
bb::stdlib::recursion::honk::GoblinRecursiveVerifier
Definition
goblin_recursive_verifier.hpp:24
bb::stdlib::recursion::honk::UltraRecursiveVerifier_
Definition
ultra_recursive_verifier.hpp:53
client_ivc_recursive_verifier.hpp
bb::stdlib::recursion::honk
Definition
graph_description_goblin.test.cpp:13
bb::APPEND
@ APPEND
Definition
ecc_ops_table.hpp:21
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
bb::Goblin::VerificationKey
Definition
goblin.hpp:59
bb::stdlib::recursion::PairingPoints::aggregate
void aggregate(PairingPoints const &other)
Compute a linear combination of the present pairing points with an input set of pairing points.
Definition
pairing_points.hpp:60
bb::stdlib::recursion::honk::ClientIVCRecursiveVerifier::StdlibProof
Definition
client_ivc_recursive_verifier.hpp:32
bb::stdlib::recursion::honk::ClientIVCRecursiveVerifier::StdlibProof::goblin_proof
StdlibGoblinProof goblin_proof
Definition
client_ivc_recursive_verifier.hpp:47
bb::stdlib::recursion::honk::ClientIVCRecursiveVerifier::StdlibProof::mega_proof
StdlibHonkProof mega_proof
Definition
client_ivc_recursive_verifier.hpp:46
bb::stdlib::recursion::honk::GoblinRecursiveVerifierOutput
Definition
goblin_recursive_verifier.hpp:15
bb::stdlib::recursion::honk::GoblinRecursiveVerifierOutput::points_accumulator
PairingAccumulator points_accumulator
Definition
goblin_recursive_verifier.hpp:19
bb::stdlib::recursion::honk::UltraRecursiveVerifierOutput
Definition
ultra_recursive_verifier.hpp:23
bb::stdlib::recursion::honk::UltraRecursiveVerifierOutput::ecc_op_tables
std::array< G1, Builder::NUM_WIRES > ecc_op_tables
Definition
ultra_recursive_verifier.hpp:31
bb::stdlib::recursion::honk::UltraRecursiveVerifierOutput::points_accumulator
PairingPoints< Builder > points_accumulator
Definition
ultra_recursive_verifier.hpp:28
src
barretenberg
stdlib
client_ivc_verifier
client_ivc_recursive_verifier.cpp
Generated by
1.9.8