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_ppzkadsnark_verification_key< ppT > Class Template Reference

#include <r1cs_ppzkadsnark.hpp>

Public Member Functions

 r1cs_ppzkadsnark_verification_key ()=default
 
 r1cs_ppzkadsnark_verification_key (const libff::G2< snark_pp< ppT >> &alphaA_g2, const libff::G1< snark_pp< ppT >> &alphaB_g1, const libff::G2< snark_pp< ppT >> &alphaC_g2, const libff::G2< snark_pp< ppT >> &gamma_g2, const libff::G1< snark_pp< ppT >> &gamma_beta_g1, const libff::G2< snark_pp< ppT >> &gamma_beta_g2, const libff::G2< snark_pp< ppT >> &rC_Z_g2, const libff::G1< snark_pp< ppT >> A0, const libff::G1_vector< snark_pp< ppT >> Ain)
 
size_t G1_size () const
 
size_t G2_size () const
 
size_t size_in_bits () const
 
void print_size () const
 
bool operator== (const r1cs_ppzkadsnark_verification_key< ppT > &other) const
 

Static Public Member Functions

static r1cs_ppzkadsnark_verification_key< ppT > dummy_verification_key (const size_t input_size)
 

Public Attributes

libff::G2< snark_pp< ppT > > alphaA_g2
 
libff::G1< snark_pp< ppT > > alphaB_g1
 
libff::G2< snark_pp< ppT > > alphaC_g2
 
libff::G2< snark_pp< ppT > > gamma_g2
 
libff::G1< snark_pp< ppT > > gamma_beta_g1
 
libff::G2< snark_pp< ppT > > gamma_beta_g2
 
libff::G2< snark_pp< ppT > > rC_Z_g2
 
libff::G1< snark_pp< ppT > > A0
 
libff::G1_vector< snark_pp< ppT > > Ain
 

Friends

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

Detailed Description

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

A verification key for the R1CS ppzkADSNARK.

Definition at line 360 of file r1cs_ppzkadsnark.hpp.

Constructor & Destructor Documentation

◆ r1cs_ppzkadsnark_verification_key() [1/2]

◆ r1cs_ppzkadsnark_verification_key() [2/2]

template<typename ppT >
libsnark::r1cs_ppzkadsnark_verification_key< ppT >::r1cs_ppzkadsnark_verification_key ( const libff::G2< snark_pp< ppT >> &  alphaA_g2,
const libff::G1< snark_pp< ppT >> &  alphaB_g1,
const libff::G2< snark_pp< ppT >> &  alphaC_g2,
const libff::G2< snark_pp< ppT >> &  gamma_g2,
const libff::G1< snark_pp< ppT >> &  gamma_beta_g1,
const libff::G2< snark_pp< ppT >> &  gamma_beta_g2,
const libff::G2< snark_pp< ppT >> &  rC_Z_g2,
const libff::G1< snark_pp< ppT >>  A0,
const libff::G1_vector< snark_pp< ppT >>  Ain 
)
inline

Definition at line 388 of file r1cs_ppzkadsnark.hpp.

401  , gamma_g2(gamma_g2)
404  , rC_Z_g2(rC_Z_g2)
405  , A0(A0)
406  , Ain(Ain){};

Member Function Documentation

◆ dummy_verification_key()

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

◆ G1_size()

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

Definition at line 408 of file r1cs_ppzkadsnark.hpp.

408 { return 3 + Ain.size(); }
Here is the caller graph for this function:

◆ G2_size()

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

Definition at line 410 of file r1cs_ppzkadsnark.hpp.

410 { return 5; }
Here is the caller graph for this function:

◆ operator==()

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

◆ print_size()

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

Definition at line 420 of file r1cs_ppzkadsnark.hpp.

421  {
422  libff::print_indent();
423  printf("* G1 elements in VK: %zu\n", this->G1_size());
424  libff::print_indent();
425  printf("* G2 elements in VK: %zu\n", this->G2_size());
426  libff::print_indent();
427  printf("* VK size in bits: %zu\n", this->size_in_bits());
428  }
Here is the call graph for this function:

◆ size_in_bits()

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

