nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType > Struct Template Reference

#include <srs.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >:

Public Types

typedef r1cs_gg_ppzksnark_ipp2_commitment< CurveType > commitment_type
 
typedef CurveType curve_type
 
typedef curve_type::template g1_type g1_type
 
typedef g1_type::value_type g1_value_type
 
typedef curve_type::template g2_type g2_type
 
typedef g2_type::value_type g2_value_type
 
typedef commitment_type::vkey_type vkey_type
 
typedef commitment_type::wkey_type wkey_type
 

Public Member Functions

bool has_correct_len (std::size_t n) const
 

Public Attributes

std::vector< g1_value_typeg_alpha_powers
 _{i=0}^{N}$ where N is the smallest size of the two Groth16 CRS. More...
 
std::vector< g1_value_typeg_beta_powers
 _{i=n}^{N}$ where N is the smallest size of the two Groth16 CRS. More...
 
std::vector< g2_value_typeh_alpha_powers
 _{i=0}^{N}$ where N is the smallest size of the two Groth16 CRS. More...
 
std::vector< g2_value_typeh_beta_powers
 _{i=0}^{N}$ where N is the smallest size of the two Groth16 CRS. More...
 
std::size_t n
 number of proofs to aggregate More...
 
vkey_type vkey
 commitment key using in MIPP and TIPP More...
 
wkey_type wkey
 commitment key using in TIPP More...
 

Detailed Description

template<typename CurveType>
struct nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >

ProverSRS is the specialized SRS version for the prover for a specific number of proofs to aggregate. It contains as well the commitment keys for this specific size. Note the size must be a power of two for the moment - if it is not, padding must be applied.

Member Typedef Documentation

◆ commitment_type

◆ curve_type

template<typename CurveType >
typedef CurveType nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::curve_type

◆ g1_type

template<typename CurveType >
typedef curve_type::template g1_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::g1_type

◆ g1_value_type

template<typename CurveType >
typedef g1_type::value_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::g1_value_type

◆ g2_type

template<typename CurveType >
typedef curve_type::template g2_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::g2_type

◆ g2_value_type

template<typename CurveType >
typedef g2_type::value_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::g2_value_type

◆ vkey_type

◆ wkey_type

Member Function Documentation

◆ has_correct_len()

template<typename CurveType >
bool nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::has_correct_len ( std::size_t  n) const
inline

Returns true if commitment keys have the exact required length. It is necessary for the IPP scheme to work that commitment key have the exact same number of arguments as the number of proofs to aggregate.

Member Data Documentation

◆ g_alpha_powers

template<typename CurveType >
std::vector<g1_value_type> nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::g_alpha_powers

_{i=0}^{N}$ where N is the smallest size of the two Groth16 CRS.

◆ g_beta_powers

template<typename CurveType >
std::vector<g1_value_type> nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::g_beta_powers

_{i=n}^{N}$ where N is the smallest size of the two Groth16 CRS.

◆ h_alpha_powers

template<typename CurveType >
std::vector<g2_value_type> nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::h_alpha_powers

_{i=0}^{N}$ where N is the smallest size of the two Groth16 CRS.

◆ h_beta_powers

template<typename CurveType >
std::vector<g2_value_type> nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::h_beta_powers

_{i=0}^{N}$ where N is the smallest size of the two Groth16 CRS.

◆ n

template<typename CurveType >
std::size_t nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::n

number of proofs to aggregate

◆ vkey

template<typename CurveType >
vkey_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::vkey

commitment key using in MIPP and TIPP

◆ wkey

template<typename CurveType >
wkey_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType >::wkey

commitment key using in TIPP


The documentation for this struct was generated from the following file: