Worked example · 2023
MEV-Boost relay equivocation attack surface — Ethereum — 2023
Summary
MEV-Boost is the dominant proposer-builder separation (PBS) architecture on Ethereum post-Merge. Builders construct blocks, relays withhold the block body and send the proposer a header, and after the proposer signs the header the relay reveals the body.
On 2023-04-02 (slot 6137846), a malicious proposer used the relay to unbundle a sandwiching searcher's transactions for a profit of over $20M. Two relay weaknesses enabled it: the relay did not check that the proposer's signed header was valid, and it returned the block body to the proposer before publishing it to the p2p layer. Relay commits adding header-validity checks and reordering body release fixed the attack as executed [neuder2023].
On 2023-04-21 the discloser ("low carb crusader") reported a second strategy: relays let proposers call getPayload before their slot began, letting a proposer see the block contents and race the relay's block (at the cost of being slashed). Flashbots deployed a patch to mainnet around 10:50 UTC on 2023-04-23, and its relay logs confirm the strategy was never used in production [flashbots2023].
Timeline (UTC)
| When | Event | OAK ref |
|---|---|---|
| 2023-04-02 | Malicious proposer unbundles a sandwiching searcher via the relay in slot 6137846; over $20M profit [neuder2023] |
T14.002 |
| 2023-04-18 | Francesco d'Amato and Mike Neuder publish their analysis of the attack and the relay fixes [neuder2023] |
(public analysis) |
| 2023-04-21 | Discloser contacts Flashbots-linked researchers about a second equivocation strategy [flashbots2023] |
T14.002 |
| 2023-04-23 | Flashbots deploys the early-getPayload mitigation to mainnet; other relays follow over the next hours to days [flashbots2023] |
(mitigation) |
Public references
[neuder2023]— d'Amato and Neuder, "Analysis of equivocation attacks in Ethereum's mev-boost and ePBS systems" (2023-04-18): https://notes.ethereum.org/@mikeneuder/B1VIDkXG2[flashbots2023]— Flashbots Collective, "Disclosure: mitigation of block equivocation strategy with early getPayload() calls for proposers": https://collective.flashbots.net/t/disclosure-mitigation-of-block-equivocation-strategy-with-early-getpayload-calls-for-proposers/1705- Cross-reference:
examples/2023-mev-boost-equivocation.md.