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

#include <r1cs_ppzkadsnark.hpp>

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

Public Member Functions

 r1cs_ppzkadsnark_proving_key ()
 
r1cs_ppzkadsnark_proving_key< ppT > & operator= (const r1cs_ppzkadsnark_proving_key< ppT > &other)=default
 
 r1cs_ppzkadsnark_proving_key (const r1cs_ppzkadsnark_proving_key< ppT > &other)=default
 
 r1cs_ppzkadsnark_proving_key (r1cs_ppzkadsnark_proving_key< ppT > &&other)=default
 
 r1cs_ppzkadsnark_proving_key (knowledge_commitment_vector< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&A_query, knowledge_commitment_vector< libff::G2< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&B_query, knowledge_commitment_vector< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&C_query, libff::G1_vector< snark_pp< ppT >> &&H_query, libff::G1_vector< snark_pp< ppT >> &&K_query, libff::G1< snark_pp< ppT >> &&rA_i_Z_g1, r1cs_ppzkadsnark_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_ppzkadsnark_proving_key< ppT > &other) const
 

Public Attributes

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

Friends

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

Detailed Description

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

A proving key for the R1CS ppzkADSNARK.

Definition at line 249 of file r1cs_ppzkadsnark.hpp.

Constructor & Destructor Documentation

◆ r1cs_ppzkadsnark_proving_key() [1/4]

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

Definition at line 284 of file r1cs_ppzkadsnark.hpp.

284 {};

◆ r1cs_ppzkadsnark_proving_key() [2/4]

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

◆ r1cs_ppzkadsnark_proving_key() [3/4]

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

◆ r1cs_ppzkadsnark_proving_key() [4/4]

template<typename ppT >
libsnark::r1cs_ppzkadsnark_proving_key< ppT >::r1cs_ppzkadsnark_proving_key ( knowledge_commitment_vector< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&  A_query,
knowledge_commitment_vector< libff::G2< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&  B_query,
knowledge_commitment_vector< libff::G1< snark_pp< ppT >>, libff::G1< snark_pp< ppT >>> &&  C_query,
libff::G1_vector< snark_pp< ppT >> &&  H_query,
libff::G1_vector< snark_pp< ppT >> &&  K_query,
libff::G1< snark_pp< ppT >> &&  rA_i_Z_g1,
r1cs_ppzkadsnark_constraint_system< ppT > &&  constraint_system 
)
inline

Definition at line 291 of file r1cs_ppzkadsnark.hpp.

305  : A_query(std::move(A_query))
306  , B_query(std::move(B_query))
307  , C_query(std::move(C_query))
308  , H_query(std::move(H_query))
309  , K_query(std::move(K_query))
310  , rA_i_Z_g1(std::move(rA_i_Z_g1))
311  , constraint_system(std::move(constraint_system)){};

Member Function Documentation

◆ G1_size()

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

Definition at line 313 of file r1cs_ppzkadsnark.hpp.

314  {
315  return 2 * (A_query.domain_size() + C_query.domain_size()) +
316  B_query.domain_size() + H_query.size() + K_query.size() + 1;
317  }
Here is the caller graph for this function:

◆ G1_sparse_size()

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

Definition at line 321 of file r1cs_ppzkadsnark.hpp.

322  {
323  return 2 * (A_query.size() + C_query.size()) + B_query.size() +
324  H_query.size() + K_query.size() + 1;
325  }
Here is the caller graph for this function:

◆ G2_size()

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

Definition at line 319 of file r1cs_ppzkadsnark.hpp.

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

◆ G2_sparse_size()

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

Definition at line 327 of file r1cs_ppzkadsnark.hpp.

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

◆ operator=()

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

◆ operator==()

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

◆ print_size()

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

Definition at line 337 of file r1cs_ppzkadsnark.hpp.

338  {
339  libff::print_indent();
340  printf("* G1 elements in PK: %zu\n", this->G1_size());
341  libff::print_indent();
342  printf("* Non-zero G1 elements in PK: %zu\n", this->G1_sparse_size());
343  libff::print_indent();
344  printf("* G2 elements in PK: %zu\n", this->G2_size());
345  libff::print_indent();
346  printf("* Non-zero G2 elements in PK: %zu\n", this->G2_sparse_size());
347  libff::print_indent();
348  printf("* PK size in bits: %zu\n", this->size_in_bits());
349  }
Here is the call graph for this function:

