Introduction to Ethereum Virtual Machine (EVM), From Distributed Ledger to World Computer.
One of the most important evolutions that Ethereum has brought is programmability on blockchains. This is made possible with the use of Ethereum Virtual Machine or EVM.
Although the term EVM is known to many – how EVM really works and how EVM fits into the overall workings of the Ethereum Blockchain is not understood widely.
Also, many blockchains, L2s and other related systems claim to be EVM compatible – what does it mean? We cannot understand EVM compatibility without understanding EVMs,
To understand EVM, we need to understand virtual machines, distributed systems, blockchains, smart contract execution on Ethereum etc.
So, this course touches upon all these topics.
To be clear, this is not a programming course but this course requires some prior understanding of software systems.
So, let us dive into it.
Some topics we will touch upon in this course among others:
What is a Virtual Machine?
How do VMs work?
Benefits and Limitations of VMs
Process vs System Virtual Machines
What is a Distributed System?
Benefits and Limitation of Distributed Systems
Clients and Nodes
Models of Distributed Systems – Master-Slave and Peer-to-Peer
Distributed vs Decentralized Systems
Distributed Systems and Client Diversity
What is a Blockchain?
Understanding Blocks
State and State Transition
Blockchain Hashing – Hash Tree and Root
Consensus in Blockchains
Accounts and Smart Contracts
Network Fee – Gas
Difference between Bitcoin and Ethereum
What is Ethereum?
Ethereum Accounts – EOA and CA
Ethereum Transactions
Nonce
Contract Creation and Message Calls
Account State and World State
Smart Contracts on Ethereum and Solidity
Smart Contract Compilation – Opcodes
Role of EVM in Ethereum
What is EVM?
Stack and Stack Machine
EVM Architecture
EVM Code and Smart Contract Execution
Gas Accounting