Tables
Our EVM statements are decomposed into several STARK tables, each corresponding to some coprocessor capable of handling specific operations, orchestrated by a Central Processing Unit.
Each coprocessor execution can be proven independently and concurrently, and a global check (via our cross-table lookups) enforces consistency of values being shared across multiple coprocessors.
Below is a depiction of the current decomposition of EVM statements execution1:
%%{init: {'theme':'dark'}}%%
flowchart TB
A[Arithmetic]
BP[BytePacking]
C[CPU]
subgraph KK [ Keccak Hash ]
direction LR
K[Keccak]
KS[KeccakSponge]
K --- KS
end
L[Logic]
M[Memory]
subgraph MM [ zk-continuations ]
MB[MemBefore]
MA[MemAfter]
MB --- MA
end
C --- A
C --- BP
C --- KK
C --- L
C --- M
M --- MM
1
This diagram is simplified, and does not represent all interactions between co-processors.