◆ size_in_bits()

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

Definition at line 329 of file r1cs_ppzkadsnark.hpp.

330  {
331  return A_query.size_in_bits() + B_query.size_in_bits() +
332  C_query.size_in_bits() + libff::size_in_bits(H_query) +
333  libff::size_in_bits(K_query) +
334  libff::G1<snark_pp<ppT>>::size_in_bits();
335  }
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_proving_key< ppT > &  pk 
)
friend

◆ operator>>

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

Member Data Documentation

◆ A_query

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

Definition at line 268 of file r1cs_ppzkadsnark.hpp.

◆ B_query

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

Definition at line 272 of file r1cs_ppzkadsnark.hpp.

◆ C_query

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

Definition at line 276 of file r1cs_ppzkadsnark.hpp.

◆ constraint_system

template<typename ppT >
r1cs_ppzkadsnark_constraint_system<ppT> libsnark::r1cs_ppzkadsnark_proving_key< ppT >::constraint_system

Definition at line 282 of file r1cs_ppzkadsnark.hpp.

◆ H_query

template<typename ppT >
libff::G1_vector<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_proving_key< ppT >::H_query

Definition at line 277 of file r1cs_ppzkadsnark.hpp.

◆ K_query

template<typename ppT >
libff::G1_vector<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_proving_key< ppT >::K_query

Definition at line 278 of file r1cs_ppzkadsnark.hpp.

◆ rA_i_Z_g1

template<typename ppT >
libff::G1<snark_pp<ppT> > libsnark::r1cs_ppzkadsnark_proving_key< ppT >::rA_i_Z_g1

Definition at line 280 of file r1cs_ppzkadsnark.hpp.


The documentation for this class was generated from the following file:
libsnark::r1cs_ppzkadsnark_proving_key::size_in_bits
size_t size_in_bits() const
Definition: r1cs_ppzkadsnark.hpp:329
libsnark::r1cs_ppzkadsnark_proving_key::A_query
knowledge_commitment_vector< libff::G1< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > A_query
Definition: r1cs_ppzkadsnark.hpp:268
libsnark::r1cs_ppzkadsnark_proving_key::K_query
libff::G1_vector< snark_pp< ppT > > K_query
Definition: r1cs_ppzkadsnark.hpp:278
libsnark::r1cs_ppzkadsnark_proving_key::G2_size
size_t G2_size() const
Definition: r1cs_ppzkadsnark.hpp:319
libsnark::r1cs_ppzkadsnark_proving_key::B_query
knowledge_commitment_vector< libff::G2< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > B_query
Definition: r1cs_ppzkadsnark.hpp:272
libsnark::r1cs_ppzkadsnark_proving_key::G1_size
size_t G1_size() const
Definition: r1cs_ppzkadsnark.hpp:313
libsnark::r1cs_ppzkadsnark_proving_key::G2_sparse_size
size_t G2_sparse_size() const
Definition: r1cs_ppzkadsnark.hpp:327
libsnark::r1cs_ppzkadsnark_proving_key::constraint_system
r1cs_ppzkadsnark_constraint_system< ppT > constraint_system
Definition: r1cs_ppzkadsnark.hpp:282
libsnark::r1cs_ppzkadsnark_proving_key::rA_i_Z_g1
libff::G1< snark_pp< ppT > > rA_i_Z_g1
Definition: r1cs_ppzkadsnark.hpp:280
libsnark::r1cs_ppzkadsnark_proving_key::G1_sparse_size
size_t G1_sparse_size() const
Definition: r1cs_ppzkadsnark.hpp:321
libsnark::r1cs_ppzkadsnark_proving_key::C_query
knowledge_commitment_vector< libff::G1< snark_pp< ppT > >, libff::G1< snark_pp< ppT > > > C_query
Definition: r1cs_ppzkadsnark.hpp:276
libsnark::r1cs_ppzkadsnark_proving_key::H_query
libff::G1_vector< snark_pp< ppT > > H_query
Definition: r1cs_ppzkadsnark.hpp:277