Definition at line 412 of file r1cs_ppzkadsnark.hpp.

413  {
414  return G1_size() * libff::G1<snark_pp<ppT>>::size_in_bits() +
415  G2_size() *
416  libff::G2<snark_pp<ppT>>::size_in_bits(); // possible zksnark
417  // bug
418  }
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_ppzkadsnark_verification_key< ppT > &  vk 
)
friend

◆ operator>>

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

Member Data Documentation

◆ A0

template<typename ppT >
libff::G1<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::A0

Definition at line 384 of file r1cs_ppzkadsnark.hpp.

◆ Ain

template<typename ppT >
libff::G1_vector<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::Ain

Definition at line 385 of file r1cs_ppzkadsnark.hpp.

◆ alphaA_g2

template<typename ppT >
libff::G2<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::alphaA_g2

Definition at line 376 of file r1cs_ppzkadsnark.hpp.

◆ alphaB_g1

template<typename ppT >
libff::G1<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::alphaB_g1

Definition at line 377 of file r1cs_ppzkadsnark.hpp.

◆ alphaC_g2

template<typename ppT >
libff::G2<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::alphaC_g2

Definition at line 378 of file r1cs_ppzkadsnark.hpp.

◆ gamma_beta_g1

template<typename ppT >
libff::G1<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::gamma_beta_g1

Definition at line 380 of file r1cs_ppzkadsnark.hpp.

◆ gamma_beta_g2

template<typename ppT >
libff::G2<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::gamma_beta_g2

Definition at line 381 of file r1cs_ppzkadsnark.hpp.

◆ gamma_g2

template<typename ppT >
libff::G2<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::gamma_g2

Definition at line 379 of file r1cs_ppzkadsnark.hpp.

◆ rC_Z_g2

template<typename ppT >
libff::G2<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_verification_key< ppT >::rC_Z_g2

Definition at line 382 of file r1cs_ppzkadsnark.hpp.


The documentation for this class was generated from the following file:
libsnark::r1cs_ppzkadsnark_verification_key::gamma_beta_g2
libff::G2< snark_pp< ppT > > gamma_beta_g2
Definition: r1cs_ppzkadsnark.hpp:381
libsnark::r1cs_ppzkadsnark_verification_key::Ain
libff::G1_vector< snark_pp< ppT > > Ain
Definition: r1cs_ppzkadsnark.hpp:385
libsnark::r1cs_ppzkadsnark_verification_key::alphaC_g2
libff::G2< snark_pp< ppT > > alphaC_g2
Definition: r1cs_ppzkadsnark.hpp:378
libsnark::r1cs_ppzkadsnark_verification_key::gamma_g2
libff::G2< snark_pp< ppT > > gamma_g2
Definition: r1cs_ppzkadsnark.hpp:379
libsnark::r1cs_ppzkadsnark_verification_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_ppzkadsnark.hpp:412
libsnark::r1cs_ppzkadsnark_verification_key::alphaA_g2
libff::G2< snark_pp< ppT > > alphaA_g2
Definition: r1cs_ppzkadsnark.hpp:376
libsnark::r1cs_ppzkadsnark_verification_key::A0
libff::G1< snark_pp< ppT > > A0
Definition: r1cs_ppzkadsnark.hpp:384
libsnark::r1cs_ppzkadsnark_verification_key::G2_size
size_t G2_size() const
Definition: r1cs_ppzkadsnark.hpp:410
libsnark::r1cs_ppzkadsnark_verification_key::alphaB_g1
libff::G1< snark_pp< ppT > > alphaB_g1
Definition: r1cs_ppzkadsnark.hpp:377
libsnark::r1cs_ppzkadsnark_verification_key::gamma_beta_g1
libff::G1< snark_pp< ppT > > gamma_beta_g1
Definition: r1cs_ppzkadsnark.hpp:380
libsnark::r1cs_ppzkadsnark_verification_key::rC_Z_g2
libff::G2< snark_pp< ppT > > rC_Z_g2
Definition: r1cs_ppzkadsnark.hpp:382
libsnark::r1cs_ppzkadsnark_verification_key::G1_size
size_t G1_size() const
Definition: r1cs_ppzkadsnark.hpp:408