Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
r1cs_gg_ppzksnark_verifier_gadget.hpp
Go to the documentation of this file.
1 
9 
15 #ifndef LIBSNARK_GADGETLIB1_GADGETS_VERFIERS_R1CS_GG_PPZKSNARK_VERIFIER_GADGET_HPP_
16 #define LIBSNARK_GADGETLIB1_GADGETS_VERFIERS_R1CS_GG_PPZKSNARK_VERIFIER_GADGET_HPP_
17 
23 
24 namespace libsnark
25 {
26 
27 template<typename ppT> class pairing_selector;
28 
29 template<typename ppT>
30 class r1cs_gg_ppzksnark_proof_variable : public gadget<libff::Fr<ppT>>
31 {
32 public:
33  typedef libff::Fr<ppT> FieldT;
34 
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;
38 
39  std::vector<std::shared_ptr<G1_variable<ppT>>> _all_G1_vars;
40  std::vector<std::shared_ptr<G2_variable<ppT>>> _all_G2_vars;
41 
42  std::vector<std::shared_ptr<G1_checker<ppT>>> _all_G1_checkers;
43  std::shared_ptr<G2_checker<ppT>> _G2_checker;
44 
46 
48  protoboard<FieldT> &pb, const std::string &annotation_prefix);
52  static size_t size();
53 };
54 
55 template<typename ppT>
57  : public gadget<libff::Fr<ppT>>
58 {
59 public:
60  typedef libff::Fr<ppT> FieldT;
61 
65  std::shared_ptr<G1_variable<ppT>> _encoded_ABC_base;
66  std::vector<std::shared_ptr<G1_variable<ppT>>> _ABC_g1;
67 
70  const size_t num_primary_inputs,
71  const std::string &annotation_prefix);
75 
76  size_t num_primary_inputs() const;
78  static std::vector<FieldT> get_verification_key_scalars(
80 
81 protected:
83  const size_t _num_primary_inputs;
84 };
85 
86 template<typename ppT>
88 {
89 public:
90  typedef libff::Fr<ppT> FieldT;
91 
92  std::shared_ptr<G1_precomputation<ppT>> _vk_alpha_g1_precomp;
93  std::shared_ptr<G2_precomputation<ppT>> _vk_generator_g2_precomp;
94  std::shared_ptr<G2_precomputation<ppT>> _vk_beta_g2_precomp;
95  std::shared_ptr<G2_precomputation<ppT>> _vk_delta_g2_precomp;
96 
97  std::shared_ptr<G1_variable<ppT>> _encoded_ABC_base;
98  std::vector<std::shared_ptr<G1_variable<ppT>>> _ABC_g1;
99 
102  protoboard<FieldT> &pb,
104  const std::string &annotation_prefix);
105 };
106 
107 template<typename ppT>
109  : public gadget<libff::Fr<ppT>>
110 {
111 public:
112  typedef libff::Fr<ppT> FieldT;
113 
114  std::shared_ptr<precompute_G1_gadget<ppT>> _compute_vk_alpha_g1_precomp;
115 
116  std::shared_ptr<precompute_G2_gadget<ppT>> _compute_vk_generator_g2_precomp;
117  std::shared_ptr<precompute_G2_gadget<ppT>> _compute_vk_beta_g2_precomp;
118  std::shared_ptr<precompute_G2_gadget<ppT>> _compute_vk_delta_g2_precomp;
119 
122 
127  const std::string &annotation_prefix);
129  void generate_r1cs_witness();
130 };
131 
132 template<typename ppT>
133 class r1cs_gg_ppzksnark_online_verifier_gadget : public gadget<libff::Fr<ppT>>
134 {
135 public:
136  typedef libff::Fr<ppT> FieldT;
137 
139 
141  size_t _elt_size;
143  // The `result` variable should be allocated outside of this circuit
145  const size_t _input_len;
146 
147  std::shared_ptr<G1_variable<ppT>> _acc;
148  std::shared_ptr<G1_multiscalar_mul_gadget<ppT>> _accumulate_input;
149 
150  std::shared_ptr<G1_precomputation<ppT>> _proof_g_A_precomp;
151  std::shared_ptr<G2_precomputation<ppT>> _proof_g_B_precomp;
152  std::shared_ptr<G1_precomputation<ppT>> _proof_g_C_precomp;
153  std::shared_ptr<G1_precomputation<ppT>> _acc_precomp;
154 
155  std::shared_ptr<precompute_G1_gadget<ppT>> _compute_proof_g_A_precomp;
156  std::shared_ptr<precompute_G2_gadget<ppT>> _compute_proof_g_B_precomp;
157  std::shared_ptr<precompute_G1_gadget<ppT>> _compute_proof_g_C_precomp;
158  std::shared_ptr<precompute_G1_gadget<ppT>> _compute_acc_precomp;
159 
160  std::shared_ptr<check_e_equals_eee_gadget<ppT>> _check_QAP_valid;
161 
165  &pvk,
166  const pb_variable_array<FieldT> &input,
167  const size_t elt_size,
169  const pb_variable<FieldT> &result_QAP_valid,
170  const std::string &annotation_prefix);
172  void generate_r1cs_witness();
173 };
174 
175 template<typename ppT>
176 class r1cs_gg_ppzksnark_verifier_gadget : public gadget<libff::Fr<ppT>>
177 {
178 public:
179  typedef libff::Fr<ppT> FieldT;
180 
181  std::shared_ptr<
184  std::shared_ptr<r1cs_gg_ppzksnark_verifier_process_vk_gadget<ppT>>
186  std::shared_ptr<r1cs_gg_ppzksnark_online_verifier_gadget<ppT>>
188 
192  const pb_variable_array<FieldT> &input,
193  const size_t elt_size,
195  const pb_variable<FieldT> &result,
196  const std::string &annotation_prefix);
197 
199  void generate_r1cs_witness();
200 };
201 
202 } // namespace libsnark
203 
205 
206 #endif // LIBSNARK_GADGETLIB1_GADGETS_VERFIERS_R1CS_GG_PPZKSNARK_VERIFIER_GADGET_HPP_
r1cs_gg_ppzksnark_verifier_gadget.tcc
libsnark::r1cs_gg_ppzksnark_verifier_gadget::r1cs_gg_ppzksnark_verifier_gadget
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)
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::_compute_vk_delta_g2_precomp
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_vk_delta_g2_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:118
libsnark::gadget< libff::Fr< ppT > >::annotation_prefix
const std::string annotation_prefix
Definition: gadget.hpp:20
libsnark::G2_variable
Gadget that represents a G2 variable.
Definition: weierstrass_g2_gadget.hpp:31
libsnark::r1cs_gg_ppzksnark_verification_key_variable::_ABC_g1
std::vector< std::shared_ptr< G1_variable< ppT > > > _ABC_g1
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:66
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::r1cs_gg_ppzksnark_verifier_process_vk_gadget
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)
libsnark::r1cs_gg_ppzksnark_verification_key_variable::_all_vars
pb_linear_combination_array< FieldT > _all_vars
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:82
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_compute_proof_g_B_precomp
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_proof_g_B_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:156
libsnark::r1cs_gg_ppzksnark_verification_key_variable::get_all_vars
const pb_linear_combination_array< FieldT > & get_all_vars() const
libsnark
Definition: accumulation_vector.hpp:18
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:133
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::FieldT
libff::Fr< ppT > FieldT
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:136
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::_vk_delta_g2_precomp
std::shared_ptr< G2_precomputation< ppT > > _vk_delta_g2_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:95
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::_ABC_g1
std::vector< std::shared_ptr< G1_variable< ppT > > > _ABC_g1
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:98
libsnark::r1cs_gg_ppzksnark_proof_variable::_all_G1_checkers
std::vector< std::shared_ptr< G1_checker< ppT > > > _all_G1_checkers
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:42
libsnark::r1cs_gg_ppzksnark_verification_key_variable::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::r1cs_gg_ppzksnark_verification_key_variable
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:56
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::_compute_vk_generator_g2_precomp
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_vk_generator_g2_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:116
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::_vk_alpha_g1_precomp
std::shared_ptr< G1_precomputation< ppT > > _vk_alpha_g1_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:92
r1cs_gg_ppzksnark.hpp
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_acc_precomp
std::shared_ptr< G1_precomputation< ppT > > _acc_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:153
libsnark::gadget< libff::Fr< ppT > >::pb
protoboard< libff::Fr< ppT > > & pb
Definition: gadget.hpp:19
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::_compute_vk_beta_g2_precomp
std::shared_ptr< precompute_G2_gadget< ppT > > _compute_vk_beta_g2_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:117
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::FieldT
libff::Fr< ppT > FieldT
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:112
libsnark::r1cs_gg_ppzksnark_verifier_gadget
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:176
libsnark::r1cs_gg_ppzksnark_verifier_gadget::generate_r1cs_witness
void generate_r1cs_witness()
libsnark::r1cs_gg_ppzksnark_verification_key_variable::_delta_g2
G2_variable< ppT > _delta_g2
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:64
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_proof_g_A_precomp
std::shared_ptr< G1_precomputation< ppT > > _proof_g_A_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:150
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_proof_g_C_precomp
std::shared_ptr< G1_precomputation< ppT > > _proof_g_C_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:152
libsnark::r1cs_gg_ppzksnark_verifier_gadget::_online_verifier
std::shared_ptr< r1cs_gg_ppzksnark_online_verifier_gadget< ppT > > _online_verifier
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:187
libsnark::r1cs_gg_ppzksnark_verification_key_variable::_alpha_g1
G1_variable< ppT > _alpha_g1
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:62
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_compute_proof_g_C_precomp
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_proof_g_C_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:157
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:87
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::generate_r1cs_witness
void generate_r1cs_witness()
libsnark::gadget
Definition: gadget.hpp:16
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::_compute_vk_alpha_g1_precomp
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_vk_alpha_g1_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:114
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::generate_r1cs_witness
void generate_r1cs_witness()
libsnark::r1cs_gg_ppzksnark_proof_variable::size
static size_t size()
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_elt_size
size_t _elt_size
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:141
libsnark::r1cs_gg_ppzksnark_proof_variable::FieldT
libff::Fr< ppT > FieldT
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:33
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_check_QAP_valid
std::shared_ptr< check_e_equals_eee_gadget< ppT > > _check_QAP_valid
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:160
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::_encoded_ABC_base
std::shared_ptr< G1_variable< ppT > > _encoded_ABC_base
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:97
libsnark::r1cs_gg_ppzksnark_verifier_gadget::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::r1cs_gg_ppzksnark_proof_variable::_g_C
std::shared_ptr< G1_variable< ppT > > _g_C
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:37
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_proof
r1cs_gg_ppzksnark_proof_variable< ppT > _proof
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:142
libsnark::r1cs_gg_ppzksnark_proof_variable::_all_G1_vars
std::vector< std::shared_ptr< G1_variable< ppT > > > _all_G1_vars
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:39
libsnark::r1cs_gg_ppzksnark_proof_variable::generate_r1cs_witness
void generate_r1cs_witness(const r1cs_gg_ppzksnark_proof< other_curve< ppT >> &proof)
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_compute_proof_g_A_precomp
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_proof_g_A_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:155
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::r1cs_gg_ppzksnark_preprocessed_verification_key_variable
r1cs_gg_ppzksnark_preprocessed_verification_key_variable()
libsnark::r1cs_gg_ppzksnark_verifier_gadget::_pvk
std::shared_ptr< r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > > _pvk
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:183
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_accumulate_input
std::shared_ptr< G1_multiscalar_mul_gadget< ppT > > _accumulate_input
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:148
libsnark::pb_linear_combination_array
Definition: pb_variable.hpp:118
libsnark::r1cs_gg_ppzksnark_verification_key_variable::_encoded_ABC_base
std::shared_ptr< G1_variable< ppT > > _encoded_ABC_base
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:65
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_input
pb_variable_array< FieldT > _input
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:140
libsnark::r1cs_gg_ppzksnark_proof_variable::_G2_checker
std::shared_ptr< G2_checker< ppT > > _G2_checker
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:43
weierstrass_g2_gadget.hpp
libsnark::r1cs_gg_ppzksnark_proof_variable::_proof_contents
pb_variable_array< FieldT > _proof_contents
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:45
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_input_len
const size_t _input_len
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:145
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::FieldT
libff::Fr< ppT > FieldT
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:90
libsnark::r1cs_gg_ppzksnark_verification_key_variable::_beta_g2
G2_variable< ppT > _beta_g2
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:63
libsnark::r1cs_gg_ppzksnark_verification_key_variable::FieldT
libff::Fr< ppT > FieldT
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:60
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_compute_acc_precomp
std::shared_ptr< precompute_G1_gadget< ppT > > _compute_acc_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:158
libsnark::r1cs_gg_ppzksnark_proof_variable
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:30
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::_vk_beta_g2_precomp
std::shared_ptr< G2_precomputation< ppT > > _vk_beta_g2_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:94
libsnark::G1_variable
Gadget that represents a G1 variable.
Definition: weierstrass_g1_gadget.hpp:28
libsnark::pb_variable
Definition: pb_variable.hpp:24
basic_gadgets.hpp
libsnark::r1cs_gg_ppzksnark_verification_key
Definition: r1cs_gg_ppzksnark.hpp:174
libsnark::r1cs_gg_ppzksnark_proof_variable::_g_B
std::shared_ptr< G2_variable< ppT > > _g_B
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:36
libsnark::pb_variable_array
Definition: pb_variable.hpp:44
libsnark::r1cs_gg_ppzksnark_verification_key_variable::_num_primary_inputs
const size_t _num_primary_inputs
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:83
libsnark::other_curve
typename pairing_selector< ppT >::other_curve_type other_curve
Definition: pairing_params.hpp:117
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_result
pb_variable< FieldT > _result
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:144
libsnark::r1cs_gg_ppzksnark_proof_variable::_all_G2_vars
std::vector< std::shared_ptr< G2_variable< ppT > > > _all_G2_vars
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:40
libsnark::r1cs_gg_ppzksnark_proof
Definition: r1cs_gg_ppzksnark.hpp:306
libsnark::r1cs_gg_ppzksnark_verification_key_variable::generate_r1cs_witness
void generate_r1cs_witness(const r1cs_gg_ppzksnark_verification_key< other_curve< ppT >> &vk)
pairing_checks.hpp
libsnark::r1cs_gg_ppzksnark_verification_key_variable::get_verification_key_scalars
static std::vector< FieldT > get_verification_key_scalars(const r1cs_gg_ppzksnark_verification_key< other_curve< ppT >> &r1cs_vk)
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::_pvk
r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > & _pvk
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:121
libsnark::r1cs_gg_ppzksnark_proof_variable::r1cs_gg_ppzksnark_proof_variable
r1cs_gg_ppzksnark_proof_variable(protoboard< FieldT > &pb, const std::string &annotation_prefix)
libsnark::r1cs_gg_ppzksnark_verification_key_variable::r1cs_gg_ppzksnark_verification_key_variable
r1cs_gg_ppzksnark_verification_key_variable(protoboard< FieldT > &pb, const size_t num_primary_inputs, const std::string &annotation_prefix)
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_pvk
r1cs_gg_ppzksnark_preprocessed_verification_key_variable< ppT > _pvk
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:138
libsnark::r1cs_gg_ppzksnark_verifier_gadget::FieldT
libff::Fr< ppT > FieldT
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:179
libsnark::r1cs_gg_ppzksnark_proof_variable::_g_A
std::shared_ptr< G1_variable< ppT > > _g_A
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:35
libsnark::r1cs_gg_ppzksnark_preprocessed_verification_key_variable::_vk_generator_g2_precomp
std::shared_ptr< G2_precomputation< ppT > > _vk_generator_g2_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:93
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::r1cs_gg_ppzksnark_online_verifier_gadget
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)
weierstrass_g1_gadget.hpp
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::r1cs_gg_ppzksnark_verifier_gadget::_compute_pvk
std::shared_ptr< r1cs_gg_ppzksnark_verifier_process_vk_gadget< ppT > > _compute_pvk
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:185
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_proof_g_B_precomp
std::shared_ptr< G2_precomputation< ppT > > _proof_g_B_precomp
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:151
libsnark::r1cs_gg_ppzksnark_verification_key_variable::num_primary_inputs
size_t num_primary_inputs() const
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:108
libsnark::r1cs_gg_ppzksnark_proof_variable::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::r1cs_gg_ppzksnark_online_verifier_gadget::_acc
std::shared_ptr< G1_variable< ppT > > _acc
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:147
libsnark::protoboard
Definition: pb_variable.hpp:22
libsnark::r1cs_gg_ppzksnark_verifier_process_vk_gadget::_vk
r1cs_gg_ppzksnark_verification_key_variable< ppT > _vk
Definition: r1cs_gg_ppzksnark_verifier_gadget.hpp:120