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