|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Specialization of Goblin for the AVM. More...
#include <goblin_avm.hpp>
Public Member Functions | |
| GoblinAvm (MegaBuilder &builder, const std::shared_ptr< Transcript > &avm_transcript=std::make_shared< Transcript >()) | |
| GoblinAvmProof | prove () |
| Constuct a full GoblinAvm proof (ECCVM, Translator) | |
Public Member Functions inherited from bb::Goblin | |
| Goblin (const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >()) | |
| MergeProof | prove_merge (const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >()) const |
| Construct a single-step merge proof for the most recently merged subtable. | |
| void | prove_eccvm () |
| Construct an ECCVM proof and IPA opening proof. | |
| void | prove_translator () |
| Construct a translator proof. | |
| GoblinProof | prove () |
| Constuct a full Goblin proof (ECCVM, Translator, merge) | |
| std::pair< PairingPoints, RecursiveTableCommitments > | recursively_verify_merge (MegaBuilder &builder, const RecursiveMergeCommitments &merge_commitments, const std::shared_ptr< RecursiveTranscript > &transcript) |
| Recursively verify the most recent single-step merge proof. | |
| void | prove_batch_merge () |
| Construct a batched merge proof for all subtables accumulated during the IVC. | |
| std::pair< PairingPoints, BatchRecursiveTableCommitments > | recursively_verify_batch_merge (MegaBuilder &builder, const BatchMergeRecursiveVerifier::FF &hash) const |
| Recursively verify the batched merge proof inside the hiding kernel. | |
Additional Inherited Members | |
Public Attributes inherited from bb::Goblin | |
| std::shared_ptr< OpQueue > | op_queue = std::make_shared<OpQueue>() |
| GoblinProof | goblin_proof |
| fq | translation_batching_challenge_v |
| fq | evaluation_challenge_x |
| std::shared_ptr< Transcript > | transcript |
| BatchMergeProof | batch_merge_proof |
Protected Attributes inherited from bb::Goblin | |
| bool | avm_mode = false |
Specialization of Goblin for the AVM.
The AVM uses Goblin for recursive verification to avoid bloating circuit size due to the large number of witness entities. As there is only one circuit, we don't need to perform a Merge, we can simply use as input to the Goblin proof the table of ECC ops produced by the circuit containing the AVM recursive verifier. This class specializes the Goblin constructor and Goblin::prove() method for the AVM case.
Definition at line 22 of file goblin_avm.hpp.
Definition at line 24 of file goblin_avm.hpp.
Definition at line 25 of file goblin_avm.hpp.
|
explicit |
Add required initial ops to the op queue:
Definition at line 24 of file goblin_avm.cpp.
| GoblinAvmProof bb::GoblinAvm::prove | ( | ) |
Constuct a full GoblinAvm proof (ECCVM, Translator)
Definition at line 48 of file goblin_avm.cpp.