nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type > Class Template Reference

#include <r1cs_gg_ppzksnark.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >:

Public Types

typedef policy_type::auxiliary_input_type auxiliary_input_type
 
typedef policy_type::constraint_system_type constraint_system_type
 
typedef policy_type::keypair_type keypair_type
 
typedef policy_type::primary_input_type primary_input_type
 
typedef policy_type::proof_type proof_type
 
typedef policy_type::proving_key_type proving_key_type
 
typedef policy_type::proving_srs_type proving_srs_type
 
typedef policy_type::srs_pair_type srs_pair_type
 
typedef policy_type::srs_type srs_type
 
typedef policy_type::verification_key_type verification_key_type
 
typedef policy_type::verification_srs_type verification_srs_type
 

Static Public Member Functions

template<typename DistributionType = boost::random::uniform_int_distribution< typename CurveType::scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static keypair_type generate (const constraint_system_type &constraint_system)
 
template<typename DistributionType = boost::random::uniform_int_distribution< typename CurveType::scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static srs_pair_type generate (std::size_t num_proofs)
 
static basic_proof_type prove (const proving_key_type &pk, const primary_input_type &primary_input, const auxiliary_input_type &auxiliary_input)
 
template<typename Hash , typename InputTranscriptIncludeIterator , typename InputProofIterator >
static proof_type prove (const proving_srs_type &srs, InputTranscriptIncludeIterator transcript_include_first, InputTranscriptIncludeIterator transcript_include_last, InputProofIterator proofs_first, InputProofIterator proofs_last)
 
template<typename DistributionType = boost::random::uniform_int_distribution< typename CurveType::scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937, typename Hash = hashes::sha2<256>, typename InputPrimaryInputRange , typename InputIterator >
static bool verify (const verification_srs_type &ip_verifier_srs, const verification_key_type &pvk, const InputPrimaryInputRange &public_inputs, const proof_type &proof, InputIterator transcript_include_first, InputIterator transcript_include_last)
 
template<typename VerificationKey >
static bool verify (const VerificationKey &vk, const primary_input_type &primary_input, const basic_proof_type &proof)
 

Member Typedef Documentation

◆ auxiliary_input_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::auxiliary_input_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::auxiliary_input_type

◆ constraint_system_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::constraint_system_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::constraint_system_type

◆ keypair_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::keypair_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::keypair_type

◆ primary_input_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::primary_input_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::primary_input_type

◆ proof_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::proof_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::proof_type

◆ proving_key_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::proving_key_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::proving_key_type

◆ proving_srs_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::proving_srs_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::proving_srs_type

◆ srs_pair_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::srs_pair_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::srs_pair_type

◆ srs_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::srs_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::srs_type

◆ verification_key_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::verification_key_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::verification_key_type

◆ verification_srs_type

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
typedef policy_type::verification_srs_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::verification_srs_type

Member Function Documentation

◆ generate() [1/2]

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
template<typename DistributionType = boost::random::uniform_int_distribution< typename CurveType::scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static keypair_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::generate ( const constraint_system_type constraint_system)
inlinestatic

◆ generate() [2/2]

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
template<typename DistributionType = boost::random::uniform_int_distribution< typename CurveType::scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937>
static srs_pair_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::generate ( std::size_t  num_proofs)
inlinestatic

◆ prove() [1/2]

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
static basic_proof_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::prove ( const proving_key_type pk,
const primary_input_type primary_input,
const auxiliary_input_type auxiliary_input 
)
inlinestatic

◆ prove() [2/2]

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
template<typename Hash , typename InputTranscriptIncludeIterator , typename InputProofIterator >
static proof_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::prove ( const proving_srs_type srs,
InputTranscriptIncludeIterator  transcript_include_first,
InputTranscriptIncludeIterator  transcript_include_last,
InputProofIterator  proofs_first,
InputProofIterator  proofs_last 
)
inlinestatic

◆ verify() [1/2]

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
template<typename DistributionType = boost::random::uniform_int_distribution< typename CurveType::scalar_field_type::integral_type>, typename GeneratorType = boost::random::mt19937, typename Hash = hashes::sha2<256>, typename InputPrimaryInputRange , typename InputIterator >
static bool nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::verify ( const verification_srs_type ip_verifier_srs,
const verification_key_type pvk,
const InputPrimaryInputRange &  public_inputs,
const proof_type proof,
InputIterator  transcript_include_first,
InputIterator  transcript_include_last 
)
inlinestatic

◆ verify() [2/2]

template<typename CurveType , typename Generator , typename Prover , typename Verifier >
template<typename VerificationKey >
static bool nil::crypto3::zk::snark::r1cs_gg_ppzksnark< CurveType, Generator, Prover, Verifier, ProvingMode::Aggregate, typename std::enable_if< is_aggregate_mode< CurveType, Generator, Prover, Verifier >::value >::type >::verify ( const VerificationKey &  vk,
const primary_input_type primary_input,
const basic_proof_type proof 
)
inlinestatic

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