1 / 0
navigateF fullscreen

EVM Scaling

An Interactive Introduction

Build intuition for what EVM scaling actually means, how different solutions work, and how to evaluate performance claims.

Start Learningor scroll down
Introduction

The Execution Bottleneck

With PeerDAS, data availability is no longer the limit. Now what?

The Promise

  • Projects claim "10,000+ TPS"
  • Impressive benchmark numbers
  • "Blazing fast" execution

The Reality

  • Slow in production with real workloads
  • Benchmarks use unrealistic tx mixes
  • No shared model to compare solutions

We need a shared mental model for understanding EVM scaling — one that makes it easy to reason about tradeoffs and compare solutions honestly.

Introduction

What We'll Build Together

A framework for understanding and comparing EVM scaling approaches

1

The Model

Resources, transactions, and block packing

2

Scaling Solutions

Different ways to grow the bars

3

Fee Markets

Why scaling alone isn't enough

4

Projects

Real implementations compared

🎯

Our Goal

Build intuition for what scaling means, so you can evaluate claims and understand tradeoffs — not just accept benchmark numbers at face value.

🎪

Bonus: Pump Your Numbers

Learn how to game benchmarks for your marketing team. (For educational purposes only!)

The Model

The Path to Teragas

What if we could just... increase the gas limit?

