| 
    Clearmatics Libsnark
    0.1
    
   C++ library for zkSNARK proofs 
   | 
 
 
 
 
Go to the documentation of this file.
   21 #ifndef R1CS_PPZKSNARK_VERIFIER_GADGET_HPP_ 
   22 #define R1CS_PPZKSNARK_VERIFIER_GADGET_HPP_ 
   34 template<
typename ppT>
 
   40     std::shared_ptr<G1_variable<ppT>> 
g_A_g;
 
   41     std::shared_ptr<G1_variable<ppT>> 
g_A_h;
 
   42     std::shared_ptr<G2_variable<ppT>> 
g_B_g;
 
   43     std::shared_ptr<G1_variable<ppT>> 
g_B_h;
 
   44     std::shared_ptr<G1_variable<ppT>> 
g_C_g;
 
   45     std::shared_ptr<G1_variable<ppT>> 
g_C_h;
 
   46     std::shared_ptr<G1_variable<ppT>> 
g_H;
 
   47     std::shared_ptr<G1_variable<ppT>> 
g_K;
 
   65 template<
typename ppT>
 
   77     std::shared_ptr<G2_variable<ppT>> 
rC_Z_g2;
 
  111 template<
typename ppT>
 
  134         const std::string &annotation_prefix);
 
  137 template<
typename ppT>
 
  167 template<
typename ppT>
 
  182     std::shared_ptr<G1_variable<ppT>> 
acc;
 
  203     std::shared_ptr<precompute_G1_gadget<ppT>>
 
  243 template<
typename ppT>
 
  253     std::shared_ptr<r1cs_ppzksnark_verifier_process_vk_gadget<ppT>> 
compute_pvk;
 
  260         const size_t elt_size,
 
  273 #endif // R1CS_PPZKSNARK_VERIFIER_GADGET_HPP_ 
  
std::shared_ptr< G2_precomputation< ppT > > vk_gamma_g2_precomp
 
r1cs_ppzksnark_verifier_gadget(protoboard< FieldT > &pb, const r1cs_ppzksnark_verification_key_variable< ppT > &vk, const pb_variable_array< FieldT > &input, const size_t elt_size, const r1cs_ppzksnark_proof_variable< ppT > &proof, const pb_variable< FieldT > &result, const std::string &annotation_prefix)
 
std::shared_ptr< G1_variable< ppT > > proof_g_A_g_acc_C
 
std::shared_ptr< G1_variable< ppT > > gamma_beta_g1
 
r1cs_ppzksnark_online_verifier_gadget(protoboard< FieldT > &pb, const r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< ppT > &pvk, const pb_variable_array< FieldT > &input, const size_t elt_size, const r1cs_ppzksnark_proof_variable< ppT > &proof, const pb_variable< FieldT > &result, const std::string &annotation_prefix)
 
std::vector< std::shared_ptr< G2_variable< ppT > > > all_G2_vars
 
std::shared_ptr< precompute_G2_gadget< ppT > > compute_vk_alphaC_g2_precomp
 
std::shared_ptr< check_e_equals_e_gadget< ppT > > check_kc_A_valid
 
void generate_r1cs_witness(const r1cs_ppzksnark_verification_key< other_curve< ppT >> &vk)
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_A_g_acc_C_precomp
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_A_g_precomp
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_A_g_acc_precomp
 
std::shared_ptr< G1_precomputation< ppT > > vk_gamma_beta_g1_precomp
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_A_g_acc_precomp
 
const std::string annotation_prefix
 
std::shared_ptr< G2_variable< ppT > > alphaA_g2
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_K_precomp
 
std::shared_ptr< G1_add_gadget< ppT > > compute_proof_g_A_g_acc
 
std::shared_ptr< G1_variable< ppT > > proof_g_A_g_acc
 
std::shared_ptr< G1_variable< ppT > > alphaB_g1
 
std::shared_ptr< G2_precomputation< ppT > > vk_rC_Z_g2_precomp
 
std::shared_ptr< check_e_equals_ee_gadget< ppT > > check_QAP_valid
 
protoboard< libff::Fr< ppT > > & pb
 
pb_variable_array< FieldT > all_test_results
 
std::shared_ptr< G2_precomputation< ppT > > vk_gamma_beta_g2_precomp
 
std::shared_ptr< precompute_G2_gadget< ppT > > compute_proof_g_B_g_precomp
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_A_h_precomp
 
std::shared_ptr< G1_variable< ppT > > g_A_g
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_B_h_precomp
 
void generate_r1cs_witness()
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_C_h_precomp
 
