nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic > Class Template Reference

#include <generator.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >:

Public Types

typedef policy_type::auxiliary_input_type auxiliary_input_type
 
typedef policy_type::constraint_system_type constraint_system_type
 
typedef policy_type::extended_keypair_type extended_keypair_type
 
typedef policy_type::extended_verification_key_type extended_verification_key_type
 
typedef policy_type::keypair_type keypair_type
 
typedef policy_type::primary_input_type primary_input_type
 
typedef policy_type::processed_keypair_type processed_keypair_type
 
typedef policy_type::processed_verification_key_type processed_verification_key_type
 
typedef policy_type::proof_type proof_type
 
typedef policy_type::proving_key_type proving_key_type
 
typedef policy_type::verification_key_type verification_key_type
 

Static Public Member Functions

template<typename DistributionType = boost::random::uniform_int_distribution<typename scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static auto basic_process (const constraint_system_type &constraint_system)
 
template<typename KeyPairType , typename DistributionType = boost::random::uniform_int_distribution<typename scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static std::enable_if< std::is_same< keypair_type, KeyPairType >::value, KeyPairType >::type process (const constraint_system_type &constraint_system)
 
template<typename KeyPairType , typename DistributionType = boost::random::uniform_int_distribution<typename scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static std::enable_if< std::is_same< extended_keypair_type, KeyPairType >::value, KeyPairType >::type process (const constraint_system_type &constraint_system)
 

Detailed Description

template<typename CurveType>
class nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >

A generator algorithm for the R1CS GG-ppzkSNARK.

Given a R1CS constraint system CS, this algorithm produces proving and verification keys for CS.

Member Typedef Documentation

◆ auxiliary_input_type

◆ constraint_system_type

◆ extended_keypair_type

◆ extended_verification_key_type

◆ keypair_type

◆ primary_input_type

◆ processed_keypair_type

◆ processed_verification_key_type

◆ proof_type

◆ proving_key_type

◆ verification_key_type

Member Function Documentation

◆ basic_process()

template<typename CurveType >
template<typename DistributionType = boost::random::uniform_int_distribution<typename scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static auto nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::basic_process ( const constraint_system_type constraint_system)
inlinestatic

Note that H for Groth's proof system is degree d-2, but the QAP reduction returns coefficients for degree d polynomial H (in style of PGHR-type proof systems)

◆ process() [1/2]

template<typename CurveType >
template<typename KeyPairType , typename DistributionType = boost::random::uniform_int_distribution<typename scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static std::enable_if<std::is_same<keypair_type, KeyPairType>::value, KeyPairType>::type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::process ( const constraint_system_type constraint_system)
inlinestatic

◆ process() [2/2]

template<typename CurveType >
template<typename KeyPairType , typename DistributionType = boost::random::uniform_int_distribution<typename scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static std::enable_if<std::is_same<extended_keypair_type, KeyPairType>::value, KeyPairType>::type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::process ( const constraint_system_type constraint_system)
inlinestatic

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