9#include "barretenberg/plonk/proof_system/verification_key/verification_key.hpp"
13 static constexpr size_t SECURITY_PARAMETER_SIZE = 32;
14 static constexpr size_t PRNG_OUTPUT_SIZE = 32;
16 static std::array<uint8_t, PRNG_OUTPUT_SIZE> hash(std::vector<uint8_t>
const& buffer);
20 static constexpr size_t SECURITY_PARAMETER_SIZE = 16;
21 static constexpr size_t PRNG_OUTPUT_SIZE = 32;
23 static std::array<uint8_t, PRNG_OUTPUT_SIZE> hash(std::vector<uint8_t>
const& input);
26enum HashType { Keccak256, PedersenBlake3s };
35 static constexpr size_t PRNG_OUTPUT_SIZE = 32;
37 std::array<uint8_t, PRNG_OUTPUT_SIZE> data;
52 const HashType hash_type = HashType::Keccak256,
53 const size_t challenge_bytes = 32)
54 : num_challenge_bytes(challenge_bytes)
56 , manifest(input_manifest)
59 current_challenge.data = {};
73 Transcript(
const std::vector<uint8_t>& input_transcript,
75 const HashType hash_type = HashType::Keccak256,
76 const size_t challenge_bytes = 32);
78 Manifest get_manifest()
const {
return manifest; }
80 void add_element(
const std::string& element_name,
const std::vector<uint8_t>& buffer);
86 std::array<uint8_t, PRNG_OUTPUT_SIZE>
get_challenge(
const std::string& challenge_name,
const size_t idx = 0)
const;
91 const std::string& challenge_map_name)
const;
95 std::vector<uint8_t>
get_element(
const std::string& element_name)
const;
109 size_t current_round = 0;
110 size_t num_challenge_bytes;
112 std::map<std::string, std::vector<uint8_t>> elements;
114 std::map<std::string, std::vector<challenge>> challenges;
116 challenge current_challenge;
119 std::map<std::string, int> challenge_map;
Definition: manifest.hpp:11
Definition: transcript.hpp:34
std::array< uint8_t, PRNG_OUTPUT_SIZE > get_challenge(const std::string &challenge_name, const size_t idx=0) const
Definition: transcript.cpp:308
std::vector< uint8_t > get_element(const std::string &element_name) const
Definition: transcript.cpp:392
void compute_challenge_map()
Definition: transcript.cpp:111
Transcript(const Manifest input_manifest, const HashType hash_type=HashType::Keccak256, const size_t challenge_bytes=32)
Definition: transcript.hpp:51
std::array< uint8_t, PRNG_OUTPUT_SIZE > get_challenge_from_map(const std::string &challenge_name, const std::string &challenge_map_name) const
Definition: transcript.cpp:351
size_t get_num_challenges(const std::string &challenge_name) const
Definition: transcript.cpp:377
std::vector< uint8_t > export_transcript() const
Definition: transcript.cpp:422
int get_challenge_index_from_map(const std::string &challenge_map_name) const
Definition: transcript.cpp:324
bool has_challenge(const std::string &challenge_name) const
Definition: transcript.cpp:337
void apply_fiat_shamir(const std::string &challenge_name)
Definition: transcript.cpp:171
size_t get_element_size(const std::string &element_name) const
Definition: transcript.cpp:405
void mock_inputs_prior_to_challenge(const std::string &challenge_name, size_t circuit_size=1)
Mock prover transcript interactions up to fiat-shamir of a given challenge.
Definition: transcript.cpp:133
Definition: verification_key.hpp:48
Definition: transcript.hpp:19
Definition: transcript.hpp:12