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 >:
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
template<typename CurveType >
typedef policy_type::auxiliary_input_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::auxiliary_input_type |
◆ constraint_system_type
template<typename CurveType >
typedef policy_type::constraint_system_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::constraint_system_type |
◆ extended_keypair_type
template<typename CurveType >
typedef policy_type::extended_keypair_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::extended_keypair_type |
◆ extended_verification_key_type
template<typename CurveType >
typedef policy_type::extended_verification_key_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::extended_verification_key_type |
◆ keypair_type
template<typename CurveType >
typedef policy_type::keypair_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::keypair_type |
◆ primary_input_type
template<typename CurveType >
typedef policy_type::primary_input_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::primary_input_type |
◆ processed_keypair_type
template<typename CurveType >
typedef policy_type::processed_keypair_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::processed_keypair_type |
◆ processed_verification_key_type
template<typename CurveType >
typedef policy_type::processed_verification_key_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::processed_verification_key_type |
◆ proof_type
template<typename CurveType >
typedef policy_type::proof_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::proof_type |
◆ proving_key_type
template<typename CurveType >
typedef policy_type::proving_key_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::proving_key_type |
◆ verification_key_type
template<typename CurveType >
typedef policy_type::verification_key_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >::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>
|
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>
|
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>
|
inlinestatic |
The documentation for this class was generated from the following file: