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

#include <r1cs_ppzksnark.hpp>

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

Public Member Functions

 r1cs_ppzksnark_proving_key ()
 
r1cs_ppzksnark_proving_key< ppT > & operator= (const r1cs_ppzksnark_proving_key< ppT > &other)=default
 
 r1cs_ppzksnark_proving_key (const r1cs_ppzksnark_proving_key< ppT > &other)=default
 
 r1cs_ppzksnark_proving_key (r1cs_ppzksnark_proving_key< ppT > &&other)=default
 
 r1cs_ppzksnark_proving_key (knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT >> &&A_query, knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT >> &&B_query, knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT >> &&C_query, libff::G1_vector< ppT > &&H_query, libff::G1_vector< ppT > &&K_query, r1cs_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_ppzksnark_proving_key< ppT > &other) const
 

Public Attributes

knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT > > A_query
 
knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT > > B_query
 
knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT > > C_query
 
libff::G1_vector< ppT > H_query
 
libff::G1_vector< ppT > K_query
 
r1cs_ppzksnark_constraint_system< ppT > constraint_system
 

Friends

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

Detailed Description

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

A proving key for the R1CS ppzkSNARK.

Definition at line 62 of file r1cs_ppzksnark.hpp.

Constructor & Destructor Documentation

◆ r1cs_ppzksnark_proving_key() [1/4]

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

Definition at line 85 of file r1cs_ppzksnark.hpp.

85 {};

◆ r1cs_ppzksnark_proving_key() [2/4]

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

◆ r1cs_ppzksnark_proving_key() [3/4]

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

◆ r1cs_ppzksnark_proving_key() [4/4]

template<typename ppT >
libsnark::r1cs_ppzksnark_proving_key< ppT >::r1cs_ppzksnark_proving_key ( knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT >> &&  A_query,
knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT >> &&  B_query,
knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT >> &&  C_query,
libff::G1_vector< ppT > &&  H_query,
libff::G1_vector< ppT > &&  K_query,
r1cs_ppzksnark_constraint_system< ppT > &&  constraint_system 
)
inline

Definition at line 92 of file r1cs_ppzksnark.hpp.

99  : A_query(std::move(A_query))
100  , B_query(std::move(B_query))
101  , C_query(std::move(C_query))
102  , H_query(std::move(H_query))
103  , K_query(std::move(K_query))
104  , constraint_system(std::move(constraint_system)){};

Member Function Documentation

◆ G1_size()

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

Definition at line 106 of file r1cs_ppzksnark.hpp.

107  {
108  return 2 * (A_query.domain_size() + C_query.domain_size()) +
109  B_query.domain_size() + H_query.size() + K_query.size();
110  }
Here is the caller graph for this function:

◆ G1_sparse_size()

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

Definition at line 114 of file r1cs_ppzksnark.hpp.

115  {
116  return 2 * (A_query.size() + C_query.size()) + B_query.size() +
117  H_query.size() + K_query.size();
118  }
Here is the caller graph for this function:

◆ G2_size()

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

Definition at line 112 of file r1cs_ppzksnark.hpp.

112 { return B_query.domain_size(); }
Here is the caller graph for this function:

◆ G2_sparse_size()

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

Definition at line 120 of file r1cs_ppzksnark.hpp.

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

◆ operator=()

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

◆ operator==()

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

◆ print_size()

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

Definition at line 129 of file r1cs_ppzksnark.hpp.

130  {
131  libff::print_indent();
132  printf("* G1 elements in PK: %zu\n", this->G1_size());
133  libff::print_indent();
134  printf("* Non-zero G1 elements in PK: %zu\n", this->G1_sparse_size());
135  libff::print_indent();
136  printf("* G2 elements in PK: %zu\n", this->G2_size());
137  libff::print_indent();
138  printf("* Non-zero G2 elements in PK: %zu\n", this->G2_sparse_size());
139  libff::print_indent();
140  printf("* PK size in bits: %zu\n", this->size_in_bits());
141  }

◆ size_in_bits()

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

Definition at line 122 of file r1cs_ppzksnark.hpp.

123  {
124  return A_query.size_in_bits() + B_query.size_in_bits() +
125  C_query.size_in_bits() + libff::size_in_bits(H_query) +
126  libff::size_in_bits(K_query);
127  }
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_ppzksnark_proving_key< ppT > &  pk 
)
friend

◆ operator>>

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

Member Data Documentation

◆ A_query

template<typename ppT >
knowledge_commitment_vector<libff::G1<ppT>, libff::G1<ppT> > libsnark::r1cs_ppzksnark_proving_key< ppT >::A_query

Definition at line 77 of file r1cs_ppzksnark.hpp.

◆ B_query

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

Definition at line 78 of file r1cs_ppzksnark.hpp.

◆ C_query

template<typename ppT >
knowledge_commitment_vector<libff::G1<ppT>, libff::G1<ppT> > libsnark::r1cs_ppzksnark_proving_key< ppT >::C_query

Definition at line 79 of file r1cs_ppzksnark.hpp.

◆ constraint_system

template<typename ppT >
r1cs_ppzksnark_constraint_system<ppT> libsnark::r1cs_ppzksnark_proving_key< ppT >::constraint_system

Definition at line 83 of file r1cs_ppzksnark.hpp.

◆ H_query

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

Definition at line 80 of file r1cs_ppzksnark.hpp.

◆ K_query

template<typename ppT >
libff::G1_vector<ppT> libsnark::r1cs_ppzksnark_proving_key< ppT >::K_query

Definition at line 81 of file r1cs_ppzksnark.hpp.


The documentation for this class was generated from the following file:
libsnark::r1cs_ppzksnark_proving_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_ppzksnark.hpp:122
libsnark::r1cs_ppzksnark_proving_key::G1_size
size_t G1_size() const
Definition: r1cs_ppzksnark.hpp:106
libsnark::r1cs_ppzksnark_proving_key::constraint_system
r1cs_ppzksnark_constraint_system< ppT > constraint_system
Definition: r1cs_ppzksnark.hpp:83
libsnark::r1cs_ppzksnark_proving_key::K_query
libff::G1_vector< ppT > K_query
Definition: r1cs_ppzksnark.hpp:81
libsnark::r1cs_ppzksnark_proving_key::G1_sparse_size
size_t G1_sparse_size() const
Definition: r1cs_ppzksnark.hpp:114
libsnark::r1cs_ppzksnark_proving_key::H_query
libff::G1_vector< ppT > H_query
Definition: r1cs_ppzksnark.hpp:80
libsnark::r1cs_ppzksnark_proving_key::A_query
knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT > > A_query
Definition: r1cs_ppzksnark.hpp:77
libsnark::r1cs_ppzksnark_proving_key::B_query
knowledge_commitment_vector< libff::G2< ppT >, libff::G1< ppT > > B_query
Definition: r1cs_ppzksnark.hpp:78
libsnark::r1cs_ppzksnark_proving_key::G2_sparse_size
size_t G2_sparse_size() const
Definition: r1cs_ppzksnark.hpp:120
libsnark::r1cs_ppzksnark_proving_key::C_query
knowledge_commitment_vector< libff::G1< ppT >, libff::G1< ppT > > C_query
Definition: r1cs_ppzksnark.hpp:79
libsnark::r1cs_ppzksnark_proving_key::G2_size
size_t G2_size() const
Definition: r1cs_ppzksnark.hpp:112