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

#include <uscs_ppzksnark.hpp>

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

Public Member Functions

 uscs_ppzksnark_proving_key ()
 
uscs_ppzksnark_proving_key< ppT > & operator= (const uscs_ppzksnark_proving_key< ppT > &other)=default
 
 uscs_ppzksnark_proving_key (const uscs_ppzksnark_proving_key< ppT > &other)=default
 
 uscs_ppzksnark_proving_key (uscs_ppzksnark_proving_key< ppT > &&other)=default
 
 uscs_ppzksnark_proving_key (libff::G1_vector< ppT > &&V_g1_query, libff::G1_vector< ppT > &&alpha_V_g1_query, libff::G1_vector< ppT > &&H_g1_query, libff::G2_vector< ppT > &&V_g2_query, uscs_ppzksnark_constraint_system< ppT > &&constraint_system)
 
size_t G1_size () const
 
size_t G2_size () const
 
size_t G1_sparse_size () const
 
size_t G2_sparse_size () const
 
size_t size_in_bits () const
 
void print_size () const
 
bool operator== (const uscs_ppzksnark_proving_key< ppT > &other) const
 

Public Attributes

libff::G1_vector< ppT > V_g1_query
 
libff::G1_vector< ppT > alpha_V_g1_query
 
libff::G1_vector< ppT > H_g1_query
 
libff::G2_vector< ppT > V_g2_query
 
uscs_ppzksnark_constraint_system< ppT > constraint_system
 

Friends

std::ostream & operator (std::ostream &out, const uscs_ppzksnark_proving_key< ppT > &pk)
 
std::istream & operator>> (std::istream &in, uscs_ppzksnark_proving_key< ppT > &pk)
 

Detailed Description

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

A proving key for the USCS ppzkSNARK.

Definition at line 62 of file uscs_ppzksnark.hpp.

Constructor & Destructor Documentation

◆ uscs_ppzksnark_proving_key() [1/4]

template<typename ppT >
libsnark::uscs_ppzksnark_proving_key< ppT >::uscs_ppzksnark_proving_key ( )
inline

Definition at line 84 of file uscs_ppzksnark.hpp.

84 {};

◆ uscs_ppzksnark_proving_key() [2/4]

template<typename ppT >
libsnark::uscs_ppzksnark_proving_key< ppT >::uscs_ppzksnark_proving_key ( const uscs_ppzksnark_proving_key< ppT > &  other)
default

◆ uscs_ppzksnark_proving_key() [3/4]

template<typename ppT >
libsnark::uscs_ppzksnark_proving_key< ppT >::uscs_ppzksnark_proving_key ( uscs_ppzksnark_proving_key< ppT > &&  other)
default

◆ uscs_ppzksnark_proving_key() [4/4]

template<typename ppT >
libsnark::uscs_ppzksnark_proving_key< ppT >::uscs_ppzksnark_proving_key ( libff::G1_vector< ppT > &&  V_g1_query,
libff::G1_vector< ppT > &&  alpha_V_g1_query,
libff::G1_vector< ppT > &&  H_g1_query,
libff::G2_vector< ppT > &&  V_g2_query,
uscs_ppzksnark_constraint_system< ppT > &&  constraint_system 
)
inline

Definition at line 91 of file uscs_ppzksnark.hpp.

97  : V_g1_query(std::move(V_g1_query))
99  , H_g1_query(std::move(H_g1_query))
100  , V_g2_query(std::move(V_g2_query))
101  , constraint_system(std::move(constraint_system)){};

Member Function Documentation

◆ G1_size()

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

Definition at line 103 of file uscs_ppzksnark.hpp.

104  {
105  return V_g1_query.size() + alpha_V_g1_query.size() + H_g1_query.size();
106  }
Here is the caller graph for this function:

◆ G1_sparse_size()

template<typename ppT >
size_t libsnark::uscs_ppzksnark_proving_key< ppT >::G1_sparse_size ( ) const
inline

Definition at line 110 of file uscs_ppzksnark.hpp.

