Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::ChonkProof_< IsRecursive > Struct Template Reference

Chonk proof type. More...

#include <chonk_proof.hpp>

Classes

class  DeserializationError
 

Public Types

using Builder = std::conditional_t< IsRecursive, UltraCircuitBuilder, void >
 
using HonkProof = std::conditional_t< IsRecursive, stdlib::Proof< Builder >, ::bb::HonkProof >
 
using FF = std::conditional_t< IsRecursive, stdlib::field_t< Builder >, bb::fr >
 

Public Member Functions

 ChonkProof_ ()=default
 
 ChonkProof_ (HonkProof mega_zk, HonkProof merge, HonkProof eccvm, HonkProof ipa, HonkProof joint)
 
template<typename B = Builder>
requires IsRecursive
 ChonkProof_ (B &builder, const ChonkProof_< false > &proof)
 
size_t size () const
 
std::vector< FFto_field_elements () const
 Serialize proof to field elements (native mode)
 
msgpack::sbuffer to_msgpack_buffer () const
 
uint8_t * to_msgpack_heap_buffer () const
 
void to_file_msgpack (const std::string &filename) const
 
 SERIALIZATION_FIELDS (hiding_oink_proof, merge_proof, eccvm_proof, ipa_proof, joint_proof)
 
bool operator== (const ChonkProof_ &other) const =default
 

Static Public Member Functions

static ChonkProof_ from_field_elements (const std::vector< FF > &fields)
 Reconstruct proof from field elements.
 
static ChonkProof_ from_msgpack_buffer (uint8_t const *&buffer)
 
static ChonkProof_ from_msgpack_buffer (const msgpack::sbuffer &buffer)
 
static ChonkProof_ from_file_msgpack (const std::string &filename)
 

Public Attributes

HonkProof hiding_oink_proof
 
HonkProof merge_proof
 
HonkProof eccvm_proof
 
HonkProof ipa_proof
 
HonkProof joint_proof
 

Static Public Attributes

static constexpr size_t HIDING_OINK_LENGTH = ProofLength::Oink<MegaZKFlavor>::LENGTH_WITHOUT_PUB_INPUTS
 
static constexpr size_t JOINT_PROOF_LENGTH
 
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
 
static constexpr size_t PROOF_LENGTH = PROOF_LENGTH_WITHOUT_PUB_INPUTS + bb::HidingKernelIO::PUBLIC_INPUTS_SIZE
 
static constexpr const char MSGPACK_SCHEMA_NAME [] = "ChonkProof"
 

Detailed Description

template<bool IsRecursive = false>
struct bb::ChonkProof_< IsRecursive >

Chonk proof type.

Contains five proof segments produced by the batched MegaZK + Translator protocol:

  1. hiding_oink_proof: Hiding kernel Oink (pre-sumcheck commitments for the hiding kernel)
  2. merge_proof: Merge proof for the hiding kernel's ECC op subtable
  3. eccvm_proof: ECCVM proof
  4. ipa_proof: IPA opening proof for ECCVM (separate transcript)
  5. joint_proof: Translator Oink + joint sumcheck + joint Shplemini/KZG PCS

The joint sumcheck and PCS batch the MegaZK and translator circuits together, eliminating separate sumcheck/PCS phases and reducing overall proof size.

Definition at line 36 of file chonk_proof.hpp.

Member Typedef Documentation

◆ Builder

template<bool IsRecursive = false>
using bb::ChonkProof_< IsRecursive >::Builder = std::conditional_t<IsRecursive, UltraCircuitBuilder, void>

Definition at line 37 of file chonk_proof.hpp.

◆ FF

template<bool IsRecursive = false>
using bb::ChonkProof_< IsRecursive >::FF = std::conditional_t<IsRecursive, stdlib::field_t<Builder>, bb::fr>

Definition at line 39 of file chonk_proof.hpp.

◆ HonkProof

template<bool IsRecursive = false>
using bb::ChonkProof_< IsRecursive >::HonkProof = std::conditional_t<IsRecursive, stdlib::Proof<Builder>, ::bb::HonkProof>

Definition at line 38 of file chonk_proof.hpp.

Constructor & Destructor Documentation

◆ ChonkProof_() [1/3]

template<bool IsRecursive = false>
bb::ChonkProof_< IsRecursive >::ChonkProof_ ( )
default

◆ ChonkProof_() [2/3]

template<bool IsRecursive = false>
bb::ChonkProof_< IsRecursive >::ChonkProof_ ( HonkProof  mega_zk,
HonkProof  merge,
HonkProof  eccvm,
HonkProof  ipa,
HonkProof  joint 
)
inline

Definition at line 62 of file chonk_proof.hpp.

◆ ChonkProof_() [3/3]

template<bool IsRecursive = false>
template<typename B = Builder>
requires IsRecursive
bb::ChonkProof_< IsRecursive >::ChonkProof_ ( B &  builder,
const ChonkProof_< false > &  proof 
)
inline

Definition at line 73 of file chonk_proof.hpp.

Member Function Documentation

◆ from_field_elements()

template<bool IsRecursive>
template ChonkProof_< true > bb::ChonkProof_< IsRecursive >::from_field_elements ( const std::vector< FF > &  fields)
static

Reconstruct proof from field elements.

Split a flat vector of field elements into ChonkProof components.

Uses known fixed sizes for merge/eccvm/ipa proofs, and derives the hiding_oink_proof and joint_proof sizes from the total.

Definition at line 36 of file chonk_proof.cpp.

◆ from_file_msgpack()

