Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
libsnark::r1cs_gg_ppzksnark_verification_key< ppT > Class Template Reference

#include <r1cs_gg_ppzksnark.hpp>

Collaboration diagram for libsnark::r1cs_gg_ppzksnark_verification_key< ppT >:
Collaboration graph
[legend]

Public Member Functions

 r1cs_gg_ppzksnark_verification_key ()=default
 
 r1cs_gg_ppzksnark_verification_key (const libff::G1< ppT > &alpha_g1, const libff::G2< ppT > &beta_g2, const libff::G2< ppT > &delta_g2, const accumulation_vector< libff::G1< ppT >> &ABC_g1)
 
size_t G1_size () const
 
size_t G2_size () const
 
size_t size_in_bits () const
 
void print_size () const
 
bool operator== (const r1cs_gg_ppzksnark_verification_key< ppT > &other) const
 

Static Public Member Functions

static r1cs_gg_ppzksnark_verification_key< ppT > dummy_verification_key (const size_t input_size)
 

Public Attributes

libff::G1< ppT > alpha_g1
 
libff::G2< ppT > beta_g2
 
libff::G2< ppT > delta_g2
 
accumulation_vector< libff::G1< ppT > > ABC_g1
 

Friends

std::ostream & operator (std::ostream &out, const r1cs_gg_ppzksnark_verification_key< ppT > &vk)
 
std::istream & operator>> (std::istream &in, r1cs_gg_ppzksnark_verification_key< ppT > &vk)
 

Detailed Description

template<typename ppT>
class libsnark::r1cs_gg_ppzksnark_verification_key< ppT >

A verification key for the R1CS GG-ppzkSNARK.

Definition at line 174 of file r1cs_gg_ppzksnark.hpp.

Constructor & Destructor Documentation

◆ r1cs_gg_ppzksnark_verification_key() [1/2]

◆ r1cs_gg_ppzksnark_verification_key() [2/2]

template<typename ppT >
libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::r1cs_gg_ppzksnark_verification_key ( const libff::G1< ppT > &  alpha_g1,
const libff::G2< ppT > &  beta_g2,
const libff::G2< ppT > &  delta_g2,
const accumulation_vector< libff::G1< ppT >> &  ABC_g1 
)
inline

Definition at line 197 of file r1cs_gg_ppzksnark.hpp.

202  : alpha_g1(alpha_g1)
203  , beta_g2(beta_g2)
204  , delta_g2(delta_g2)
205  , ABC_g1(ABC_g1){};

Member Function Documentation

◆ dummy_verification_key()

template<typename ppT >
static r1cs_gg_ppzksnark_verification_key<ppT> libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::dummy_verification_key ( const size_t  input_size)
static

◆ G1_size()

template<typename ppT >
size_t libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::G1_size ( ) const
inline

Definition at line 207 of file r1cs_gg_ppzksnark.hpp.

207 { return ABC_g1.size() + 1; }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ G2_size()

template<typename ppT >
size_t libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::G2_size ( ) const
inline

Definition at line 209 of file r1cs_gg_ppzksnark.hpp.

209 { return 2; }
Here is the caller graph for this function:

◆ operator==()

template<typename ppT >
bool libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::operator== ( const r1cs_gg_ppzksnark_verification_key< ppT > &  other) const

◆ print_size()

template<typename ppT >
void libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::print_size ( ) const
inline

Definition at line 219 of file r1cs_gg_ppzksnark.hpp.

220  {
221  libff::print_indent();
222  printf("* G1 elements in VK: %zu\n", this->G1_size());
223  libff::print_indent();
224  printf("* G2 elements in VK: %zu\n", this->G2_size());
225  libff::print_indent();
226  printf("* VK size in bits: %zu\n", this->size_in_bits());
227  }
Here is the call graph for this function:

◆ size_in_bits()

template<typename ppT >
size_t libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::size_in_bits ( ) const
inline

Definition at line 211 of file r1cs_gg_ppzksnark.hpp.

212  {
213 
214  return (
215  ABC_g1.size_in_bits() + 2 * libff::G2<ppT>::size_in_bits() +
216  libff::G1<ppT>::size_in_bits());
217  }
Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator

template<typename ppT >
std::ostream& operator ( std::ostream &  out,
const r1cs_gg_ppzksnark_verification_key< ppT > &  vk 
)
friend

◆ operator>>

template<typename ppT >
std::istream& operator>> ( std::istream &  in,
r1cs_gg_ppzksnark_verification_key< ppT > &  vk 
)
friend

Member Data Documentation

◆ ABC_g1

template<typename ppT >
accumulation_vector<libff::G1<ppT> > libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::ABC_g1

Definition at line 194 of file r1cs_gg_ppzksnark.hpp.

◆ alpha_g1

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::alpha_g1

Definition at line 190 of file r1cs_gg_ppzksnark.hpp.

◆ beta_g2

template<typename ppT >
libff::G2<ppT> libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::beta_g2

Definition at line 191 of file r1cs_gg_ppzksnark.hpp.

◆ delta_g2

template<typename ppT >
libff::G2<ppT> libsnark::r1cs_gg_ppzksnark_verification_key< ppT >::delta_g2

Definition at line 192 of file r1cs_gg_ppzksnark.hpp.


The documentation for this class was generated from the following file:
libsnark::r1cs_gg_ppzksnark_verification_key::delta_g2
libff::G2< ppT > delta_g2
Definition: r1cs_gg_ppzksnark.hpp:192
libsnark::r1cs_gg_ppzksnark_verification_key::beta_g2
libff::G2< ppT > beta_g2
Definition: r1cs_gg_ppzksnark.hpp:191
libsnark::accumulation_vector::size_in_bits
size_t size_in_bits() const
libsnark::r1cs_gg_ppzksnark_verification_key::ABC_g1
accumulation_vector< libff::G1< ppT > > ABC_g1
Definition: r1cs_gg_ppzksnark.hpp:194
libsnark::accumulation_vector::size
size_t size() const
libsnark::r1cs_gg_ppzksnark_verification_key::alpha_g1
libff::G1< ppT > alpha_g1
Definition: r1cs_gg_ppzksnark.hpp:190
libsnark::r1cs_gg_ppzksnark_verification_key::G2_size
size_t G2_size() const
Definition: r1cs_gg_ppzksnark.hpp:209
libsnark::r1cs_gg_ppzksnark_verification_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_gg_ppzksnark.hpp:211
libsnark::r1cs_gg_ppzksnark_verification_key::G1_size
size_t G1_size() const
Definition: r1cs_gg_ppzksnark.hpp:207