Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::ClientIVC::Proof Struct Reference

A full proof for the IVC scheme containing a Mega proof showing correctness of the hiding circuit (which recursive verified the last folding and decider proof) and a Goblin proof (translator VM, ECCVM and last merge proof). More...

#include <client_ivc.hpp>

Classes

class  DeserializationError
 

Public Member Functions

size_t size () const
 
std::vector< FFto_field_elements () const
 Serialize proof to field elements.
 
msgpack::sbuffer to_msgpack_buffer () const
 
uint8_t * to_msgpack_heap_buffer () const
 Very quirky method to convert a msgpack buffer to a "heap" buffer.
 
void to_file_msgpack (const std::string &filename) const
 
 MSGPACK_FIELDS (mega_proof, goblin_proof)
 
bool operator== (const Proof &other) const =default
 

Static Public Member Functions

static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS (size_t virtual_log_n=MegaZKFlavor::VIRTUAL_LOG_N)
 The size of a ClientIVC proof without backend-added public inputs.
 
static constexpr size_t PROOF_LENGTH (size_t virtual_log_n=MegaZKFlavor::VIRTUAL_LOG_N)
 The size of a ClientIVC proof with backend-added public inputs: HidingKernelIO.
 
static Proof from_msgpack_buffer (uint8_t const *&buffer)
 
static Proof from_msgpack_buffer (const msgpack::sbuffer &buffer)
 
static Proof from_file_msgpack (const std::string &filename)
 

Public Attributes

HonkProof mega_proof
 
GoblinProof goblin_proof
 

Static Public Attributes

static constexpr const char * MSGPACK_SCHEMA_NAME = "ClientIVCProof"
 

Detailed Description

A full proof for the IVC scheme containing a Mega proof showing correctness of the hiding circuit (which recursive verified the last folding and decider proof) and a Goblin proof (translator VM, ECCVM and last merge proof).

This proof will be zero-knowledge.

Definition at line 96 of file client_ivc.hpp.

Member Function Documentation

◆ from_file_msgpack()

ClientIVC::Proof bb::ClientIVC::Proof::from_file_msgpack ( const std::string &  filename)
static

Definition at line 713 of file client_ivc.cpp.

◆ from_msgpack_buffer() [1/2]

ClientIVC::Proof bb::ClientIVC::Proof::from_msgpack_buffer ( const msgpack::sbuffer &  buffer)
static

Definition at line 693 of file client_ivc.cpp.

◆ from_msgpack_buffer() [2/2]

ClientIVC::Proof bb::ClientIVC::Proof::from_msgpack_buffer ( uint8_t const *&  buffer)
static

Definition at line 683 of file client_ivc.cpp.

◆ MSGPACK_FIELDS()

bb::ClientIVC::Proof::MSGPACK_FIELDS ( mega_proof  ,
goblin_proof   
)

◆ operator==()

bool bb::ClientIVC::Proof::operator== ( const Proof other) const
default

◆ PROOF_LENGTH()

static constexpr size_t bb::ClientIVC::Proof::PROOF_LENGTH ( size_t  virtual_log_n = MegaZKFlavor::VIRTUAL_LOG_N)
inlinestaticconstexpr

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

Parameters
virtual_log_n
Returns
constexpr size_t

Definition at line 121 of file client_ivc.hpp.

◆ PROOF_LENGTH_WITHOUT_PUB_INPUTS()

static constexpr size_t bb::ClientIVC::Proof::PROOF_LENGTH_WITHOUT_PUB_INPUTS ( size_t  virtual_log_n = MegaZKFlavor::VIRTUAL_LOG_N)
inlinestaticconstexpr

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

Parameters
virtual_log_n
Returns
constexpr size_t

Definition at line 106 of file client_ivc.hpp.

◆ size()

size_t bb::ClientIVC::Proof::size ( ) const

Definition at line 649 of file client_ivc.cpp.

◆ to_field_elements()

std::vector< ClientIVC::FF > bb::ClientIVC::Proof::to_field_elements ( ) const

Serialize proof to field elements.

Returns
std::vector<FF>

Definition at line 654 of file client_ivc.cpp.

◆ to_file_msgpack()

void bb::ClientIVC::Proof::to_file_msgpack ( const std::string &  filename) const

Definition at line 702 of file client_ivc.cpp.

◆ to_msgpack_buffer()

msgpack::sbuffer bb::ClientIVC::Proof::to_msgpack_buffer ( ) const

Definition at line 668 of file client_ivc.cpp.

◆ to_msgpack_heap_buffer()

uint8_t * bb::ClientIVC::Proof::to_msgpack_heap_buffer ( ) const

Very quirky method to convert a msgpack buffer to a "heap" buffer.

This method results in a buffer that is double-size-prefixed with the buffer size. This is to mimmic the original bb.js behavior which did a *out_proof = to_heap_buffer(to_buffer(proof));

Returns
uint8_t* Double size-prefixed msgpack buffer

Definition at line 675 of file client_ivc.cpp.

Member Data Documentation

◆ goblin_proof

GoblinProof bb::ClientIVC::Proof::goblin_proof

Definition at line 98 of file client_ivc.hpp.

◆ mega_proof

HonkProof bb::ClientIVC::Proof::mega_proof

Definition at line 97 of file client_ivc.hpp.

◆ MSGPACK_SCHEMA_NAME

constexpr const char* bb::ClientIVC::Proof::MSGPACK_SCHEMA_NAME = "ClientIVCProof"
staticconstexpr

Definition at line 148 of file client_ivc.hpp.


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