https://ethereum.org/en/developers/docs/evm/ https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/ https://github.com/ethereumbook/ethereumbook/blob/develop/13evm.asciidoc#evm_architecture https://github.com/ethereumbook/ethereumbook/blob/develop/13evm.asciidoc#evm_opcodes ![[Pasted image 20250228204143.png]] Given an input it produces a deterministic output, therefore is we can formally describe Ethereum as having a state transition function: $Y(S, T) = S'$ Given an old valid state `(S)` and a new set of valid transactions `(T)`, the Ethereum state transition function `Y(S, T)` produces a new valid output state `S'` The state is a ```modified Merkle Patricia Tree```, which keeps all accounts linked by hashes and reducible to a single root hash stored on the blockchain. Transactions are cryptographically signed instructions from accounts. There are two types of transactions: those which result in message calls and those which result in contract creation. ![[Pasted image 20250228204546.png]] > The EVM differs from other "virtual machines" such as QEMU or VirtualBox. These provide a software and hardware abstraction. The EVM is just a computation engine, and provides an abstraction of just computation and storage. > ![[Pasted image 20250301214658.png]] >