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