freecoding.school100% FREE · NO SIGNUP
The EVM CoreISSUE #10 of 48

proposer-builder separation · in-protocol pbs

SoliaVSThe Reentrancy Reaper
Solia saysProposer-builder separation has the proposer sign a builder’s block HEADER first and receive the full body only on reveal — concentrating MEV expertise in builders while keeping proposer revenue.

Proposer-builder separation (PBS) carves out MEV extraction from block proposing. Builders assemble blocks optimized for MEV; proposers (validators) auction off their slot to the highest-paying builder by signing that builder’s block header. The builder reveals the block body only after the proposer commits — so the proposer cannot copy and steal the MEV strategy.

Today this runs out-of-protocol via MEV-Boost and trusted relayers. In-protocol PBS (ePBS) is on the roadmap: the protocol itself enforces the commitment cryptographically, dropping the relayer trust assumption. The demo walks the three-step flow.

Power-ups you unlock

The Reentrancy Reaper attacks — common mistakes

Boss battleWalk the PBS flow for three competing builders and identify which header the proposer signs.

Example code

<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre id="o"></pre>
<script>
const builders = [
  { id:'B1', bid: 0.05, header:'0xabc...' },
  { id:'B2', bid: 0.08, header:'0xdef...' },
  { id:'B3', bid: 0.04, header:'0x123...' }
];
const log = [];
log.push('STEP 1 — builders bid headers:');
for(const b of builders) log.push('  ' + b.id + ' bid ' + b.bid + ' ETH for header ' + b.header);
const winner = builders.reduce((b,x) => x.bid > b.bid ? x : b);
log.push('');
log.push('STEP 2 — proposer signs the WINNING header (commitment; no body yet):');
log.push('  picks ' + winner.id + '  bid=' + winner.bid + ' ETH');
log.push('');
log.push('STEP 3 — builder reveals the full block body:');
log.push('  proposer receives ' + winner.bid + ' ETH; builder claims MEV');
log.push('  withholding the body = builder forfeits revenue (relayer trust today; ePBS removes relayer)');
document.getElementById('o').textContent = log.join('\n');
</script></body></html>
▶ Open the interactive comic issue
‹ Danksharding · Data Availability SamplingStatelessness · The Verkle Transition ›