nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType > Class Template Reference

#include <r1cs_ppzkadsnark.hpp>

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

Public Types

typedef policy_type::auth_data auth_data_type
 
typedef policy_type::auxiliary_input_type auxiliary_input
 
typedef policy_type::constraint_system_type constraint_system
 
typedef policy_type::keypair_type keypair_type
 
typedef policy_type::prf_key prf_key
 
typedef policy_type::primary_input_type primary_input
 
typedef policy_type::processed_verification_key_type processed_verification_key_type
 
typedef policy_type::proof proof_type
 
typedef policy_type::proving_key_type proving_key_type
 
typedef policy_type::pub_auth_key pub_auth_key_type
 
typedef policy_type::pub_auth_prms pub_auth_prms_type
 
typedef policy_type::sec_auth_key sec_auth_key_type
 
typedef policy_type::secret_key secret_key
 
typedef policy_type::signature signature
 
typedef policy_type::snark_pp snark_pp
 
typedef policy_type::verification_key_type verification_key_type
 
typedef policy_type::vkT vkT
 

Static Public Member Functions

static auth_keys< CurveType > auth_generator (void)
 
static std::vector< auth_data< CurveType > > auth_sign (const std::vector< typename CurveType::scalar_field_type::value_type > &ins, const sec_auth_key< CurveType > &sk, const std::vector< label_type > labels)
 
static bool auth_verify (const std::vector< typename CurveType::scalar_field_type::value_type > &data, const std::vector< auth_data< CurveType >> &auth_data, const pub_auth_key< CurveType > &pak, const std::vector< label_type > &labels)
 
static bool auth_verify (const std::vector< typename CurveType::scalar_field_type::value_type > &data, const std::vector< auth_data< CurveType >> &auth_data, const sec_auth_key< CurveType > &sak, const std::vector< label_type > &labels)
 
static keypair< CurveType > generator (const constraint_system< CurveType > &cs, const pub_auth_prms< CurveType > &prms)
 
static bool online_verifier (const processed_verification_key< CurveType > &pvk, const proof< CurveType > &proof, const sec_auth_key< CurveType > &sak, const std::vector< label_type > &labels)
 
static bool online_verifier (const processed_verification_key< CurveType > &pvk, const std::vector< auth_data< CurveType >> &auth_data, const proof< CurveType > &proof, const pub_auth_key< CurveType > &pak, const std::vector< label_type > &labels)
 
static proof< CurveType > prover (const proving_key< CurveType > &pk, const primary_input< CurveType > &primary_input, const auxiliary_input< CurveType > &auxiliary_input, const std::vector< auth_data< CurveType >> &auth_data)
 
static bool verifier (const verification_key< CurveType > &vk, const proof< CurveType > &proof, const sec_auth_key< CurveType > &sak, const std::vector< label_type > &labels)
 
static bool verifier (const verification_key< CurveType > &vk, const std::vector< auth_data< CurveType >> &auth_data, const proof< CurveType > &proof, const pub_auth_key< CurveType > &pak, const std::vector< label_type > &labels)
 

Member Typedef Documentation

◆ auth_data_type

template<typename CurveType >
typedef policy_type::auth_data nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::auth_data_type

◆ auxiliary_input

template<typename CurveType >
typedef policy_type::auxiliary_input_type nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::auxiliary_input

◆ constraint_system

template<typename CurveType >
typedef policy_type::constraint_system_type nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::constraint_system

◆ keypair_type

template<typename CurveType >
typedef policy_type::keypair_type nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::keypair_type

◆ prf_key

template<typename CurveType >
typedef policy_type::prf_key nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::prf_key

◆ primary_input

template<typename CurveType >
typedef policy_type::primary_input_type nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::primary_input

◆ processed_verification_key_type

template<typename CurveType >
typedef policy_type::processed_verification_key_type nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::processed_verification_key_type

◆ proof_type

template<typename CurveType >
typedef policy_type::proof nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::proof_type

◆ proving_key_type

template<typename CurveType >
typedef policy_type::proving_key_type nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::proving_key_type

◆ pub_auth_key_type

template<typename CurveType >
typedef policy_type::pub_auth_key nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::pub_auth_key_type

◆ pub_auth_prms_type

◆ sec_auth_key_type

template<typename CurveType >
typedef policy_type::sec_auth_key nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::sec_auth_key_type

◆ secret_key

template<typename CurveType >
typedef policy_type::secret_key nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::secret_key

◆ signature

template<typename CurveType >
typedef policy_type::signature nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::signature

◆ snark_pp

template<typename CurveType >
typedef policy_type::snark_pp nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::snark_pp

◆ verification_key_type

template<typename CurveType >
typedef policy_type::verification_key_type nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::verification_key_type

◆ vkT

template<typename CurveType >
typedef policy_type::vkT nil::crypto3::zk::snark::r1cs_ppzkadsnark< CurveType >::vkT

Member Function Documentation

◆ auth_generator()

template<typename CurveType >
static auth_keys<CurveType> nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::auth_generator ( void  )
inlinestatic

R1CS ppZKADSNARK authentication parameters generator algorithm.

◆ auth_sign()

template<typename CurveType >
static std::vector<auth_data<CurveType> > nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::auth_sign
inlinestatic

R1CS ppZKADSNARK authentication algorithm.

◆ auth_verify() [1/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::auth_verify
inlinestatic

◆ auth_verify() [2/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::auth_verify
inlinestatic

R1CS ppZKADSNARK authentication verification algorithms.

◆ generator()

template<typename CurveType >
static keypair<CurveType> nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::generator
inlinestatic

A generator algorithm for the R1CS ppzkADSNARK.

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

◆ online_verifier() [1/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::online_verifier
inlinestatic

A symmetric verifier algorithm for the R1CS ppzkADSNARK that accepts a processed verification key.

◆ online_verifier() [2/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::online_verifier
inlinestatic

A verifier algorithm for the R1CS ppzkADSNARK that accepts a processed verification key.

◆ prover()

template<typename CurveType >
static proof<CurveType> nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::prover
inlinestatic

A prover algorithm for the R1CS ppzkADSNARK.

Given a R1CS primary input X and a R1CS auxiliary input Y, this algorithm produces a proof (of knowledge) that attests to the following statement: `‘there exists Y such that CS(X,Y)=0’'. Above, CS is the R1CS constraint system that was given as input to the generator algorithm.

◆ verifier() [1/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::verifier
inlinestatic

A symmetric verifier algorithm for the R1CS ppzkADSNARK that accepts a non-processed verification key

◆ verifier() [2/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::detail::r1cs_ppzkadsnark_basic_policy< CurveType >::verifier
inlinestatic

A verifier algorithm for the R1CS ppzkADSNARK that accepts a non-processed verification key


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