| 
    Clearmatics Libsnark
    0.1
    
   C++ library for zkSNARK proofs 
   | 
 
 
 
 
Go to the documentation of this file.
   15 #ifndef LIBSNARK_GADGETLIB1_GADGETS_VERFIERS_R1CS_GG_PPZKSNARK_VERIFIER_GADGET_HPP_ 
   16 #define LIBSNARK_GADGETLIB1_GADGETS_VERFIERS_R1CS_GG_PPZKSNARK_VERIFIER_GADGET_HPP_ 
   27 template<
typename ppT> 
class pairing_selector;
 
   29 template<
typename ppT>
 
   35     std::shared_ptr<G1_variable<ppT>> 
_g_A;
 
   36     std::shared_ptr<G2_variable<ppT>> 
_g_B;
 
   37     std::shared_ptr<G1_variable<ppT>> 
_g_C;
 
   55 template<
typename ppT>
 
   57     : 
public gadget<libff::Fr<ppT>>
 
   66     std::vector<std::shared_ptr<G1_variable<ppT>>> 
_ABC_g1;
 
   86 template<
typename ppT>
 
   98     std::vector<std::shared_ptr<G1_variable<ppT>>> 
_ABC_g1;
 
  104         const std::string &annotation_prefix);
 
  107 template<
typename ppT>
 
  109     : 
public gadget<libff::Fr<ppT>>
 
  132 template<
typename ppT>
 
  147     std::shared_ptr<G1_variable<ppT>> 
_acc;
 
  167         const size_t elt_size,
 
  175 template<
typename ppT>
 
  184     std::shared_ptr<r1cs_gg_ppzksnark_verifier_process_vk_gadget<ppT>>
 
  186     std::shared_ptr<r1cs_gg_ppzksnark_online_verifier_gadget<ppT>>
 
  193         const size_t elt_size,
 
  206 #endif // LIBSNARK_GADGETLIB1_GADGETS_VERFIERS_R1CS_GG_PPZKSNARK_VERIFIER_GADGET_HPP_ 
  
r1cs_gg_ppzksnark_verifier_gadget(protoboard< FieldT > &pb, const r1cs_gg_ppzksnark_verification_key_variable< ppT > &vk, const pb_variable_array< FieldT > &input, const size_t elt_size, const r1cs_gg_ppzksnark_proof_variable< ppT > &proof, const pb_variable< FieldT > &result, const std::string &annotation_prefix)
 
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_vk_delta_g2_precomp
 
const std::string annotation_prefix
 
Gadget that represents a G2 variable.
 
std::vector< std::shared_ptr< G1_variable< ppT > > > _ABC_g1
 
r1cs_gg_ppzksnark_verifier_process_vk_gadget(protoboard< FieldT > &pb, const r1cs_gg_ppzksnark_verification_key_variable< ppT > &vk, r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > &pvk, const std::string &annotation_prefix)
 
pb_linear_combination_array< FieldT > _all_vars
 
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_proof_g_B_precomp
 
const pb_linear_combination_array< FieldT > & get_all_vars() const
 
std::shared_ptr< G2_precomputation< ppT > > _vk_delta_g2_precomp
 
std::vector< std::shared_ptr< G1_variable< ppT > > > _ABC_g1
 
std::vector< std::shared_ptr< G1_checker< ppT > > > _all_G1_checkers
 
void generate_r1cs_constraints()
 
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_vk_generator_g2_precomp
 
std::shared_ptr< G1_precomputation< ppT > > _vk_alpha_g1_precomp
 
std::shared_ptr< G1_precomputation< ppT > > _acc_precomp
 
protoboard< libff::Fr< ppT > > & pb
 
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_vk_beta_g2_precomp
 
void generate_r1cs_witness()
 
G2_variable< ppT > _delta_g2
 
std::shared_ptr< G1_precomputation< ppT > > _proof_g_A_precomp
 
void generate_r1cs_constraints()
 
std::shared_ptr< G1_precomputation< ppT > > _proof_g_C_precomp
 
std::shared_ptr< r1cs_gg_ppzksnark_online_verifier_gadget< ppT > > _online_verifier
 
G1_variable< ppT > _alpha_g1
 
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_proof_g_C_precomp
 
void generate_r1cs_witness()
 
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_vk_alpha_g1_precomp
 
void generate_r1cs_witness()
 
std::shared_ptr< check_e_equals_eee_gadget< ppT > > _check_QAP_valid
 
std::shared_ptr< G1_variable< ppT > > _encoded_ABC_base
 
void generate_r1cs_constraints()
 
std::shared_ptr< G1_variable< ppT > > _g_C
 
r1cs_gg_ppzksnark_proof_variable< ppT > _proof
 
std::vector< std::shared_ptr< G1_variable< ppT > > > _all_G1_vars
 
void generate_r1cs_witness(const r1cs_gg_ppzksnark_proof< other_curve< ppT >> &proof)
 
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_proof_g_A_precomp
 
r1cs_gg_ppzksnark_preprocessed_verification_key_variable()
 
std::shared_ptr< r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > > _pvk
 
std::shared_ptr< G1_multiscalar_mul_gadget< ppT > > _accumulate_input
 
std::shared_ptr< G1_variable< ppT > > _encoded_ABC_base
 
pb_variable_array< FieldT > _input
 
std::shared_ptr< G2_checker< ppT > > _G2_checker
 
pb_variable_array< FieldT > _proof_contents
 
G2_variable< ppT > _beta_g2
 
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_acc_precomp
 
std::shared_ptr< G2_precomputation< ppT > > _vk_beta_g2_precomp
 
Gadget that represents a G1 variable.
 
std::shared_ptr< G2_variable< ppT > > _g_B
 
const size_t _num_primary_inputs
 
typename pairing_selector< ppT >::other_curve_type other_curve
 
pb_variable< FieldT > _result
 
std::vector< std::shared_ptr< G2_variable< ppT > > > _all_G2_vars
 
void generate_r1cs_witness(const r1cs_gg_ppzksnark_verification_key< other_curve< ppT >> &vk)
 
static std::vector< FieldT > get_verification_key_scalars(const r1cs_gg_ppzksnark_verification_key< other_curve< ppT >> &r1cs_vk)
 
r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > & _pvk
 
r1cs_gg_ppzksnark_proof_variable(protoboard< FieldT > &pb, const std::string &annotation_prefix)
 
r1cs_gg_ppzksnark_verification_key_variable(protoboard< FieldT > &pb, const size_t num_primary_inputs, const std::string &annotation_prefix)
 
r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > _pvk
 
std::shared_ptr< G1_variable< ppT > > _g_A
 
std::shared_ptr< G2_precomputation< ppT > > _vk_generator_g2_precomp
 
r1cs_gg_ppzksnark_online_verifier_gadget(protoboard< FieldT > &pb, const r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > &pvk, const pb_variable_array< FieldT > &input, const size_t elt_size, const r1cs_gg_ppzksnark_proof_variable< ppT > &proof, const pb_variable< FieldT > &result_QAP_valid, const std::string &annotation_prefix)
 
void generate_r1cs_constraints()
 
std::shared_ptr< r1cs_gg_ppzksnark_verifier_process_vk_gadget< ppT > > _compute_pvk
 
std::shared_ptr< G2_precomputation< ppT > > _proof_g_B_precomp
 
size_t num_primary_inputs() const
 
void generate_r1cs_constraints()
 
std::shared_ptr< G1_variable< ppT > > _acc
 
r1cs_gg_ppzksnark_verification_key_variable< ppT > _vk