Skip to content
Gallery
Blockchain One Pager
Share
Explore
Fundamentals

icon picker
Ethereum Virtual Machine (EVM)

EVM exist as one single entity maintained by thousands of connected computers running an Ethereum client.
Every Ethereum node runs on the EVM to maintain consensus across the blockchain.
Ethereum is a distributed state machine. Ethereum's state is a large data structure which holds not only all accounts and balances, but a machine state, which can change from block to block according to a pre-defined set of rules, and which can execute arbitrary machine code. The specific rules of changing state from block to block are defined by the EVM.
image.png
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', Y(S, T)= S'
【The state here is more like state machine in Statistics, like Markov chains】

State

The state is an enormous data structure called a modified Merkle Patricia Trie, which keeps all accounts linked by hashes and reducible to a single root hash stored on the blockchain.

Transactions

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.
Contract creation results in the creation of a new contract account containing compiled smart contract bytecode. Whenever another account makes a message call to that contract, it executes its bytecode.
image.png
All Ethereum clients include an EVM implementation. Additionally there are multiple standalone implementations, including:
• Py-EVM - Python
• evmone - C++
• ethereumjs-vm - JavaScript
• eEVM - C++
• Hyperledger Burrow - Go
• hevm - Haskell
As Ethereum has taken the head start on smart contracts, many alternative blockchain platforms are ensuring that they are Solidity (or ERC-20) compatible, thus allowing smart contracts to be easily ported from Ethereum into their new blockchain networks.

EVM compatible

EVM is completely isolated meaning the code inside the EVM has no access to network, file system or other processes.
Ethereum has two types of accounts: Externally Owned Accounts (EOA) and Contract Accounts, both of which are treated equally under the EVM.
EOAs are controlled by private keys, meanwhile contract accounts are stored in the smart contracts, also known as smart wallets.
Most of the source code for using smart contracts is done using programming language from Solidity.
Being EVM-compatible is basically how Binance Smart Chain has become so big.
image.png
As Ethereum has taken the head start on smart contracts, many alternative blockchain platforms are ensuring that they are Solidity (or ERC-20) compatible, thus allowing smart contracts to be easily ported from Ethereum into their new blockchain networks.
In short, EVMs are a level of abstraction between the executing code and the executing machine. It means that the code developers write gets compiled into EVM bytecode, and the blockchain then runs EVM code when executing smart-contracts. EVM is the leading standard for smart-contract development.
With EVM compatibility, developers can build the same way that they would do on Ethereum, and benefit from the same tools and applications.

Bibliography:
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.