Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
kzg10_batched.hpp
Go to the documentation of this file.
1 
9 #ifndef __LIBSNARK_POLYNOMIAL_COMMITMENTS_KZG10_BATCHED_HPP__
10 #define __LIBSNARK_POLYNOMIAL_COMMITMENTS_KZG10_BATCHED_HPP__
11 
13 
19 
20 namespace libsnark
21 {
22 
31 template<typename ppT> class kzg10_batched_2_point
32 {
33 public:
34  using Field = libff::Fr<ppT>;
35 
38  using srs = typename kzg10<ppT>::srs;
39 
41 
45  {
46  public:
47  std::vector<Field> s_1s;
48  std::vector<Field> s_2s;
49 
50  evaluations(std::vector<Field> &&fs, std::vector<Field> &&gs);
51  };
52 
60  {
61  public:
62  // Part of witness corresponding to evaluations of f_1s.
63  const libff::G1<ppT> W_1;
64  // Part of witness corresponding to evaluations of f_2s.
65  const libff::G1<ppT> W_2;
66 
68  const libff::G1<ppT> &W_1, const libff::G1<ppT> &W_2);
69  };
70 
74  const std::vector<polynomial<Field>> &fs,
75  const std::vector<polynomial<Field>> &gs,
76  const Field &z_1,
77  const Field &z_2);
78 
82  const std::vector<polynomial<Field>> &fs,
83  const std::vector<polynomial<Field>> &gs,
84  const Field &z_1,
85  const Field &z_2,
86  const evaluations &evaluations,
87  const srs &srs,
88  const Field &gamma_1,
89  const Field &gamma_2);
90 
96  static bool verify_evaluations(
97  const Field &z_1,
98  const Field &z_2,
99  const evaluations &evaluations,
100  const srs &srs,
101  const Field &gamma_1,
102  const Field &gamma_2,
103  const evaluation_witness &witness,
104  const std::vector<commitment> &cm_1s,
105  const std::vector<commitment> &cm_2s,
106  const Field &r);
107 };
108 
109 } // namespace libsnark
110 
112 
113 #endif // __LIBSNARK_POLYNOMIAL_COMMITMENTS_KZG10_BATCHED_HPP__
libsnark::kzg10_batched_2_point::commitment
typename kzg10< ppT >::commitment commitment
Definition: kzg10_batched.hpp:40
libsnark
Definition: accumulation_vector.hpp:18
libsnark::kzg10_batched_2_point::srs
typename kzg10< ppT >::srs srs
Definition: kzg10_batched.hpp:38
libsnark::kzg10_batched_2_point::evaluation_witness::evaluation_witness
evaluation_witness(const libff::G1< ppT > &W_1, const libff::G1< ppT > &W_2)
libsnark::kzg10_batched_2_point::evaluation_witness
Definition: kzg10_batched.hpp:59
libsnark::kzg10_batched_2_point::evaluation_witness::W_1
const libff::G1< ppT > W_1
Definition: kzg10_batched.hpp:63
libsnark::kzg10_batched_2_point::evaluation_witness::W_2
const libff::G1< ppT > W_2
Definition: kzg10_batched.hpp:65
libsnark::kzg10_batched_2_point::evaluate_polynomials
static evaluations evaluate_polynomials(const std::vector< polynomial< Field >> &fs, const std::vector< polynomial< Field >> &gs, const Field &z_1, const Field &z_2)
kzg10_batched.tcc
kzg10.hpp
libsnark::polynomial
std::vector< FieldT > polynomial
Definition: polynomial.hpp:17
libsnark::kzg10_batched_2_point::Field
libff::Fr< ppT > Field
Definition: kzg10_batched.hpp:34
libsnark::kzg10_batched_2_point
Definition: kzg10_batched.hpp:31
libsnark::kzg10_batched_2_point::evaluations::s_1s
std::vector< Field > s_1s
Definition: kzg10_batched.hpp:47
libsnark::kzg10::commitment
libff::G1< ppT > commitment
Definition: kzg10.hpp:51
libsnark::kzg10_batched_2_point::create_evaluation_witness
static evaluation_witness create_evaluation_witness(const std::vector< polynomial< Field >> &fs, const std::vector< polynomial< Field >> &gs, const Field &z_1, const Field &z_2, const evaluations &evaluations, const srs &srs, const Field &gamma_1, const Field &gamma_2)
libsnark::kzg10_batched_2_point::verify_evaluations
static bool verify_evaluations(const Field &z_1, const Field &z_2, const evaluations &evaluations, const srs &srs, const Field &gamma_1, const Field &gamma_2, const evaluation_witness &witness, const std::vector< commitment > &cm_1s, const std::vector< commitment > &cm_2s, const Field &r)
libsnark::kzg10_batched_2_point::evaluations::evaluations
evaluations(std::vector< Field > &&fs, std::vector< Field > &&gs)
libsnark::kzg10::srs
Definition: kzg10.hpp:37
libsnark::kzg10_batched_2_point::evaluations
Definition: kzg10_batched.hpp:44
libsnark::kzg10_batched_2_point::evaluations::s_2s
std::vector< Field > s_2s
Definition: kzg10_batched.hpp:48