Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata > Class Template Reference

Base Stdlib verification key class. More...

#include <flavor.hpp>

Inheritance diagram for bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >:

Public Types

using Builder = Builder_
 
using FF = stdlib::field_t< Builder >
 
using Commitment = typename PrecomputedCommitments::DataType
 
using Transcript = StdlibTranscript< Builder >
 

Public Member Functions

bool operator== (const StdlibVerificationKey_ &) const =default
 
virtual ~StdlibVerificationKey_ ()=default
 
 StdlibVerificationKey_ ()=default
 
 StdlibVerificationKey_ (const size_t circuit_size, const size_t num_public_inputs)
 
virtual std::vector< FFto_field_elements () const
 Serialize verification key to field elements.
 
FF hash ()
 A model function to show how to compute the VK hash (without the Transcript abstracting things away).
 
virtual FF hash_through_transcript (const std::string &domain_separator, Transcript &transcript) const
 Hashes the vk using the transcript's independent buffer and returns the hash.
 

Public Attributes

FF log_circuit_size
 
FF num_public_inputs
 
FF pub_inputs_offset = 0
 

Detailed Description

template<typename Builder_, typename PrecomputedCommitments, VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
class bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >

Base Stdlib verification key class.

Template Parameters
Builder
FF
PrecomputedCommitments
SerializeMetadataControls how metadata is serialized (FULL, NO_METADATA)

Definition at line 303 of file flavor.hpp.

Member Typedef Documentation

◆ Builder

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
using bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::Builder = Builder_

Definition at line 305 of file flavor.hpp.

◆ Commitment

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
using bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::Commitment = typename PrecomputedCommitments::DataType

Definition at line 307 of file flavor.hpp.

◆ FF

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
using bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::FF = stdlib::field_t<Builder>

Definition at line 306 of file flavor.hpp.

◆ Transcript

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
using bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::Transcript = StdlibTranscript<Builder>

Definition at line 308 of file flavor.hpp.

Constructor & Destructor Documentation

◆ ~StdlibVerificationKey_()

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
virtual bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::~StdlibVerificationKey_ ( )
virtualdefault

◆ StdlibVerificationKey_() [1/2]

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::StdlibVerificationKey_ ( )
default

◆ StdlibVerificationKey_() [2/2]

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::StdlibVerificationKey_ ( const size_t  circuit_size,
const size_t  num_public_inputs 
)
inline

Definition at line 316 of file flavor.hpp.

Member Function Documentation

◆ hash()

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
FF bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::hash ( )
inline

A model function to show how to compute the VK hash (without the Transcript abstracting things away).

Currently only used in testing.

Parameters
builder
Returns
FF

Definition at line 355 of file flavor.hpp.

◆ hash_through_transcript()

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
virtual FF bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::hash_through_transcript ( const std::string &  domain_separator,
Transcript transcript 
) const
inlinevirtual

Hashes the vk using the transcript's independent buffer and returns the hash.

Needed to make sure the Origin Tag system works. We need to set the origin tags of the VK witnesses in the transcript. If we instead did the hashing outside of the transcript and submitted just the hash, only the origin tag of the hash would be set properly. We want to avoid backpropagating origin tags to the actual VK witnesses because it would be manual, as backpropagation of tags is not generally correct. By doing it like this, the origin tags of the VK all get set, so our tooling won't complain when we use the VK later on in the protocol.

Parameters
domain_separator
transcript
Returns
The hash of the verification key

Reimplemented in bb::ECCVMRecursiveFlavor::VerificationKey, bb::TranslatorRecursiveFlavor::VerificationKey, and bb::avm2::AvmRecursiveFlavor::VerificationKey.

Definition at line 373 of file flavor.hpp.

◆ operator==()

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
bool bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::operator== ( const StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata > &  ) const
default

◆ to_field_elements()

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
virtual std::vector< FF > bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::to_field_elements ( ) const
inlinevirtual

Serialize verification key to field elements.

Returns
std::vector<FF>

Reimplemented in bb::avm2::AvmRecursiveFlavor::VerificationKey.

Definition at line 327 of file flavor.hpp.

Member Data Documentation

◆ log_circuit_size

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
FF bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::log_circuit_size

Definition at line 309 of file flavor.hpp.

◆ num_public_inputs

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
FF bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::num_public_inputs

Definition at line 310 of file flavor.hpp.

◆ pub_inputs_offset

template<typename Builder_ , typename PrecomputedCommitments , VKSerializationMode SerializeMetadata = VKSerializationMode::FULL>
FF bb::StdlibVerificationKey_< Builder_, PrecomputedCommitments, SerializeMetadata >::pub_inputs_offset = 0

Definition at line 311 of file flavor.hpp.


The documentation for this class was generated from the following file: