Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bbapi_ultra_honk.hpp
Go to the documentation of this file.
1#pragma once
14#include <cstdint>
15#include <map>
16#include <vector>
17
18namespace bb::bbapi {
19
21 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitComputeVk";
22
23 struct Response {
24 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitComputeVkResponse";
25
26 std::vector<uint8_t> bytes; // Serialized verification key
27 std::vector<uint256_t> fields; // VK as field elements (unless keccak, then just uint256_t's)
28 std::vector<uint8_t> hash; // The VK hash
30 bool operator==(const Response&) const = default;
31 };
32
36 Response execute(const BBApiRequest& request = {}) &&;
37 bool operator==(const CircuitComputeVk&) const = default;
38};
39
48 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitProve";
49
64
66 std::vector<uint8_t> witness;
69 Response execute(const BBApiRequest& request = {}) &&;
70 bool operator==(const CircuitProve&) const = default;
71};
72
79 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitStats";
80
81 struct Response {
82 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitInfoResponse";
83
84 uint32_t num_gates{};
85 uint32_t num_gates_dyadic{};
86 uint32_t num_acir_opcodes{};
87 std::vector<uint32_t> gates_per_opcode;
89 bool operator==(const Response&) const = default;
90 };
91
96 Response execute(const BBApiRequest& request = {}) &&;
97 bool operator==(const CircuitStats&) const = default;
98};
99
105 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitVerify";
106
107 struct Response {
108 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitVerifyResponse";
109
112 bool operator==(const Response&) const = default;
113 };
114
115 std::vector<uint8_t> verification_key;
120 Response execute(const BBApiRequest& request = {}) &&;
121 bool operator==(const CircuitVerify&) const = default;
122};
123
132 static constexpr const char MSGPACK_SCHEMA_NAME[] = "VkAsFields";
133
134 struct Response {
135 static constexpr const char MSGPACK_SCHEMA_NAME[] = "VkAsFieldsResponse";
136
137 std::vector<bb::fr> fields;
139 bool operator==(const Response&) const = default;
140 };
141
142 std::vector<uint8_t> verification_key;
144 Response execute(const BBApiRequest& request = {}) &&;
145 bool operator==(const VkAsFields&) const = default;
146};
147
154 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaVkAsFields";
155
156 struct Response {
157 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaVkAsFieldsResponse";
158
159 std::vector<bb::fr> fields;
161 bool operator==(const Response&) const = default;
162 };
163
164 std::vector<uint8_t> verification_key;
166 Response execute(const BBApiRequest& request = {}) &&;
167 bool operator==(const MegaVkAsFields&) const = default;
168};
169
178 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaAppVkAsFields";
179
180 struct Response {
181 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaAppVkAsFieldsResponse";
182
183 std::vector<bb::fr> fields;
185 bool operator==(const Response&) const = default;
186 };
187
188 std::vector<uint8_t> verification_key;
190 Response execute(const BBApiRequest& request = {}) &&;
191 bool operator==(const MegaAppVkAsFields&) const = default;
192};
193
202 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaKernelVkAsFields";
203
204 struct Response {
205 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaKernelVkAsFieldsResponse";
206
207 std::vector<bb::fr> fields;
209 bool operator==(const Response&) const = default;
210 };
211
212 std::vector<uint8_t> verification_key;
214 Response execute(const BBApiRequest& request = {}) &&;
215 bool operator==(const MegaKernelVkAsFields&) const = default;
216};
217
223 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaZKVkAsFields";
224
225 struct Response {
226 static constexpr const char MSGPACK_SCHEMA_NAME[] = "MegaZKVkAsFieldsResponse";
227
228 std::vector<bb::fr> fields;
230 bool operator==(const Response&) const = default;
231 };
232
233 std::vector<uint8_t> verification_key;
235 Response execute(const BBApiRequest& request = {}) &&;
236 bool operator==(const MegaZKVkAsFields&) const = default;
237};
238
243 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitWriteSolidityVerifier";
244
245 struct Response {
246 static constexpr const char MSGPACK_SCHEMA_NAME[] = "CircuitWriteSolidityVerifierResponse";
247
248 std::string solidity_code;
250 bool operator==(const Response&) const = default;
251 };
252
253 std::vector<uint8_t> verification_key;
256 Response execute(const BBApiRequest& request = {}) &&;
257 bool operator==(const CircuitWriteSolidityVerifier&) const = default;
258};
259
260} // namespace bb::bbapi
Shared type definitions for the Barretenberg RPC API.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
static constexpr const char MSGPACK_SCHEMA_NAME[]
SERIALIZATION_FIELDS(bytes, fields, hash)
bool operator==(const Response &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
Response execute(const BBApiRequest &request={}) &&
SERIALIZATION_FIELDS(circuit, settings)
bool operator==(const CircuitComputeVk &) const =default
A circuit to be used in either ultrahonk or Chonk proving.
A circuit to be used in either ultrahonk or chonk verification key derivation.
Contains proof and public inputs. Both are given as vectors of fields. To be used for verification....
CircuitComputeVk::Response vk
SERIALIZATION_FIELDS(public_inputs, proof, vk)
std::vector< uint256_t > public_inputs
bool operator==(const Response &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
Represents a request to generate a proof. Currently, UltraHonk is the only proving system supported b...
std::vector< uint8_t > witness
Response execute(const BBApiRequest &request={}) &&
static constexpr const char MSGPACK_SCHEMA_NAME[]
ProofSystemSettings settings
SERIALIZATION_FIELDS(circuit, witness, settings)
bool operator==(const CircuitProve &) const =default
SERIALIZATION_FIELDS(num_gates, num_gates_dyadic, num_acir_opcodes, gates_per_opcode)
static constexpr const char MSGPACK_SCHEMA_NAME[]
std::vector< uint32_t > gates_per_opcode
bool operator==(const Response &) const =default
Consolidated command for retrieving circuit information. Combines gate count, circuit size,...
SERIALIZATION_FIELDS(circuit, include_gates_per_opcode, settings)
static constexpr const char MSGPACK_SCHEMA_NAME[]
ProofSystemSettings settings
Response execute(const BBApiRequest &request={}) &&
bool operator==(const CircuitStats &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Verify a proof against a verification key and public inputs.
bool operator==(const CircuitVerify &) const =default
SERIALIZATION_FIELDS(verification_key, public_inputs, proof, settings)
static constexpr const char MSGPACK_SCHEMA_NAME[]
std::vector< uint256_t > proof
ProofSystemSettings settings
std::vector< uint256_t > public_inputs
std::vector< uint8_t > verification_key
Response execute(const BBApiRequest &request={}) &&
bool operator==(const Response &) const =default
Command to generate Solidity verifier contract.
SERIALIZATION_FIELDS(verification_key, settings)
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const CircuitWriteSolidityVerifier &) const =default
Response execute(const BBApiRequest &request={}) &&
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Convert a MegaAppFlavor verification key to field elements.
bool operator==(const MegaAppVkAsFields &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
SERIALIZATION_FIELDS(verification_key)
Response execute(const BBApiRequest &request={}) &&
std::vector< uint8_t > verification_key
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Convert a MegaKernelFlavor verification key to field elements.
bool operator==(const MegaKernelVkAsFields &) const =default
std::vector< uint8_t > verification_key
Response execute(const BBApiRequest &request={}) &&
SERIALIZATION_FIELDS(verification_key)
static constexpr const char MSGPACK_SCHEMA_NAME[]
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Convert a MegaFlavor verification key to field elements representation. Used for private function ver...
SERIALIZATION_FIELDS(verification_key)
std::vector< uint8_t > verification_key
Response execute(const BBApiRequest &request={}) &&
bool operator==(const MegaVkAsFields &) const =default
static constexpr const char MSGPACK_SCHEMA_NAME[]
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Convert a MegaZKFlavor verification key to field elements. Used for the IVC hiding kernel.
SERIALIZATION_FIELDS(verification_key)
std::vector< uint8_t > verification_key
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const MegaZKVkAsFields &) const =default
Response execute(const BBApiRequest &request={}) &&
static constexpr const char MSGPACK_SCHEMA_NAME[]
bool operator==(const Response &) const =default
Convert a verification key to field elements representation. WORKTODO(bbapi): this should become most...
bool operator==(const VkAsFields &) const =default
std::vector< uint8_t > verification_key
SERIALIZATION_FIELDS(verification_key)
static constexpr const char MSGPACK_SCHEMA_NAME[]
Response execute(const BBApiRequest &request={}) &&