25 : commitment_key(
std::move(bn254_commitment_key))
26 , transcript(transcript)
46 IPA_PCS::compute_opening_proof(eccvm_prover.
key->commitment_key, opening_claim, ipa_transcript);
67 info(
"Goblin: num ultra ops = ",
op_queue->get_ultra_ops_count());
71 "Goblin::prove: merge_verification_queue should contain only a single proof at this stage.");
74 vinfo(
"prove eccvm...");
76 vinfo(
"finished eccvm proving.");
77 vinfo(
"prove translator...");
79 vinfo(
"finished translator proving.");
106 return { merge_result.
pairing_points, merge_result.merged_commitments };
#define BB_ASSERT(expression,...)
#define BB_ASSERT_EQ(actual, expected,...)
#define BB_BENCH_NAME(name)
CommitmentKey object over a pairing group 𝔾₁.
FF evaluation_challenge_x
std::pair< Proof, OpeningClaim > construct_proof()
std::shared_ptr< ProvingKey > key
fq evaluation_challenge_x
void ensure_well_formed_op_queue_for_avm(MegaBuilder &builder) const
Add required initial ops to the op queue for AVM mode.
Goblin(CommitmentKey< curve::BN254 > bn254_commitment_key=CommitmentKey< curve::BN254 >(), const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >())
std::pair< PairingPoints, RecursiveTableCommitments > recursively_verify_merge(MegaBuilder &builder, const RecursiveMergeCommitments &merge_commitments, const std::shared_ptr< RecursiveTranscript > &transcript, const MergeSettings merge_settings=MergeSettings::PREPEND)
Recursively verify the next merge proof in the merge verification queue.
void prove_eccvm()
Construct an ECCVM proof and IPA opening proof.
fq translation_batching_challenge_v
void prove_merge(const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >(), const MergeSettings merge_settings=MergeSettings::PREPEND)
Construct a merge proof for the goblin ECC ops in the provided circuit; append the proof to the merge...
std::shared_ptr< OpQueue > op_queue
void prove_translator()
Construct a translator proof.
GoblinProof prove(const MergeSettings merge_settings=MergeSettings::PREPEND)
Constuct a full Goblin proof (ECCVM, Translator, merge)
MergeProver::MergeProof MergeProof
CommitmentKey< curve::BN254 > commitment_key
std::deque< MergeProof > merge_verification_queue
std::shared_ptr< Transcript > transcript
Prover class for the Goblin ECC op queue transcript merge protocol.
Unified verifier class for the Goblin ECC op queue transcript merge protocol.
ReductionResult reduce_to_pairing_check(const Proof &proof, const InputCommitments &input_commitments)
Reduce the merge proof to a pairing check.
TranslatorCircuitBuilder creates a circuit that evaluates the correctness of the evaluation of EccOpQ...
HonkProof construct_proof()
A simple wrapper around a vector of stdlib field elements representing a proof.
Entry point for Barretenberg command-line interface.
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
HonkProof translator_proof
PairingPoints pairing_points
curve::BN254::BaseField Fq