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

#include <r1cs_gg_ppzksnark.hpp>

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

Public Member Functions

 r1cs_gg_ppzksnark_proving_key ()
 
r1cs_gg_ppzksnark_proving_key< ppT > & operator= (const r1cs_gg_ppzksnark_proving_key< ppT > &other)=default
 
 r1cs_gg_ppzksnark_proving_key (const r1cs_gg_ppzksnark_proving_key< ppT > &other)=default
 
 r1cs_gg_ppzksnark_proving_key (r1cs_gg_ppzksnark_proving_key< ppT > &&other)=default
 
 r1cs_gg_ppzksnark_proving_key (libff::G1< ppT > &&alpha_g1, libff::G1< ppT > &&beta_g1, libff::G2< ppT > &&beta_g2, libff::G1< ppT > &&delta_g1, libff::G2< ppT > &&delta_g2, libff::G1_vector< ppT > &&A_query, knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT >> &&B_query, libff::G1_vector< ppT > &&H_query, libff::G1_vector< ppT > &&L_query, r1cs_gg_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 r1cs_gg_ppzksnark_proving_key< ppT > &other) const
 

Public Attributes

libff::G1< ppT > alpha_g1
 
libff::G1< ppT > beta_g1
 
libff::G2< ppT > beta_g2
 
libff::G1< ppT > delta_g1
 
libff::G2< ppT > delta_g2
 
libff::G1_vector< ppT > A_query
 
knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT > > B_query
 
libff::G1_vector< ppT > H_query
 
libff::G1_vector< ppT > L_query
 
r1cs_gg_ppzksnark_constraint_system< ppT > constraint_system
 

Friends

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

Detailed Description

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

A proving key for the R1CS GG-ppzkSNARK.

Definition at line 61 of file r1cs_gg_ppzksnark.hpp.

Constructor & Destructor Documentation

◆ r1cs_gg_ppzksnark_proving_key() [1/4]

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

Definition at line 91 of file r1cs_gg_ppzksnark.hpp.

91 {};

◆ r1cs_gg_ppzksnark_proving_key() [2/4]

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

◆ r1cs_gg_ppzksnark_proving_key() [3/4]

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

◆ r1cs_gg_ppzksnark_proving_key() [4/4]

template<typename ppT >
libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::r1cs_gg_ppzksnark_proving_key ( libff::G1< ppT > &&  alpha_g1,
libff::G1< ppT > &&  beta_g1,
libff::G2< ppT > &&  beta_g2,
libff::G1< ppT > &&  delta_g1,
libff::G2< ppT > &&  delta_g2,
libff::G1_vector< ppT > &&  A_query,
knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT >> &&  B_query,
libff::G1_vector< ppT > &&  H_query,
libff::G1_vector< ppT > &&  L_query,
r1cs_gg_ppzksnark_constraint_system< ppT > &&  constraint_system 
)
inline

Definition at line 98 of file r1cs_gg_ppzksnark.hpp.

109  : alpha_g1(std::move(alpha_g1))
110  , beta_g1(std::move(beta_g1))
111  , beta_g2(std::move(beta_g2))
112  , delta_g1(std::move(delta_g1))
113  , delta_g2(std::move(delta_g2))
114  , A_query(std::move(A_query))
115  , B_query(std::move(B_query))
116  , H_query(std::move(H_query))
117  , L_query(std::move(L_query))
118  , constraint_system(std::move(constraint_system)){};

Member Function Documentation

◆ G1_size()

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

Definition at line 120 of file r1cs_gg_ppzksnark.hpp.

121  {
122  // 1 (alpha_g1) + 1 (beta_g1) + 1 (delta_g1) + A_query + B_query +
123  // H_query + L_query
124  return 1 + 1 + 1 + A_query.size() + B_query.domain_size() +
125  H_query.size() + L_query.size();
126  }
Here is the caller graph for this function:

◆ G1_sparse_size()

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

Definition at line 134 of file r1cs_gg_ppzksnark.hpp.

135  {
136  return 1 + A_query.size() + B_query.size() + H_query.size() +
137  L_query.size();
138  }
Here is the caller graph for this function:

◆ G2_size()

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

Definition at line 128 of file r1cs_gg_ppzksnark.hpp.

129  {
130  // 1 (beta_g2) + 1 (delta_g2) + B_query
131  return 1 + 1 + B_query.domain_size();
132  }
Here is the caller graph for this function:

◆ G2_sparse_size()

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

Definition at line 140 of file r1cs_gg_ppzksnark.hpp.

140 { return 1 + B_query.size(); }
Here is the caller graph for this function:

◆ operator=()

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

◆ operator==()

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

◆ print_size()

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

Definition at line 151 of file r1cs_gg_ppzksnark.hpp.