__attribute__((noinline)) r1cs_ppzksnark_verification_key_variable(protoboard< FieldT > &pb
 
r1cs_ppzksnark_proof_variable< ppT > proof
 
void generate_r1cs_constraints()
 
std::shared_ptr< G1_variable< ppT > > g_H
 
std::shared_ptr< G1_multiscalar_mul_gadget< ppT > > accumulate_input
 
std::shared_ptr< G2_precomputation< ppT > > proof_g_B_g_precomp
 
std::shared_ptr< G1_variable< ppT > > g_K
 
std::vector< std::shared_ptr< G2_variable< ppT > > > all_G2_vars
 
std::shared_ptr< G1_add_gadget< ppT > > compute_proof_g_A_g_acc_C
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_B_h_precomp
 
r1cs_ppzksnark_verifier_process_vk_gadget(protoboard< FieldT > &pb, const r1cs_ppzksnark_verification_key_variable< ppT > &vk, r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< ppT > &pvk, const std::string &annotation_prefix)
 
size_t num_primary_inputs() const
 
std::shared_ptr< G2_variable< ppT > > g_B_g
 
const pb_linear_combination_array< FieldT > & get_all_vars() const
 
std::shared_ptr< G1_variable< ppT > > encoded_IC_base
 
std::shared_ptr< conjunction_gadget< FieldT > > all_tests_pass
 
std::shared_ptr< G1_variable< ppT > > g_A_h
 
std::shared_ptr< check_e_equals_ee_gadget< ppT > > check_CC_valid
 
pb_variable< FieldT > kc_A_valid
 
std::shared_ptr< G1_variable< ppT > > encoded_IC_base
 
static std::vector< FieldT > get_verification_key_scalars(const r1cs_ppzksnark_verification_key< other_curve< ppT >> &r1cs_vk)
 
void generate_r1cs_constraints()
 
void generate_r1cs_constraints()
 
std::shared_ptr< G1_variable< ppT > > g_C_h
 
std::shared_ptr< G2_precomputation< ppT > > vk_alphaA_g2_precomp
 
std::vector< std::shared_ptr< G1_variable< ppT > > > all_G1_vars
 
std::shared_ptr< G2_precomputation< ppT > > vk_alphaC_g2_precomp
 
std::vector< std::shared_ptr< G1_variable< ppT > > > all_G1_vars
 
void generate_r1cs_witness()
 
std::shared_ptr< r1cs_ppzksnark_verifier_process_vk_gadget< ppT > > compute_pvk
 
void generate_r1cs_constraints()
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_C_h_precomp
 
std::shared_ptr< G2_precomputation< ppT > > pp_G2_one_precomp
 
std::shared_ptr< G1_variable< ppT > > g_C_g
 
pb_variable< FieldT > result
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_C_g_precomp
 
std::vector< std::shared_ptr< G1_variable< ppT > > > encoded_IC_query
 
void generate_r1cs_witness()
 
std::shared_ptr< G2_variable< ppT > > alphaC_g2
 
std::shared_ptr< G1_variable< ppT > > g_B_h
 
const size_t const std::string & annotation_prefix
 
std::shared_ptr< G2_variable< ppT > > gamma_g2
 
std::vector< std::shared_ptr< G1_variable< ppT > > > encoded_IC_query
 
std::shared_ptr< precompute_G2_gadget< ppT > > compute_vk_alphaA_g2_precomp
 
r1cs_ppzksnark_verification_key_variable< ppT > vk
 
std::vector< std::shared_ptr< G1_checker_gadget< ppT > > > all_G1_checkers
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_C_g_precomp
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_vk_gamma_beta_g1_precomp
 
r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< ppT > pvk
 
void generate_r1cs_constraints()
 
typename pairing_selector< ppT >::other_curve_type other_curve
 
r1cs_ppzksnark_proof_variable(protoboard< FieldT > &pb, const std::string &annotation_prefix)
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_A_g_acc_C_precomp
 
std::shared_ptr< G1_precomputation< ppT > > vk_alphaB_g1_precomp
 
std::shared_ptr< precompute_G2_gadget< ppT > > compute_vk_rC_Z_g2_precomp
 
std::shared_ptr< G2_variable< ppT > > gamma_beta_g2
 
pb_variable< FieldT > kc_C_valid
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_H_precomp
 
r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable()
 
std::shared_ptr< G2_variable< ppT > > rC_Z_g2
 
std::shared_ptr< precompute_G2_gadget< ppT > > compute_vk_gamma_beta_g2_precomp
 
pb_variable< FieldT > QAP_valid
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_vk_alphaB_g1_precomp
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_H_precomp
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_A_h_precomp
 
void generate_r1cs_witness(const r1cs_ppzksnark_proof< other_curve< ppT >> &proof)
 
pb_variable< FieldT > kc_B_valid
 
std::shared_ptr< check_e_equals_e_gadget< ppT > > check_kc_C_valid
 
std::shared_ptr< r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< ppT > > pvk
 
pb_variable_array< FieldT > proof_contents
 
pb_linear_combination_array< FieldT > all_vars
 
std::shared_ptr< check_e_equals_e_gadget< ppT > > check_kc_B_valid
 
std::shared_ptr< precompute_G2_gadget< ppT > > compute_vk_gamma_g2_precomp
 
pb_variable< FieldT > CC_valid
 
std::shared_ptr< r1cs_ppzksnark_online_verifier_gadget< ppT > > online_verifier
 
std::shared_ptr< G2_checker_gadget< ppT > > G2_checker
 
std::shared_ptr< G1_precomputation< ppT > > proof_g_K_precomp
 
std::shared_ptr< precompute_G1_gadget< ppT > > compute_proof_g_A_g_precomp
 
r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< ppT > & pvk
 
pb_variable_array< FieldT > input
 
std::shared_ptr< G1_variable< ppT > > acc