If you are a Solidity developer struggling to wrap your head around the Ethereum Virtual Machine (EVM), this one is for YOU.
EVM can be a tricky topic to tackle, but it's also an imperative one if you want to excel in the web3 world as a developer.
As a smart contract developer working on EVM chains, understanding EVM will set you apart from others and help you write more robust, efficient contracts
Because that’s what sets you apart from others & helps you write better, secure & efficient contracts.
While there are a few approaches to learning EVM effectively while being consistent with it for a significant amount of time (𝘢𝘯 𝘢𝘳𝘵𝘪𝘤𝘭𝘦 𝘰𝘯 𝘵𝘩𝘪𝘴 𝘴𝘰𝘰𝘯 𝘪𝘯 𝘮𝘺 𝘯𝘦𝘸𝘴𝘭𝘦𝘵𝘵𝘦𝘳), the very first one is quite imperative, i.e.,
🪄 Understand your current level of expertise in EVM and Get Started.
Last year, I embarked on a journey to learn the core concepts of EVM, low-level opcodes, and advanced Solidity.
I spent hours gathering the right resources, dividing them into specific levels, documenting my own learnings, and also creating an EVM-Opcodes Puzzle Game.
While I'll delve into all the details of my EVM learning journey soon, this one is more about Getting you started with the right resources, ASAP.
Select your EVM Level and Get Started. 👇
Level ZERO: You just heard about EVM
So you have been dabbling around the world of smart contracts and the Ethereum blockchain, and you just came across the fact that there is something called an EVM that lies at the heart of it all.
And, this ignites your curiosity.
Well, you are now officially at the very first step towards learning about this super interesting machine called the Ethereum Virtual Machine.
Moving forward with the next steps is completely your choice but no harm in getting started, right?
- Preethi Kasireddy's Tweet Thread on EVM being Turing Complete
- The ABCs of Ethereum Virtual Machine
- A Beginner's Friendly guide for EVM by BYBIT Learn
- One more Tweet Thread by Preethi on explaining EVM/Ethereum as a State machines
- Another Tweet thread HERE
- Basic Intro to EVM by Matt Hussey
- Getting Deep into EVM by Vaibhav Saini
- What is EVM by Whiteboard Crypto?
Level 1: Understanding EVM Architecture & Components
Alright, now that you have the gist of what EVM is, it's time to move to Step 1.
It must be noted that things do get a bit technical from here but also super interesting.
- Chapter 13: The Ethereum Virtual Machine - Ethereum Book
- EVM from Ethereum official docs HERE
- Components of EVM from evm.codes
- Solomon's Tweet Thread
- Ethereum Explained: THE EVM Jordan McKinney [ A must watch ]
2. EVM - Some Assembly Required by Alex
Level 2: Diving Deep into the world of EVM
At this point, you should have:
- an eagle-eye perspective of what EVM is, and
- A good understanding of some of its core components like stack, memory, storage, etc.
At Level 3, you put all this together and dive in deep into EVM working mechanisms.
This is the most crucial LEVEL and the 2 imperative things to keep in mind at this level are:
Iterations and Patience
Iterations because you might have to (and should ) iterate over the resources linked below multiple times to create a strong mental model around it. Trust me, there is nothing wrong with iterating until you understand adequately.
Patience because it might be frustrating to iterate over the same articles again and again. However, in the end, what matters is whether or not you understand it adequately enough to teach it to other developers.
So be patient, this level will take some time.
Alright, here is the list of resources for this LEVEL. 👇
EVM Article Series
- Openzeppelin's Series
- Part 1 - Introduction
- Part 2 - Runtime vs Creation Bytecode
- Part 3 - Function Selector
- Part 4 - Function Wrappers
- Part 5 - Function Bodies
- Part 6 - The Metadata Hash
2. Noxx's Series
3. Howard's EVM Series
5. Decipher EVM articles
- Journey of Smart Contract from Solidity Code to Bytecode - 1st Section
- Journey of Smart Contract from Solidity Code to Bytecode - 2nd Section
4. Parts from official Solidity Documentation
Stand-alone Articles, Tweet Threads
- On EVM Storage
- Understanding Ethereum Smart Contract Storage by Steve Marx (A must-read)
- A Low-Level Guide To Solidity's Storage Management by Degatchi
- All about Solidity Data Locations - Storage by Jean Cvllr
- Tweet thread on EVM storage by Blaine
- Ethereum EVM Illustrated , an outstanding EVM PPT slides (with diagrams) by Takenobu Tani
- Solidity Tutorial : all about Assembly by Jean Cvllr
- What is the difference between bytecode, init code, deployed bytecode, creation bytecode, and runtime bytecode? - Ethereum Stack Exchange
- Ethereum contract creation code by Je
- EVM: From Solidity to bytecode, memory and storage by Ethereum Engineering Group Meetup
2. Ethereum Under the Hood by ETHWarsaw
3. Demystifying EVM Opcodes from ETHGlobal
Level 3: Playing with EVM and Opcodes
The EVM learning journey is incomplete without testing your knowledge of EVM and Opcodes.
Try these puzzle/CTF games if you believe you are already in LEVEL 4 of the EVM learning curve.
- EVM puzzles by Franco Victorio
- More EVM puzzles by Dalton Sweeney
- EVM puzzles in Curta CTF
- Decipher EVM Puzzles 👇
Get started with your EVM learning journey now.
Hope this was of some help. 😊
Drop your fav EVM resources in the comment.