Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <kzg10_verifier_gadget.hpp>
Public Types | |
using | FieldT = libff::Fr< ppT > |
Public Member Functions | |
kzg10_verifier_gadget (protoboard< libff::Fr< ppT >> &pb, const kzg10_srs_variable< ppT > &srs, const kzg10_commitment_variable< ppT > &commitmennt, pb_linear_combination< libff::Fr< ppT >> i, pb_linear_combination< libff::Fr< ppT >> poly_eval, const kzg10_witness_variable< ppT > &witness, pb_variable< libff::Fr< ppT >> result, 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 | |
G2_variable_or_identity< ppT > | i_in_G2 |
G2_mul_by_scalar_gadget< ppT > | compute_i_in_G2 |
G2_variable< ppT > | B |
G2_add_gadget< ppT > | compute_B |
G1_variable_or_identity< ppT > | poly_eval_in_G1 |
G1_mul_by_scalar_gadget< ppT > | compute_poly_eval_in_G1 |
G1_variable< ppT > | C |
G1_add_gadget< ppT > | compute_C |
G1_precomputation< ppT > | A_precomp |
precompute_G1_gadget< ppT > | compute_A_precomp |
G2_precomputation< ppT > | B_precomp |
precompute_G2_gadget< ppT > | compute_B_precomp |
G1_precomputation< ppT > | C_precomp |
precompute_G1_gadget< ppT > | compute_C_precomp |
G2_precomputation< ppT > | D_precomp |
pb_variable< libff::Fr< ppT > > | check_result |
check_e_equals_e_gadget< ppT > | check_pairing_equality |
pb_variable< libff::Fr< ppT > > | group_elements_non_zero |
pb_variable< libff::Fr< ppT > > | result |
Additional Inherited Members | |
![]() | |
protoboard< libff::Fr< ppT > > & | pb |
const std::string | annotation_prefix |
Uses a nested pairing (via a pairing selector) to implement the verification step of [KZG10]. See the native implementation for details.
TODO: this gadget does not currently support either the evaluation point i or the result of polynomial evaluation being zero. This could potentially be addressed by further use of gadgets that handle variable_or_identity inputs.
Definition at line 63 of file kzg10_verifier_gadget.hpp.
using libsnark::kzg10_verifier_gadget< ppT >::FieldT = libff::Fr<ppT> |
Definition at line 66 of file kzg10_verifier_gadget.hpp.
libsnark::kzg10_verifier_gadget< ppT >::kzg10_verifier_gadget | ( | protoboard< libff::Fr< ppT >> & | pb, |
const kzg10_srs_variable< ppT > & | srs, | ||
const kzg10_commitment_variable< ppT > & | commitmennt, | ||
pb_linear_combination< libff::Fr< ppT >> | i, | ||
pb_linear_combination< libff::Fr< ppT >> | poly_eval, | ||
const kzg10_witness_variable< ppT > & | witness, | ||
pb_variable< libff::Fr< ppT >> | result, | ||
const std::string & | annotation_prefix | ||
) |
void libsnark::kzg10_verifier_gadget< ppT >::generate_r1cs_constraints | ( | ) |
void libsnark::kzg10_verifier_gadget< ppT >::generate_r1cs_witness | ( | ) |
G1_precomputation<ppT> libsnark::kzg10_verifier_gadget< ppT >::A_precomp |
Definition at line 98 of file kzg10_verifier_gadget.hpp.
G2_variable<ppT> libsnark::kzg10_verifier_gadget< ppT >::B |
Definition at line 88 of file kzg10_verifier_gadget.hpp.
G2_precomputation<ppT> libsnark::kzg10_verifier_gadget< ppT >::B_precomp |
Definition at line 100 of file kzg10_verifier_gadget.hpp.
G1_variable<ppT> libsnark::kzg10_verifier_gadget< ppT >::C |
Definition at line 94 of file kzg10_verifier_gadget.hpp.
G1_precomputation<ppT> libsnark::kzg10_verifier_gadget< ppT >::C_precomp |
Definition at line 102 of file kzg10_verifier_gadget.hpp.
check_e_equals_e_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::check_pairing_equality |
Definition at line 109 of file kzg10_verifier_gadget.hpp.
pb_variable<libff::Fr<ppT> > libsnark::kzg10_verifier_gadget< ppT >::check_result |
Definition at line 108 of file kzg10_verifier_gadget.hpp.
precompute_G1_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::compute_A_precomp |
Definition at line 99 of file kzg10_verifier_gadget.hpp.
G2_add_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::compute_B |
Definition at line 89 of file kzg10_verifier_gadget.hpp.
precompute_G2_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::compute_B_precomp |
Definition at line 101 of file kzg10_verifier_gadget.hpp.
G1_add_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::compute_C |
Definition at line 95 of file kzg10_verifier_gadget.hpp.
precompute_G1_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::compute_C_precomp |
Definition at line 103 of file kzg10_verifier_gadget.hpp.
G2_mul_by_scalar_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::compute_i_in_G2 |
Definition at line 87 of file kzg10_verifier_gadget.hpp.
G1_mul_by_scalar_gadget<ppT> libsnark::kzg10_verifier_gadget< ppT >::compute_poly_eval_in_G1 |
Definition at line 93 of file kzg10_verifier_gadget.hpp.
G2_precomputation<ppT> libsnark::kzg10_verifier_gadget< ppT >::D_precomp |
Definition at line 106 of file kzg10_verifier_gadget.hpp.
pb_variable<libff::Fr<ppT> > libsnark::kzg10_verifier_gadget< ppT >::group_elements_non_zero |
Definition at line 113 of file kzg10_verifier_gadget.hpp.
G2_variable_or_identity<ppT> libsnark::kzg10_verifier_gadget< ppT >::i_in_G2 |
Definition at line 86 of file kzg10_verifier_gadget.hpp.
G1_variable_or_identity<ppT> libsnark::kzg10_verifier_gadget< ppT >::poly_eval_in_G1 |
Definition at line 92 of file kzg10_verifier_gadget.hpp.
pb_variable<libff::Fr<ppT> > libsnark::kzg10_verifier_gadget< ppT >::result |
Definition at line 116 of file kzg10_verifier_gadget.hpp.