template<bool IsRecursive = false>
static ChonkProof_ bb::ChonkProof_< IsRecursive >::from_file_msgpack ( const std::string &  filename)
inlinestatic

Definition at line 150 of file chonk_proof.hpp.

◆ from_msgpack_buffer() [1/2]

template<bool IsRecursive = false>
static ChonkProof_ bb::ChonkProof_< IsRecursive >::from_msgpack_buffer ( const msgpack::sbuffer &  buffer)
inlinestatic

Definition at line 124 of file chonk_proof.hpp.

◆ from_msgpack_buffer() [2/2]

template<bool IsRecursive = false>
static ChonkProof_ bb::ChonkProof_< IsRecursive >::from_msgpack_buffer ( uint8_t const *&  buffer)
inlinestatic

Definition at line 115 of file chonk_proof.hpp.

◆ operator==()

template<bool IsRecursive = false>
bool bb::ChonkProof_< IsRecursive >::operator== ( const ChonkProof_< IsRecursive > &  other) const
default

◆ SERIALIZATION_FIELDS()

template<bool IsRecursive = false>
bb::ChonkProof_< IsRecursive >::SERIALIZATION_FIELDS ( hiding_oink_proof  ,
merge_proof  ,
eccvm_proof  ,
ipa_proof  ,
joint_proof   
)

◆ size()

template<bool IsRecursive = false>
size_t bb::ChonkProof_< IsRecursive >::size ( ) const
inline

Definition at line 81 of file chonk_proof.hpp.

◆ to_field_elements()

template<bool IsRecursive>
template std::vector< stdlib::field_t< UltraCircuitBuilder > > bb::ChonkProof_< IsRecursive >::to_field_elements ( ) const

Serialize proof to field elements (native mode)

Serialize Chonk Proof to a flat vector of field elements.

Definition at line 18 of file chonk_proof.cpp.

◆ to_file_msgpack()

template<bool IsRecursive = false>
void bb::ChonkProof_< IsRecursive >::to_file_msgpack ( const std::string &  filename) const
inline

Definition at line 138 of file chonk_proof.hpp.

◆ to_msgpack_buffer()

template<bool IsRecursive = false>
msgpack::sbuffer bb::ChonkProof_< IsRecursive >::to_msgpack_buffer ( ) const
inline

Definition at line 99 of file chonk_proof.hpp.

◆ to_msgpack_heap_buffer()

template<bool IsRecursive = false>
uint8_t * bb::ChonkProof_< IsRecursive >::to_msgpack_heap_buffer ( ) const
inline

Definition at line 107 of file chonk_proof.hpp.

Member Data Documentation

◆ eccvm_proof

template<bool IsRecursive = false>
HonkProof bb::ChonkProof_< IsRecursive >::eccvm_proof

Definition at line 43 of file chonk_proof.hpp.

◆ HIDING_OINK_LENGTH

template<bool IsRecursive = false>
constexpr size_t bb::ChonkProof_< IsRecursive >::HIDING_OINK_LENGTH = ProofLength::Oink<MegaZKFlavor>::LENGTH_WITHOUT_PUB_INPUTS
staticconstexpr

Definition at line 48 of file chonk_proof.hpp.

◆ hiding_oink_proof

template<bool IsRecursive = false>
HonkProof bb::ChonkProof_< IsRecursive >::hiding_oink_proof

Definition at line 41 of file chonk_proof.hpp.

◆ ipa_proof

template<bool IsRecursive = false>
HonkProof bb::ChonkProof_< IsRecursive >::ipa_proof

Definition at line 44 of file chonk_proof.hpp.

◆ joint_proof

template<bool IsRecursive = false>
HonkProof bb::ChonkProof_< IsRecursive >::joint_proof

Definition at line 45 of file chonk_proof.hpp.

◆ JOINT_PROOF_LENGTH

template<bool IsRecursive = false>
constexpr size_t bb::ChonkProof_< IsRecursive >::JOINT_PROOF_LENGTH
staticconstexpr
Initial value:

Definition at line 51 of file chonk_proof.hpp.

◆ merge_proof

template<bool IsRecursive = false>
HonkProof bb::ChonkProof_< IsRecursive >::merge_proof

Definition at line 42 of file chonk_proof.hpp.

◆ MSGPACK_SCHEMA_NAME

template<bool IsRecursive = false>
constexpr const char bb::ChonkProof_< IsRecursive >::MSGPACK_SCHEMA_NAME[] = "ChonkProof"
staticconstexpr

Definition at line 169 of file chonk_proof.hpp.

◆ PROOF_LENGTH

template<bool IsRecursive = false>
constexpr size_t bb::ChonkProof_< IsRecursive >::PROOF_LENGTH = PROOF_LENGTH_WITHOUT_PUB_INPUTS + bb::HidingKernelIO::PUBLIC_INPUTS_SIZE
staticconstexpr

Definition at line 56 of file chonk_proof.hpp.

◆ PROOF_LENGTH_WITHOUT_PUB_INPUTS

template<bool IsRecursive = false>
constexpr size_t bb::ChonkProof_< IsRecursive >::PROOF_LENGTH_WITHOUT_PUB_INPUTS
staticconstexpr
Initial value:
=
HIDING_OINK_LENGTH + MERGE_PROOF_SIZE + ECCVMFlavor::PROOF_LENGTH + IPA_PROOF_LENGTH + JOINT_PROOF_LENGTH
static constexpr size_t PROOF_LENGTH
static constexpr size_t JOINT_PROOF_LENGTH
static constexpr size_t HIDING_OINK_LENGTH

Definition at line 54 of file chonk_proof.hpp.


The documentation for this struct was generated from the following files: