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 GoblinProof = std::conditional_t< IsRecursive, GoblinStdlibProof, ::bb::GoblinProof >
 
using FF = std::conditional_t< IsRecursive, stdlib::field_t< Builder >, bb::fr >
 

Public Member Functions

 ChonkProof_ ()=default
 
 ChonkProof_ (const HonkProof &mega, const GoblinProof &goblin)
 
 ChonkProof_ (HonkProof &&mega, GoblinProof &&goblin)
 
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
 
 MSGPACK_FIELDS (mega_proof, goblin_proof)
 
bool operator== (const ChonkProof_ &other) const =default
 

Static Public Member Functions

static ChonkProof_ from_field_elements (const std::vector< FF > &fields)
 Common logic to 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 mega_proof
 
GoblinProof goblin_proof
 

Static Public Attributes

static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
 The size of a Chonk proof without backend-added public inputs.
 
static constexpr size_t PROOF_LENGTH
 The size of a Chonk proof with backend-added public inputs: HidingKernelIO.
 
static constexpr size_t HIDING_KERNEL_PROOF_LENGTH_WITHOUT_PUBLIC_INPUTS
 
static constexpr const char MSGPACK_SCHEMA_NAME [] = "ChonkProof"
 

Detailed Description

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

Chonk proof type.

When IsRecursive=false (native): Contains native proof types with msgpack serialization. When IsRecursive=true (recursive): Contains stdlib proof types for in-circuit verification.

Definition at line 25 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 26 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 29 of file chonk_proof.hpp.

◆ GoblinProof

template<bool IsRecursive = false>
using bb::ChonkProof_< IsRecursive >::GoblinProof = std::conditional_t<IsRecursive, GoblinStdlibProof, ::bb::GoblinProof>

Definition at line 28 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 27 of file chonk_proof.hpp.

Constructor & Destructor Documentation

◆ ChonkProof_() [1/4]

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

◆ ChonkProof_() [2/4]

template<bool IsRecursive = false>
bb::ChonkProof_< IsRecursive >::ChonkProof_ ( const HonkProof mega,
const GoblinProof goblin 
)
inline

Definition at line 57 of file chonk_proof.hpp.

◆ ChonkProof_() [3/4]

template<bool IsRecursive = false>
bb::ChonkProof_< IsRecursive >::ChonkProof_ ( HonkProof &&  mega,
GoblinProof &&  goblin 
)
inline

Definition at line 63 of file chonk_proof.hpp.

◆ ChonkProof_() [4/4]

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

Definition at line 71 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

Common logic to reconstruct proof from field elements.

Split a vector of field elements into ChonkProof components.

Template Parameters
FieldTypeEither bb::fr (native) or stdlib::field_t<Builder> (recursive)

Definition at line 32 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 140 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 118 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 109 of file chonk_proof.hpp.

◆ MSGPACK_FIELDS()

template<bool IsRecursive = false>
bb::ChonkProof_< IsRecursive >::MSGPACK_FIELDS ( mega_proof  ,
goblin_proof   
)

◆ operator==()

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

◆ size()

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

Definition at line 78 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.

Definition at line 16 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 128 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 93 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 101 of file chonk_proof.hpp.

Member Data Documentation

◆ goblin_proof

template<bool IsRecursive = false>
GoblinProof bb::ChonkProof_< IsRecursive >::goblin_proof

Definition at line 32 of file chonk_proof.hpp.

◆ HIDING_KERNEL_PROOF_LENGTH_WITHOUT_PUBLIC_INPUTS

template<bool IsRecursive = false>
constexpr size_t bb::ChonkProof_< IsRecursive >::HIDING_KERNEL_PROOF_LENGTH_WITHOUT_PUBLIC_INPUTS
staticconstexpr
Initial value:
=
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS(size_t virtual_log_n=VIRTUAL_LOG_N)

Definition at line 50 of file chonk_proof.hpp.

◆ mega_proof

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

Definition at line 31 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 159 of file chonk_proof.hpp.

◆ PROOF_LENGTH

template<bool IsRecursive = false>
constexpr size_t bb::ChonkProof_< IsRecursive >::PROOF_LENGTH
staticconstexpr
Initial value:
static constexpr size_t PUBLIC_INPUTS_SIZE
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS
The size of a Chonk proof without backend-added public inputs.

The size of a Chonk proof with backend-added public inputs: HidingKernelIO.

Definition at line 47 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:

The size of a Chonk proof without backend-added public inputs.

Definition at line 37 of file chonk_proof.hpp.


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