The 100ms Tax: Block Builders and MEV

How block builders extract value and why your transactions might be slower than they need to be.

Intermediate 20 min read Expert Version →

🎯 What You'll Learn

  • Understand the block builder supply chain
  • Learn how builders extract MEV
  • Identify the latency tax on transactions
  • Explore MEV protection strategies

📚 Prerequisites

Before this lesson, you should understand:

The Hidden Transaction Tax

When you submit a transaction, you pay more than just gas fees:

Gas fee: $2 (you see this)
MEV extraction: $5-50 (you don't see this)
Delay tax: ~100ms (costs you in execution)

Block builders profit from ordering your transactions. This lesson explains how.


What You’ll Learn

By the end of this lesson, you’ll understand:

  1. Block builder role - Who builds blocks and why
  2. MEV extraction methods - Frontrunning, sandwiching, arbitrage
  3. The 100ms tax - Why transactions delay costs you money
  4. Protection strategies - How to minimize MEV extraction

The Foundation: Block Production Supply Chain

Post-merge Ethereum:

Users submit txs → Mempool → Block Builders → Proposers → Validators

                     (Builders extract MEV)
                     (Builders pay proposers)

Builders assemble the most profitable block possible. Proposers select the highest-paying builder. Validators attest.


The “Aha!” Moment

Here’s what makes the current system problematic:

Builders have 12 seconds to see your transaction before it’s included. In that time, they can sandwich it, frontrun it, or delay it to extract more value. The “100ms tax” is real-waiting 100ms to see more transactions lets builders extract more MEV from the block.

Your transaction is a data point for someone else’s profit.


How Builders Extract Value

Sandwich Attack

Your tx: Swap 10 ETH for USDC on Uniswap

Builder sees your tx and adds:
1. Buy USDC (price goes up)
2. YOUR TX (you get worse rate)
3. Sell USDC (builder profits)

Your cost: ~0.5-2% worse execution
Builder profit: $10-50

Frontrunning

You find an arbitrage opportunity:
- Buy on Exchange A: $1000
- Sell on Exchange B: $1010
- Profit: $10

Builder sees your pending tx, copies it, and executes first.
Builder profit: $10
Your profit: $0

Just-In-Time (JIT) Liquidity

Your tx: Large swap on Uniswap V3

Builder provides liquidity exactly in your range
Earns fees from YOUR trade
Removes liquidity immediately after

Not "harmful" but captures value from you

The 100ms Delay

Why do builders wait?

Block time: 12 seconds
Builder constructs block at: second 11.9

By waiting 100-200ms:
- More transactions arrive
- More MEV opportunities visible
- More profit extractable

Cost to you: Your urgent transaction sits while builder waits

This is called timing games. Builders race to build at the last moment.


Common Misconceptions

Myth: “MEV only affects large transactions.”
Reality: Sandwiching is profitable on trades as small as $500. Any DEX swap is a target. The math works at scale even on small individual extractions.

Myth: “Private mempools solve MEV.”
Reality: Private mempools (Flashbots Protect) hide your transaction from public mempool, but the builder still sees it. You’re trusting the builder not to extract. Better than public, but not zero MEV.

Myth: “MEV will go away as Ethereum improves.”
Reality: MEV is structural to blockchains with ordered transactions. It can be redistributed (to validators, to users) but not eliminated. Some MEV (arbitrage) is healthy for markets.


Protection Strategies

1. Use Private Mempools

# Submit via Flashbots Protect
from flashbots import FlashbotsProvider

# Your tx never hits public mempool
flashbots = FlashbotsProvider(your_wallet)
bundle = [{"signed_transaction": signed_tx}]
result = flashbots.send_private_transaction(bundle)

2. Set Tight Slippage

// On Uniswap
const amountOutMin = expectedOutput * 0.99;  // 1% slippage max

// Sandwichers need slippage to profit
// Tighter slippage = less extractable value

3. Use MEV-Resistant DEXs

CoW Swap: Batch auctions, no frontrunning
Flashbots Protect: Private transactions
UniswapX: Order flow auctions

4. Break Up Large Trades

# Instead of:
swap(10_000_USDC)

# Do:
for _ in range(10):
    swap(1_000_USDC)
    time.sleep(random.uniform(10, 60))

Builder Market Share

Current builder landscape (2024):

BuilderMarket ShareMEV Style
beaverbuild~40%Aggressive
rsync-builder~20%Aggressive
flashbots~15%Ethical (claims)
blocknative~10%Mixed
Others~15%Various

Most blocks are built by a few large builders.


Future: MEV Redistribution

Research directions:

Proposer-Builder Separation (PBS): Already live
MEV Burn: Return MEV to ETH holders (EIP proposed)
Order Flow Auctions: Users get paid for their flow
Encrypted Mempools: Hide tx contents until inclusion

Practice Exercises

Exercise 1: Track Your MEV Lost

Use MEV Blocker or Flashbots Protect for 1 week.
Compare:
1. Estimated MEV protected
2. Quality of execution
3. Transaction inclusion time

Exercise 2: Analyze a Sandwich

Find a sandwich attack on Etherscan.
Trace:
1. Frontrun tx hash
2. Victim tx hash
3. Backrun tx hash
4. Profit extracted

Exercise 3: Builder Selection

Look at recent blocks on beaconcha.in.
1. Which builders are winning?
2. What's the average builder payment?
3. Any patterns in timing?

Key Takeaways

  1. Builders see before you execute - Your pending tx is their data
  2. The 100ms tax is real - Timing games delay your transactions
  3. Protection exists - Private mempools, tight slippage, batch auctions
  4. MEV is structural - Redistribute it, don’t try to eliminate it

What’s Next?

🎯 Continue learning: What is MEV?

🔬 Expert version: The 100ms Tax

Now you understand how block builders profit from your transactions. 🧱

Questions about this lesson? Working on related infrastructure?

Let's discuss