|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <bytecode_trace.hpp>
Public Member Functions | |
| void | process_hashing (const simulation::EventEmitterInterface< simulation::BytecodeHashingEvent >::Container &events, TraceContainer &trace) |
| void | process_retrieval (const simulation::EventEmitterInterface< simulation::BytecodeRetrievalEvent >::Container &events, TraceContainer &trace) |
| Process bytecode retrieval events and populate the relevant columns in the trace. Corresponds to bc_retrieval.pil. | |
| void | process_decomposition (const simulation::EventEmitterInterface< simulation::BytecodeDecompositionEvent >::Container &events, TraceContainer &trace) |
| Process bytecode decomposition events and populate the relevant columns in the trace. Corresponds to bc_decomposition.pil. | |
| void | process_instruction_fetching (const simulation::EventEmitterInterface< simulation::InstructionFetchingEvent >::Container &events, TraceContainer &trace) |
Static Public Attributes | |
| static const InteractionDefinition | interactions |
Definition at line 13 of file bytecode_trace.hpp.
| void bb::avm2::tracegen::BytecodeTraceBuilder::process_decomposition | ( | const simulation::EventEmitterInterface< simulation::BytecodeDecompositionEvent >::Container & | events, |
| TraceContainer & | trace | ||
| ) |
Process bytecode decomposition events and populate the relevant columns in the trace. Corresponds to bc_decomposition.pil.
This trace is non memory-aware and does not handle any errors. It populates the columns with bytecode values in a stream or 'sliding window' of DECOMPOSE_WINDOW_SIZE = MAX_INSTRUCTION_SIZE = 37 individual bytes, range checking each byte. It enforces the size of the bytecode by decrementing the bytes_remaining counter. The trace additionally constrains the bytecode as fields by packing in 31 byte segments. These fields are used by the hashing trace to enforce correctness of the bytecode id (= hashed public bytecode commitment).
| events | The container of bytecode decomposition events to process. |
| trace | The trace container. |
Definition at line 37 of file bytecode_trace.cpp.
| void bb::avm2::tracegen::BytecodeTraceBuilder::process_hashing | ( | const simulation::EventEmitterInterface< simulation::BytecodeHashingEvent >::Container & | events, |
| TraceContainer & | trace | ||
| ) |
Definition at line 172 of file bytecode_trace.cpp.
| void bb::avm2::tracegen::BytecodeTraceBuilder::process_instruction_fetching | ( | const simulation::EventEmitterInterface< simulation::InstructionFetchingEvent >::Container & | events, |
| TraceContainer & | trace | ||
| ) |
Definition at line 314 of file bytecode_trace.cpp.
| void bb::avm2::tracegen::BytecodeTraceBuilder::process_retrieval | ( | const simulation::EventEmitterInterface< simulation::BytecodeRetrievalEvent >::Container & | events, |
| TraceContainer & | trace | ||
| ) |
Process bytecode retrieval events and populate the relevant columns in the trace. Corresponds to bc_retrieval.pil.
This trace is non memory-aware and uses a single row per retrieval event to prove success or failure of bytecode retrieval. It largely delegates checks to other traces via lookups (see bc_retrieval.pil). It handles two possible errors:
| events | The container of bytecode retrieval events to process. |
| trace | The trace container. |
Definition at line 250 of file bytecode_trace.cpp.
|
static |
Definition at line 30 of file bytecode_trace.hpp.