152  {
153  libff::print_indent();
154  printf("* G1 elements in PK: %zu\n", this->G1_size());
155  libff::print_indent();
156  printf("* Non-zero G1 elements in PK: %zu\n", this->G1_sparse_size());
157  libff::print_indent();
158  printf("* G2 elements in PK: %zu\n", this->G2_size());
159  libff::print_indent();
160  printf("* Non-zero G2 elements in PK: %zu\n", this->G2_sparse_size());
161  libff::print_indent();
162  printf("* PK size in bits: %zu\n", this->size_in_bits());
163  }
Here is the call graph for this function:

◆ size_in_bits()

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

Definition at line 142 of file r1cs_gg_ppzksnark.hpp.

143  {
144  return (
145  libff::size_in_bits(A_query) + B_query.size_in_bits() +
146  libff::size_in_bits(H_query) + libff::size_in_bits(L_query) +
147  1 * libff::G1<ppT>::size_in_bits() +
148  1 * libff::G2<ppT>::size_in_bits());
149  }
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_proving_key< ppT > &  pk 
)
friend

◆ operator>>

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

Member Data Documentation

◆ A_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::A_query

Definition at line 84 of file r1cs_gg_ppzksnark.hpp.

◆ alpha_g1

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

Definition at line 77 of file r1cs_gg_ppzksnark.hpp.

◆ B_query

template<typename ppT >
knowledge_commitment_vector<libff::G2<ppT>, libff::G1<ppT> > libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::B_query

Definition at line 85 of file r1cs_gg_ppzksnark.hpp.

◆ beta_g1

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::beta_g1

Definition at line 78 of file r1cs_gg_ppzksnark.hpp.

◆ beta_g2

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

Definition at line 79 of file r1cs_gg_ppzksnark.hpp.

◆ constraint_system

template<typename ppT >
r1cs_gg_ppzksnark_constraint_system<ppT> libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::constraint_system

Definition at line 89 of file r1cs_gg_ppzksnark.hpp.

◆ delta_g1

template<typename ppT >
libff::G1<ppT> libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::delta_g1

Definition at line 80 of file r1cs_gg_ppzksnark.hpp.

◆ delta_g2

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

Definition at line 81 of file r1cs_gg_ppzksnark.hpp.

◆ H_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::H_query

Definition at line 86 of file r1cs_gg_ppzksnark.hpp.

◆ L_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_gg_ppzksnark_proving_key< ppT >::L_query

Definition at line 87 of file r1cs_gg_ppzksnark.hpp.


The documentation for this class was generated from the following file:
libsnark::r1cs_gg_ppzksnark_proving_key::G1_size
size_t G1_size() const
Definition: r1cs_gg_ppzksnark.hpp:120
libsnark::r1cs_gg_ppzksnark_proving_key::beta_g2
libff::G2< ppT > beta_g2
Definition: r1cs_gg_ppzksnark.hpp:79
libsnark::r1cs_gg_ppzksnark_proving_key::G1_sparse_size
size_t G1_sparse_size() const
Definition: r1cs_gg_ppzksnark.hpp:134
libsnark::r1cs_gg_ppzksnark_proving_key::L_query
libff::G1_vector< ppT > L_query
Definition: r1cs_gg_ppzksnark.hpp:87
libsnark::r1cs_gg_ppzksnark_proving_key::delta_g1
libff::G1< ppT > delta_g1
Definition: r1cs_gg_ppzksnark.hpp:80
libsnark::r1cs_gg_ppzksnark_proving_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_gg_ppzksnark.hpp:142
libsnark::r1cs_gg_ppzksnark_proving_key::constraint_system
r1cs_gg_ppzksnark_constraint_system< ppT > constraint_system
Definition: r1cs_gg_ppzksnark.hpp:89
libsnark::r1cs_gg_ppzksnark_proving_key::alpha_g1
libff::G1< ppT > alpha_g1
Definition: r1cs_gg_ppzksnark.hpp:77
libsnark::r1cs_gg_ppzksnark_proving_key::B_query
knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT > > B_query
Definition: r1cs_gg_ppzksnark.hpp:85
libsnark::r1cs_gg_ppzksnark_proving_key::delta_g2
libff::G2< ppT > delta_g2
Definition: r1cs_gg_ppzksnark.hpp:81
libsnark::r1cs_gg_ppzksnark_proving_key::G2_size
size_t G2_size() const
Definition: r1cs_gg_ppzksnark.hpp:128
libsnark::r1cs_gg_ppzksnark_proving_key::H_query
libff::G1_vector< ppT > H_query
Definition: r1cs_gg_ppzksnark.hpp:86
libsnark::r1cs_gg_ppzksnark_proving_key::A_query
libff::G1_vector< ppT > A_query
Definition: r1cs_gg_ppzksnark.hpp:84
libsnark::r1cs_gg_ppzksnark_proving_key::beta_g1
libff::G1< ppT > beta_g1
Definition: r1cs_gg_ppzksnark.hpp:78
libsnark::r1cs_gg_ppzksnark_proving_key::G2_sparse_size
size_t G2_sparse_size() const
Definition: r1cs_gg_ppzksnark.hpp:140