110 { return G1_size(); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ G2_size()

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

Definition at line 108 of file uscs_ppzksnark.hpp.

108 { return V_g2_query.size(); }
Here is the caller graph for this function:

◆ G2_sparse_size()

template<typename ppT >
size_t libsnark::uscs_ppzksnark_proving_key< ppT >::G2_sparse_size ( ) const
inline

Definition at line 112 of file uscs_ppzksnark.hpp.

112 { return G2_size(); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

template<typename ppT >
uscs_ppzksnark_proving_key<ppT>& libsnark::uscs_ppzksnark_proving_key< ppT >::operator= ( const uscs_ppzksnark_proving_key< ppT > &  other)
default

◆ operator==()

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

◆ print_size()

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

Definition at line 120 of file uscs_ppzksnark.hpp.

121  {
122  libff::print_indent();
123  printf("* G1 elements in PK: %zu\n", this->G1_size());
124  libff::print_indent();
125  printf("* Non-zero G1 elements in PK: %zu\n", this->G1_sparse_size());
126  libff::print_indent();
127  printf("* G2 elements in PK: %zu\n", this->G2_size());
128  libff::print_indent();
129  printf("* Non-zero G2 elements in PK: %zu\n", this->G2_sparse_size());
130  libff::print_indent();
131  printf("* PK size in bits: %zu\n", this->size_in_bits());
132  }
Here is the call graph for this function:

◆ size_in_bits()

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

Definition at line 114 of file uscs_ppzksnark.hpp.

115  {
116  return libff::G1<ppT>::size_in_bits() * G1_size() +
117  libff::G2<ppT>::size_in_bits() * G2_size();
118  }
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 uscs_ppzksnark_proving_key< ppT > &  pk 
)
friend

◆ operator>>

template<typename ppT >
std::istream& operator>> ( std::istream &  in,
uscs_ppzksnark_proving_key< ppT > &  pk 
)
friend

Member Data Documentation

◆ alpha_V_g1_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::uscs_ppzksnark_proving_key< ppT >::alpha_V_g1_query

Definition at line 78 of file uscs_ppzksnark.hpp.

◆ constraint_system

template<typename ppT >
uscs_ppzksnark_constraint_system<ppT> libsnark::uscs_ppzksnark_proving_key< ppT >::constraint_system

Definition at line 82 of file uscs_ppzksnark.hpp.

◆ H_g1_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::uscs_ppzksnark_proving_key< ppT >::H_g1_query

Definition at line 79 of file uscs_ppzksnark.hpp.

◆ V_g1_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::uscs_ppzksnark_proving_key< ppT >::V_g1_query

Definition at line 77 of file uscs_ppzksnark.hpp.

◆ V_g2_query

template<typename ppT >
libff::G2_vector<ppT> libsnark::uscs_ppzksnark_proving_key< ppT >::V_g2_query

Definition at line 80 of file uscs_ppzksnark.hpp.


The documentation for this class was generated from the following file:
libsnark::uscs_ppzksnark_proving_key::H_g1_query
libff::G1_vector< ppT > H_g1_query
Definition: uscs_ppzksnark.hpp:79
libsnark::uscs_ppzksnark_proving_key::G1_sparse_size
size_t G1_sparse_size() const
Definition: uscs_ppzksnark.hpp:110
libsnark::uscs_ppzksnark_proving_key::constraint_system
uscs_ppzksnark_constraint_system< ppT > constraint_system
Definition: uscs_ppzksnark.hpp:82
libsnark::uscs_ppzksnark_proving_key::V_g2_query
libff::G2_vector< ppT > V_g2_query
Definition: uscs_ppzksnark.hpp:80
libsnark::uscs_ppzksnark_proving_key::alpha_V_g1_query
libff::G1_vector< ppT > alpha_V_g1_query
Definition: uscs_ppzksnark.hpp:78
libsnark::uscs_ppzksnark_proving_key::G2_sparse_size
size_t G2_sparse_size() const
Definition: uscs_ppzksnark.hpp:112
libsnark::uscs_ppzksnark_proving_key::V_g1_query
libff::G1_vector< ppT > V_g1_query
Definition: uscs_ppzksnark.hpp:77
libsnark::uscs_ppzksnark_proving_key::G2_size
size_t G2_size() const
Definition: uscs_ppzksnark.hpp:108
libsnark::uscs_ppzksnark_proving_key::G1_size
size_t G1_size() const
Definition: uscs_ppzksnark.hpp:103
libsnark::uscs_ppzksnark_proving_key::size_in_bits
size_t size_in_bits() const
Definition: uscs_ppzksnark.hpp:114