Ethereum Background
Bloom filter - Wikipedia
PoW ETH diagram
Merkle Patricia Trie
Uncle Mining, an Ethereum Consensus Protocol Flaw
Using Merkle Trees for NFT Whitelists
EVM Tracing Intro
Merkle Proofs Tutorial
What happens when you send 1 DAI
Understanding the ethereum trie
Road to functional light clients
Impls
EVM
EVM Internals Part 1
EVM Internals Part 2
EVM Codes - An Ethereum Virtual Machine Opcodes Interactive Reference
Playdate with the EVM
Understanding EVM bytecode
Ethereum Analysis (using old tools)
Contract Storage
Deep dive into storage layout extractor see Tools
DeFi/Apps
Ethereum Research / Roadmap
How Monad Works
Verkle Trees
[Verkle Trees for Eth1](Verkle trie for Eth1 state | Dankrad Feist)
0xEmperor’s Map of Ethereum
Rollups
An Incomplete Guide to Rollups
Optimistic rollups are brilliant (and the state of blockchains)
Making Sense of Rollups
(Almost) Everything you need to know about Optimistic Rollup
How does Optimism’s Rollup really work? or live
An Incomplete Guide to Rollups
Inside Arbitrum Nitro reread
Security
Data Availability
Celestia — The Foundation of a Modular Blockchain World
Rollups on Celestia
Cosmos Background
Transaction Lifecycle
IBC Overview
Tendermint Key Management System (TMKMS)
Bridges
Solana Background
Proof of history: what is it good for? is a critique on Solana’s PoH mechanism.
What is Firedancer
Solana State History
Solana Proof of Stake + Proof of History Primer
MEV, QUIC and QoS..
Gulf Stream (Mempool)
Solana Validator 101: Transaction Processing
Solana 101
Geyser
Solana Reading List by Mert
Firedancer Reliability
Turbine: Block Propagation on Solana
Other
MegaEth
Block-STM vs Sealevel
Block-STM is a parallel execution engine for smart contracts, built around the principles of Software Transactional Memory.
Data Availability
A note on data availability and erasure coding
RPC
Tools
Tutorials
Reading Raw EVM Calldata
Solidity By Example
PoS
Weak Subjectivity is a new security change in PoS.
Weakly subjective: a new node coming onto the network with no knowledge except (i) the protocol definition, (ii) the set of all blocks and other “important” messages that have been published and (iii) a state from less than N blocks ago that is known to be valid can independently come to the exact same conclusion as the rest of the network on the current state, unless there is an attacker that permanently has more than X percent control over the consensus set.
Networks
- Goerli was a PoA chain that is now going to be PoS.
Clients
Consensus layer is responsible for consensus (e.g. block seal validity, fork choice). Beacon chain clients run here.
Execution layer is responsible for transaction bundling and execution, and state management. Pre-merge PoW clients run here.
Each beacon block contains an execution payload. Execution payload contains a list of transactions and other data required to execute and validate the payload. There is a validity condition of beacon block with respect to the payload, i.e. if the payload is invalid then the beacon block is considered invalid too.
In order to check this validity condition, consensus-layer sends the payload to the execution-layer which does the following. Assembles an execution block (former PoW block with stubbed ethash fields), verifies pre-conditions, executes transactions and verifies post-conditions. Then the result is sent back to the consensus-layer.
After execution, block is inserted into the execution chain (execution-layer blockchain, a pre-merge ethereum chain) and the post-block state is stored into execution state storage (ethereum state storage as we know it today). Execution chain is used to serve JSON-RPC requests.>)
- Geth (Go)
- Besu (Java)
- Parity (Rust; defunct)
- Lighthouse is a consensus client. (Rust)
- Lodestar is a consensus client. (TS)
Eth2
MEV
Proposer/block-builder separation (PBS):
Proposer/block builder separation-friendly fee market designs
Instead of the block proposer trying to produce a revenue-maximizing block by themselves, they rely on a market where outside actors that we call block-builders produce bundles consisting of complete block contents and a fee for the proposer, and the proposer chooses the bundle with the highest fee. The proposer’s choice is reduced to picking the highest-fee bundle, an algorithm so simple that in a decentralized pool it can even be done inside an MPC to prevent cheating.
Deep Dive
Sharding
EIP-4844 or “danksharding”
Storage
Understanding Ethereum Smart Contract Storage
- Each smart contract has storage in the form of an array of 2256 32-byte values, all initialized to zero.
- Zeros are not explicitly stored, so setting a value to zero reclaims that storage.
- Solidity locates fixed-size values at reserved locations called slots, starting at slot 0.
- Solidity exploits the sparseness of storage and the uniform distribution of hash outputs to safely locate dynamically-sized values.
EVM & ABI
EVM bytecode runs on EVM. The contract ABI is an interface to interact with the EVM bytecode. Contract ABI defines function names and arg data types. It is used to encode calls for the EVM or read data.
Delegatecall allows contract A to execute contract B’s code with Contract A’s storage, msg.sender and msg.value.
ZkEVM
The different types of ZK-EVMs
EIPs
EIP-3074: AUTH and AUTHCALL opcodes
EIP-2718
Solidity
Anatomy of a unsafe lang
ETH Security
Community Standards
Community Products
Blocknative offers a mempool explorer for listening to certain events in the mempool.
Meta-Transaction Relayers
Meta-transactions (or gasless transactions) allow a user to send a transaction without paying for gas fees. A relayer, third-party accepts a user’s signed message which maps to a valid transaction. The Relayer invoices the contract owner to pay for the gas fees.
Open Gas Station Network
Biconomy
OpenZeppelin Defender
Transactions
Misc
GasToken is a way to tokenize gas by taking advantage of storage refund in Ethereum.