|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <ultra_prover.hpp>
Public Types | |
| using | Flavor = Flavor_ |
| using | FF = typename Flavor::FF |
| using | CommitmentKey = typename Flavor::CommitmentKey |
| using | Curve = typename Flavor::Curve |
| using | PCS = typename Flavor::PCS |
| using | ProverInstance = ProverInstance_< Flavor > |
| using | SmallSubgroupIPA = SmallSubgroupIPAProver< Flavor > |
| using | HonkVK = typename Flavor::VerificationKey |
| using | Transcript = typename Flavor::Transcript |
| using | Proof = typename Transcript::Proof |
| using | ZKData = ZKSumcheckData< Flavor > |
Public Member Functions | |
| UltraProver_ (std::shared_ptr< ProverInstance >, const std::shared_ptr< HonkVK > &, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >()) | |
| Proof | export_proof () |
| Export the complete proof, including IPA proof for rollup circuits. | |
| Proof | construct_proof () |
| size_t | num_public_inputs () const |
| size_t | log_dyadic_size () const |
| const std::shared_ptr< Transcript > & | get_transcript () const |
Private Member Functions | |
| BB_PROFILE void | execute_sumcheck_iop () |
| Run Sumcheck to establish that ∑_i pow(\vec{β*})f_i(ω) = 0, producing sumcheck round challenges u = (u_1,...,u_d) and claimed evaluations at u. | |
| BB_PROFILE void | execute_pcs () |
| Reduce the sumcheck multivariate evaluations to a single univariate opening claim via Shplemini, then produce an opening proof with the PCS (KZG or IPA). | |
| BB_PROFILE void | generate_gate_challenges () |
Private Attributes | |
| std::shared_ptr< ProverInstance > | prover_instance |
| std::shared_ptr< Transcript > | transcript |
| std::shared_ptr< HonkVK > | honk_vk |
| SumcheckOutput< Flavor > | sumcheck_output |
| ZKData | zk_sumcheck_data |
| CommitmentKey | commitment_key |
| size_t | virtual_log_n |
Definition at line 18 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::CommitmentKey = typename Flavor::CommitmentKey |
Definition at line 22 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::Curve = typename Flavor::Curve |
Definition at line 23 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::FF = typename Flavor::FF |
Definition at line 21 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::Flavor = Flavor_ |
Definition at line 20 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::HonkVK = typename Flavor::VerificationKey |
Definition at line 27 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::PCS = typename Flavor::PCS |
Definition at line 24 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::Proof = typename Transcript::Proof |
Definition at line 29 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::ProverInstance = ProverInstance_<Flavor> |
Definition at line 25 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::SmallSubgroupIPA = SmallSubgroupIPAProver<Flavor> |
Definition at line 26 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::Transcript = typename Flavor::Transcript |
Definition at line 28 of file ultra_prover.hpp.
| using bb::UltraProver_< Flavor_ >::ZKData = ZKSumcheckData<Flavor> |
Definition at line 30 of file ultra_prover.hpp.
|
explicit |
Definition at line 16 of file ultra_prover.cpp.
| UltraProver_< Flavor >::Proof bb::UltraProver_< Flavor >::construct_proof | ( | ) |
Definition at line 61 of file ultra_prover.cpp.
|
private |
Reduce the sumcheck multivariate evaluations to a single univariate opening claim via Shplemini, then produce an opening proof with the PCS (KZG or IPA).
Definition at line 123 of file ultra_prover.cpp.
|
private |
Run Sumcheck to establish that ∑_i pow(\vec{β*})f_i(ω) = 0, producing sumcheck round challenges u = (u_1,...,u_d) and claimed evaluations at u.
Definition at line 97 of file ultra_prover.cpp.
| UltraProver_< Flavor >::Proof bb::UltraProver_< Flavor >::export_proof | ( | ) |
Export the complete proof, including IPA proof for rollup circuits.
Two-level proof structure for rollup circuits:
Prover Level (this function): [public_inputs | honk_proof | ipa_proof]
API Level (bbapi):
Definition at line 39 of file ultra_prover.cpp.
|
private |
Definition at line 52 of file ultra_prover.cpp.
|
inline |
Definition at line 41 of file ultra_prover.hpp.
|
inline |
Definition at line 40 of file ultra_prover.hpp.
|
inline |
Definition at line 39 of file ultra_prover.hpp.
|
private |
Definition at line 49 of file ultra_prover.hpp.
|
private |
Definition at line 46 of file ultra_prover.hpp.
|
private |
Definition at line 44 of file ultra_prover.hpp.
|
private |
Definition at line 47 of file ultra_prover.hpp.
|
private |
Definition at line 45 of file ultra_prover.hpp.
|
private |
Definition at line 51 of file ultra_prover.hpp.
|
private |
Definition at line 48 of file ultra_prover.hpp.