The 100ms Tax: Block Builders and MEV
How block builders extract value and why your transactions might be slower than they need to be.
🎯 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:
- Block builder role - Who builds blocks and why
- MEV extraction methods - Frontrunning, sandwiching, arbitrage
- The 100ms tax - Why transactions delay costs you money
- 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):
| Builder | Market Share | MEV 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
- Builders see before you execute - Your pending tx is their data
- The 100ms tax is real - Timing games delay your transactions
- Protection exists - Private mempools, tight slippage, batch auctions
- 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