13template <IsUltraOrMegaHonk Flavor>
15 const std::shared_ptr<HonkVK>& honk_vk,
17 : proving_key(
std::move(proving_key))
20 , commitment_key(commitment_key)
30template <IsUltraOrMegaHonk Flavor>
32 const std::shared_ptr<HonkVK>& honk_vk,
33 const std::shared_ptr<Transcript>& transcript)
34 : proving_key(
std::move(proving_key))
36 , transcript(transcript)
37 , commitment_key(proving_key->commitment_key)
47template <IsUltraOrMegaHonk Flavor>
49 const std::shared_ptr<HonkVK>& honk_vk,
50 const std::shared_ptr<Transcript>& transcript)
53 , transcript(transcript)
54 , commitment_key(proving_key->commitment_key)
57template <IsUltraOrMegaHonk Flavor>
62 , commitment_key(proving_key->commitment_key)
67 auto proof = transcript->export_proof();
72 BB_ASSERT_EQ(proving_key->ipa_proof.size(),
static_cast<size_t>(IPA_PROOF_LENGTH));
73 proof.insert(proof.end(), proving_key->ipa_proof.begin(), proving_key->ipa_proof.end());
82 const size_t virtual_log_n =
85 proving_key->gate_challenges =
86 transcript->template get_powers_of_challenge<FF>(
"Sumcheck:gate_challenge", virtual_log_n);
93 vinfo(
"created oink proof");
95 generate_gate_challenges();
99 return export_proof();
105#ifdef STARKNET_GARAGA_FLAVORS
#define BB_ASSERT_EQ(actual, expected,...)
A DeciderProvingKey is normally constructed from a finalized circuit and it contains all the informat...
static constexpr size_t VIRTUAL_LOG_N
static constexpr bool USE_PADDING
Class for all the oink rounds, which are shared between the folding prover and ultra prover.
void prove()
Oink Prover function that runs all the rounds of the verifier.
UltraProver_(const std::shared_ptr< DeciderPK > &, const std::shared_ptr< HonkVK > &, const CommitmentKey &)
BB_PROFILE void generate_gate_challenges()
typename Transcript::Proof Proof
typename Flavor::CommitmentKey CommitmentKey
typename Flavor::Transcript Transcript
typename Flavor::CircuitBuilder Builder
Entry point for Barretenberg command-line interface.