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