Current Ethereum Gas Limit
30 Mgas
The scaling roadmap is simple:
(Click the button. It's that easy, right?)
The Model

Transactions

Different transaction types consume different amounts of each resource.

Select Transaction Type

Resource Consumption per TX

💸

ETH Transfer

Simple ETH transfer between accounts. Minimal state access.

EVM Compute0.021 Mgas
State Access100 ops
Merklization4 hashes
Block Verification0.021 Mgas
Block Distribution0 MB
State Growth0 KB
History Growth0.11 KB
Proof Generation0.021 Mgas
Parallelizable
Yes (no hot slots)
% of Mainnet TXs
25%
Demand Volatility
30%
Price Elasticity
70%

Notice how swaps consume much more CPU gas but similar state access as transfers.

The Model

Pack a Block

Add transactions and watch which resources hit their limits first

Click transactions to add them to the block:
Left-click: +10 transactions | Right-click: -10 transactions
Resource consumption (per second):
⚙️EVM Compute
0.00 / 2.5 Mgas/sec
💾State Access
0.00 / 50000 ops/sec
🌳Merklization
0.00 / 100000 hashes/sec
Block Verification
0.00 / 2.5 Mgas/sec
📡Block Distribution
0.00 / 10 MB/sec
📈State Growth
0.00 / 50 KB/sec
📚History Growth
0.00 / 100 KB/sec
🔐Proof Generation
0.00 / 2.5 Mgas/sec
💡

Try different transaction mixes!

Adding ETH transfers mostly stresses state access. Uniswap swaps are heavy on EVM compute. Rollup batches hit block distribution limits.

Scaling Solutions

Growing the Bars

Click any resource to increase its capacity. This is what scaling means.

Average Improvement1.0x
No resources scaled yet
💡

This is Scaling

Each scaling technique targets specific resources. Parallel execution improves EVM compute. Better databases improve state access. ZK proofs help verification.

→ Check the Scaling Matrix to see which techniques improve which resources!

Scaling Solutions

The Scaling Matrix

How each technology improves different resources

Solution
⚙️
EVM
💾
State
🌳
Merklization
Block
📡
Block
📈
State
📚
History
🔐
Proof
Execution
🔀Parallel Execution
+++++------
🔥State WarmingLIVE
+++------
🎯Speculative Mempool ExecLIVE
+++------
Custom PrecompilesLIVE
++--++---+
🚀JIT/Native ContractsLIVE
++--++----
State Management
🗃️TriedbLIVE
-+++++--+--
State Expiry
-++--+++--
Data & History
📚Historical State IndexingLIVE
------+-
Proving
🔮ZK Light Clients
---+++--+++
🔧RISC-V VM
+++------+++
Protocol
⏱️Delayed State Root
--+++-----
📋Block Access Lists
---+++----
Impact levels:+ Minor (~50% boost)++ Significant (~3x boost)+++ Major (10x+ boost)
Click on any solution to see details
Fee Markets

Scaling Up Resources Is Not Enough

Low-value transactions can consume all resources, blocking higher-value activity

Click transactions to add them. Notice the fee each pays:
Left-click: +10 transactions | Right-click: -10 transactions
0
In Block
0
Waiting
0
Gwei Collected
Resource Usage:
⚙️EVM Compute
0%
💾State Access
0%
🌳Merklization
0%
Block Verification
0%
📡Block Distribution
0%
📈State Growth
0%
📚History Growth
0%
🔐Proof Generation
0%
💡

Try this:

Add XEN mints until state-access fills up. Then keep clicking to see backpressure!

Fee Markets

The Market Clearing Price

The ideal state: 100% utilization with zero backpressure

What is Market Clearing?

The market clearing price is the fee level where:

  • All block resources are fully utilized (100%)
  • No transactions are waiting (zero backpressure)
  • Supply exactly matches demand

Price Too Low

Utilization: 100%
+50
Backpressure

Block is full but transactions are waiting. Fee should rise to reduce demand.

Price Too High

Utilization: 40%
0
Backpressure

No backpressure but block space is wasted. Fee should fall to attract more demand.

Market Clearing Price

Utilization: 100%
0
Backpressure

Perfect equilibrium: every transaction that wants to pay the fee gets included, and no block space goes unused.

Why This Matters

💰
Maximum Revenue
Validators/sequencers collect the most fees when blocks are full
Best UX
Users who pay the fee get included immediately - no waiting
📊
Efficient Allocation
Resources go to transactions that value them most
💡
EIP-1559's Goal

Automatically adjust the base fee to find this market clearing price. When blocks are full, fee rises. When empty, fee falls.

Fee Markets

Understanding Demand Curves

How price affects the quantity of transactions that want block space

The Core Insight

When block space prices are low, many transactions want to be included. When prices are high, only the most valuable transactions will pay.

This creates a downward-sloping demand curve: as price increases, quantity demanded decreases.

Why Demand Fluctuates

  • NFT drops create sudden spikes in demand
  • Market volatility drives DeFi arbitrage
  • Time of day affects user activity
  • Network events (airdrops, launches) spike demand
💡

The Challenge

The blockchain needs to find the right price that fills blocks efficiently without creating long queues. Too low = congestion. Too high = wasted capacity.

Interactive Demand Curve

Quantity (Block Space Used)Price (gwei)30609025%50%75%100%DemandPrice: 40 gwei16% filled
Demand LevelMedium

Shift the entire demand curve up or down

Current Price40 gwei

See how price affects block utilization

Demand Curve
Price Line
Equilibrium
Fee Markets

EIP-1559: How It Works

A mechanism that adjusts prices based on network congestion

The Mechanism

Target: Blocks should be 50% full on average.

If block > 50% full: Base fee increases (up to 12.5%)

If block < 50% full: Base fee decreases (up to 12.5%)

Base fee is burned: Not paid to validators

Why This Works

  • Users know roughly what to pay (just check current base fee)
  • Fee responds to demand automatically
  • Burning base fee prevents validator manipulation
  • Can still spike during sudden demand surges
Demand LevelMedium

Adjust to simulate different network conditions

Live Simulation

Current Base Fee
20.0 gwei
Blocks Simulated
0
Supply & Demand Supply Demand
Actual: 50%Gas UsagePrice (gwei)Supply(target)Demand180%50%100%
The red dot shows the equilibrium price where supply meets demand
Base Fee History
⚠️

Limitation

EIP-1559 treats all gas as equal. But a block full of simple transfers vs. a block full of complex DeFi calls stress different resources. This is why multidimensional fee markets are being researched.

Fee Markets

The Bottleneck Problem

When mixing transaction types, one resource becomes the limiting factor

Transaction Mix

Adjust the mix of transaction types in the mempool:

CPU-heavyIO-heavy
DEX swaps, transfersRollup batches
Demand LevelMedium

Current Bottleneck

CPU
IO

Effective throughput: 110 TPS

The Problem: Whichever resource fills up first limits the entire block, even if other resources have capacity remaining.

Multiple Supply Curves

CPUIODemand35 gweiQuantity (TPS)Price (gwei)110 TPS
CPU limit
IO limit
Bottleneck
💡

The Solution: Multidimensional Fee Markets

Instead of one gas price, have separate prices for each resource. This way, IO-heavy transactions pay more for IO but less for CPU, and vice versa. The result: better resource utilization and more efficient block packing.

Fee Markets

Fee Market Improvements

Technologies to price transactions more accurately

💡

Beyond scaling resources, we need to price them correctly. Mispriced operations lead to inefficient block packing and unfair fee distribution.

Interactive Simulation

TPS Simulator

Compare how different scaling approaches handle the same demand

Mode:
Scenario:

Simulation A

2.5 Mgas/s
Scaling1x
TPS
0
Util
0%
Fee
20g
Pending
0
Press Start
Peak: 0 TPSAvg: 0.0 TPSScale: 1

Simulation B

10.0 Mgas/s
Scaling4x
TPS
0
Util
0%
Fee
20g
Pending
0
Press Start
Peak: 0 TPSAvg: 0.0 TPSScale: 1
💡

Compare Mode

Watch both simulations run simultaneously. Notice how the scaled version handles demand spikes better with lower fees and higher throughput.

The Game

Pump Your Numbers

Get those mass-marketable TPS numbers

Step 1: Pick Your "Representative" Workload

Pro tip: simpler = faster = bigger numbers

Avg gas per tx: 21,000(lower = more TPS!)
Parallelism: 100%

Step 2: Crank Up Those Threads

More cores = more TPS. Who's counting anyway?

Parallel Execution Threads1
1 (realistic)100 (optimistic)10,000 (lol)
Raw threads: 1
Effective threads: 1.0
🎰
Ready to cook some benchmarks?

Pick your workload, set your threads, and let's see how impressive we can make those numbers look.

🤫

Okay but seriously

TPS without context is like measuring a car's speed... downhill... with the engine off. Next time someone brags about TPS, ask: What transactions? What hardware? What's the catch?

What's Next

Let's Build Together

Now we have a shared mental model

🧠

Shared Mental Model

Now that we understand the 8 resources, scaling tradeoffs, and fee market dynamics, we can prioritize and divide & conquer!

💬

Let's Talk!

I'd love to discuss this stuff with you. Whether you're working on client implementations, L2 scaling, or fee market research — please reach out!

@karl_dot_tech— Karl Floersch

Especially Interested In...

How can we fix the fee markets so that client software improvements are reflected in the transaction fees of the network?

If we can properly price each resource, client teams would be directly rewarded for their optimization work.

Built with 💜 for the Ethereum community

View source on GitHub

More Coming Soon

Project comparisons and the infamous "Pump Your Numbers" section are in development.