MEV unbundling attacks are a family of attacks that violate the atomicity guarantees provided by PBS protocols. In all such attacks, malicious proposers seek to steal MEV from honest searchers by pulling apart their bundles — making them the ultimate victims of all attacks in this family1. Whilst not strictly necessary, most realistic deployments of such attack strategies will induce atypically large MEV opportunities in an effort to both maximise attacker payoff and improve the execution of the exploit (by increasing the confidence in the viability conditions holding and improving the speed of which they arise).
To date, all documented MEV unbundling attacks are instances of so-called double-signing attacks[1]: attacks that necessitate the malicious proposer violating the Ethereum consensus protocol by equivocating. Such attacks have received a great deal of attention amongst client developers, relay operators, and the broader Ethereum research community[1][2][3][4][5][6][7][10].
This is the original attack that occurred on April 2nd 2023 as described by Flashbots themselves[2].
Mallory must ensure that they initiate the protocol as the victim transactions are in-flight. This is because the searchers (overwhelmingly sandwich bots) are essentially being sandwiched themselves. In Ethereum, validators have one epoch's (so approximately six minutes') worth of advance notice of their becoming eligible for proposal.
The attack is economically viable iff. the cumulative MEV value stolen is greater than the cost of being slashed for equivocation.
Only one known exploit of this vulnerability is known in the wild. It's also certainly the most notable as well.
This sequence is largely reproduced from the source material[2].
In this attack, the attacker successfully exploited the Ultra Sound Money relay in order to extract around $20,000,000 USD from victim sandwich bots.
On , nearly two weeks prior to the attack, the attacker registered validator #552061. This was financed via Aztec in 0x6ac3d258077ca8330ede7e4323329e2f629d88639b25975796239d6219cc0083
.
0xd534c46ba5a444e886feedeb4dbe698b68be74a65356b5cc46c49f2dd07f7edf
and 0xd7bb6353f03a7ee1bf20d553e2df77a2cef44717dbe4afc38737540189d0c305
. The bait took the form of infinite slippage token swaps. These got detected by the victim searchers and they submitted sandwich bundles to the Builder0x69 builder. Builder0x69 then forwarded these onto the Ultra Sound Money relay.The crux of the vulnerability is Step 4. The relay should only reveal if the proposer has committed to a legitimate block. This involves checking whether or not the block is:
Currently, Lighthouse handles this by a hotfix applied in rapid response to the initial, aforementioned exploit. Prysm maintained a similar branch as well.
At the protocol-level, the Beacon API specification was updated to include additional endpoints that facilitate such block validation prior to broadcast. Namely:
POST
/eth/v2/beacon/blocks
, which allows for a broadcast_validation
parameter to be passed to the BN that specifies the level of validation to apply to the block prior to broadcastPOST
/eth/v2/beacon/blinded_blocks
, which is the same as above but for a blinded version of a blockLighthouse support for these new Beacon API routes landed with release Priest Witherspoon. The associated PR contains various test cases and other context in its notes.
One difficulty with the realistic deployment of such mitigations is that of performance. Honest proposers may be uncessarily penalised due to the implementation of relatively aggressive cutoff times for payload receipt[2][7][8][9]. Despite this, the overwhelming majority of traffic occurs within the first four seconds into any given slot (see Figure 1).
This variant exploits the attacker's superior peering compared to the target relay and is due to Sproul[3].
This sequence is largely reproduced from the source material[3].
BlocksByRoot
RPC.There are no known exploits of this vulnerability in the wild[7].
For Lighthouse, the entire mitigation comprises three PRs:
Full support ultimately landed in release Uncle Steve.
The terms "malicious", "honest", and "victim" are used here within the context of MEV unbundling attacks (as the title of this page would suggest) and not in a broader ethical sense. Some people hold negative views of the practice of MEV generally — these are considered strictly out-of-scope for the purposes of this entry.
In principle, there could be multiple victim searchers; only the searchers within the target block are vulnerable to the attack
This is not strictly true in that there are multiple individual requests involved in the protocol between the relay and the proposer, but the nuances of the actual API can be easily abstracted away. All that matters is that the proposer starts the interaction and that the relay (eventually) reveals the execution payload to the proposer.
The invalid state and parent roots can be seen in the first header on the BeaconScan entry for the slot (as of the time of writing, there are ongoing discussions amongst client and block explorer developers about how to better represent slashings from a user interface perspective).