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]]
>