barretenberg
Loading...
Searching...
No Matches
kate_commitment_scheme.hpp
1#pragma once
2#include "commitment_scheme.hpp"
3
4namespace proof_system::plonk {
5
6template <typename settings> class KateCommitmentScheme : public CommitmentScheme {
7 public:
9
10 void commit(std::shared_ptr<fr[]> coefficients, std::string tag, fr item_constant, work_queue& queue) override;
11
12 void compute_opening_polynomial(const fr* src, fr* dest, const fr& z, const size_t n) override;
13
14 void generic_batch_open(const fr* src,
15 fr* dest,
16 const size_t num_polynomials,
17 const fr* z_points,
18 const size_t num_z_points,
19 const fr* challenges,
20 const size_t n,
21 std::string* tags,
22 fr* item_constants,
23 work_queue& queue) override;
24
25 void batch_open(const transcript::StandardTranscript& transcript,
26 work_queue& queue,
27 std::shared_ptr<plonk::proving_key> input_key = nullptr) override;
28
29 void batch_verify(const transcript::StandardTranscript& transcript,
30 std::map<std::string, g1::affine_element>& kate_g1_elements,
31 std::map<std::string, fr>& kate_fr_elements,
32 std::shared_ptr<plonk::verification_key> input_key = nullptr) override;
33
34 void add_opening_evaluations_to_transcript(transcript::StandardTranscript& transcript,
35 std::shared_ptr<plonk::proving_key> input_key = nullptr,
36 bool in_lagrange_form = false) override;
37
38 private:
39 plonk::commitment_open_proof kate_open_proof;
40};
41
42extern template class KateCommitmentScheme<standard_settings>;
43extern template class KateCommitmentScheme<ultra_settings>;
46
47} // namespace proof_system::plonk
Definition: commitment_scheme.hpp:10
Definition: kate_commitment_scheme.hpp:6
Definition: work_queue.hpp:11
Definition: transcript_wrappers.hpp:13
Definition: widget.bench.cpp:13
Definition: commitment_open_proof.hpp:8