Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <mnt_precomputation.hpp>
Public Types | |
typedef libff::Fr< ppT > | FieldT |
typedef libff::Fqe< other_curve< ppT > > | FqeT |
typedef libff::Fqk< other_curve< ppT > > | FqkT |
Public Member Functions | |
mnt_precompute_G2_gadget_doubling_step (protoboard< FieldT > &pb, const mnt_precompute_G2_gadget_coeffs< ppT > &cur, const mnt_precompute_G2_gadget_coeffs< ppT > &next, const std::string &annotation_prefix) | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness () |
![]() | |
gadget (protoboard< libff::Fr< ppT > > &pb, const std::string &annotation_prefix) | |
Public Attributes | |
mnt_precompute_G2_gadget_coeffs< ppT > | cur |
mnt_precompute_G2_gadget_coeffs< ppT > | next |
std::shared_ptr< Fqe_variable< ppT > > | RXsquared |
std::shared_ptr< Fqe_sqr_gadget< ppT > > | compute_RXsquared |
std::shared_ptr< Fqe_variable< ppT > > | three_RXsquared_plus_a |
std::shared_ptr< Fqe_variable< ppT > > | two_RY |
std::shared_ptr< Fqe_mul_gadget< ppT > > | compute_gamma |
std::shared_ptr< Fqe_mul_gadget< ppT > > | compute_gamma_X |
std::shared_ptr< Fqe_variable< ppT > > | next_RX_plus_two_RX |
std::shared_ptr< Fqe_sqr_gadget< ppT > > | compute_next_RX |
std::shared_ptr< Fqe_variable< ppT > > | RX_minus_next_RX |
std::shared_ptr< Fqe_variable< ppT > > | RY_plus_next_RY |
std::shared_ptr< Fqe_mul_gadget< ppT > > | compute_next_RY |
Additional Inherited Members | |
![]() | |
protoboard< libff::Fr< ppT > > & | pb |
const std::string | annotation_prefix |
Technical note:
QX and QY – X and Y coordinates of Q
initialization: coeffs[0].RX = QX coeffs[0].RY = QY
G2_precompute_doubling_step relates coeffs[i] and coeffs[i+1] as follows
coeffs[i] gamma = (3 * RX^2 + twist_coeff_a) * (2*RY).inverse() gamma_X = gamma * RX
coeffs[i+1] RX = prev_gamma^2 - (2*prev_RX) RY = prev_gamma * (prev_RX - RX) - prev_RY
Definition at line 179 of file mnt_precomputation.hpp.
typedef libff::Fr<ppT> libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::FieldT |
Definition at line 182 of file mnt_precomputation.hpp.
typedef libff::Fqe<other_curve<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::FqeT |
Definition at line 183 of file mnt_precomputation.hpp.
typedef libff::Fqk<other_curve<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::FqkT |
Definition at line 184 of file mnt_precomputation.hpp.
libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::mnt_precompute_G2_gadget_doubling_step | ( | protoboard< FieldT > & | pb, |
const mnt_precompute_G2_gadget_coeffs< ppT > & | cur, | ||
const mnt_precompute_G2_gadget_coeffs< ppT > & | next, | ||
const std::string & | annotation_prefix | ||
) |
void libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::generate_r1cs_constraints | ( | ) |
void libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::generate_r1cs_witness | ( | ) |
std::shared_ptr<Fqe_mul_gadget<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::compute_gamma |
Definition at line 193 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_mul_gadget<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::compute_gamma_X |
Definition at line 194 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_sqr_gadget<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::compute_next_RX |
Definition at line 197 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_mul_gadget<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::compute_next_RY |
Definition at line 201 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_sqr_gadget<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::compute_RXsquared |
Definition at line 190 of file mnt_precomputation.hpp.
mnt_precompute_G2_gadget_coeffs<ppT> libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::cur |
Definition at line 186 of file mnt_precomputation.hpp.
mnt_precompute_G2_gadget_coeffs<ppT> libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::next |
Definition at line 187 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::next_RX_plus_two_RX |
Definition at line 196 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::RX_minus_next_RX |
Definition at line 199 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::RXsquared |
Definition at line 189 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::RY_plus_next_RY |
Definition at line 200 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::three_RXsquared_plus_a |
Definition at line 191 of file mnt_precomputation.hpp.
std::shared_ptr<Fqe_variable<ppT> > libsnark::mnt_precompute_G2_gadget_doubling_step< ppT >::two_RY |
Definition at line 192 of file mnt_precomputation.hpp.