MEV in Euler Dutch Auctions

Euler Finance for their V1 protocol incorporated a quasi dutch auction mechanism for liquidations. This helped mitigate losses for liquidated users by reducing liquidation bonuses paid to third parties, and instead accrue some of this value to an insurance fund. These features provided users significant value via what are essentially MEV rebates, and increased lender security against bad debt. The TVL rise of Euler proved out a product market fit for these features by breaching $300 million at the highest point. This piece will dig into how their auction mechanism performed under both TWAP and Chainlink oracles, and how it may be improved by using OEV-Share, an order flow auction vertically integrated with the oracle.

How the auction works

The Euler dutch auction works by making liquidation bonuses the difference between the liquidation price of a loan and the current oracle price for those assets. This means that the bonus starts out very small when first liquidatable, and as the health ratio of the loan moves farther into arrears the liquidation bonus increases.

This auction design was effective in reducing the average liquidation bonus relative to lending protocols with fixed bonuses. Since they are paying liquidators less, it now allowed Euler to redirect 2% of the bonuses to their insurance fund. Another interesting feature is that Euler protocol offered higher bonuses to liquidators who were also lenders, giving a permissionless way to advantage bots more aligned with the protocol. This may be one of the reasons which led to a bot operated by Euler core contributors 0x59828fdf7ee634aaad3f58b19fdba3b03e2d9d80 being very dominant in the dutch auction early on as it had a large liquidation bonus advantage.

Effects on liquidation bonuses

Before we get into this it should be stated that the data is quite limited due to liquidations being relatively rare on protocols like this. In September 2022, Euler moved the vast majority of their data feeds from Uniswap TWAP oracles to Chainlink oracles to prepare for TWAPs being easier to manipulate post the merge. The average liquidation bonus from July 1, 2022 to September 14th 2022 was 3.76% (before the proposal to switch oracles was executed). After this proposal, the average bonus was 4.5% until March 11th (right before the exploit).

There were the following exclusions from this data:

  • Liquidations where ETH was both the collateral and borrowed token because the ETH data feed alone remained a TWAP oracle.
  • FTT liquidations because I think such a black swan event renders the time period comparison less useful.
  • Data before July 1, 2022 so that I could compare similarly volatile periods.

Over time as the market for these auctions matured you would think that the liquidation bonuses would start to fall as competition increased. So the fact the opposite is occurring may point to the oracle switch being a potential variable. You can reason that this increase in liquidation bonuses is due to Chainlink oracle price movements being less smooth than oracle TWAPs, which causes their auction to be less granular. For example some bidder may be willing to perform a liquidation at the current price or TWAP price, but the Chainlink on-chain price is slightly stale. This would be due to a deviation not having been met between the Chainlink off-chain and on-chain price, therefore not triggering a new update on-chain yet. This then can result in worse outcomes as it could force bidders to wait for a worse price in the Dutch auction.

While the exclusions from the data may provide a more helpful comparison of two similar time periods of the market, they do ignore volatile periods which contain the majority of liquidations. In volatile periods Chainlink and even TWAP oracles start to lose granularity because prices begin to vary more between block times. So you should expect that as volatility increases, so will the liquidation bonuses, meaning the data selected likely shows a best case for the Euler auction mechanism value capture.

Euler and PBS bundle auctions

Shortly after Euler moved to almost entirely Chainlink oracles, liquidator 0x0b12281caeaaf950ba808d522c53bd6085597c18 became very active and began to bid a significant portion of the value from bonuses to block builders. They were the only liquidators able to meaningfully compete with the Euler core team liquidator 0x598. 0x598 remained very competitive with 0x0b12 probably due to their superior liquidation incentives gained from being a Euler depositor. Over time if profits from Euler liquidations were enough, you might expect that 0x0b1 would also become a Euler depositor in order to gain this bonus as well. Therefore potentially allowing them to out compete 0x593 on a now level playing field. This is nice because you become less reliant on the core team for liquidations.

The top builder bids for Euler liquidations were .1756, .1, and .07 ETH. The average percentage of the liquidation profits bid to builders from 0x0b12 was around 28.5%. Two of the liquidations were for WETH/USDC loans which would have been almost entirely reliant on TWAP oracles (the WETH aspect used a TWAP, and the USDC side used Chainlink but should not have been much of a factor due to the asset being steady at the time). This may indicate that market maturation rather than solely an oracle switch is a reason that more value began to flow to builders. It also shows that even when using TWAP oracles, it is hard to reliably prevent significant value leakage from the Euler style quasi dutch auction. This makes it hard for this auction mechanism to gain significantly added value from increased competition because the surplus value is instead captured by the blockspace auction. I would expect that over time as more professional liquidators enter this market you will only see more value from Euler being bid to builders. This is similar to what you see with shorter tail MEV such as arbitrage, where average bids reach over 90% of the true value.

Improving liquidation auctions using OEV-Share

In conclusion, despite the limited data available, it is clear that the Euler auction mechanism is prone to leaking a significant portion of liquidation bonuses to validators and block builders. Using TWAP oracles might mitigate this leakage relative to Chainlink or another standard oracle, but this is not a complete solution for liquidation MEV capture.

The core challenges lie in the limitations of current oracle solutions. The Euler auction lacks granularity due to its increments being tied to on-chain oracle prices, which can lead to participants being prevented from bidding what they would like to. Additionally, the design still requires liquidators to participate in a second auction for blockspace on top of the initial Euler auction. This creates uncertainty for the auction participants which will probably lead to under-bidding in the Euler auction.

OEV-Share is able to provide improvements in a couple ways. By vertically integrating the auction with the oracle solution you are able to bypass deviation thresholds in order to increase the granularity of the auction. The API3 data providers can additionally sign data feed updates from the OEV auction in a way that they may not be frontrun, and hence do not create a blockspace auction on top of the OEV auction. As a side note, another cool feature is the ability for data providers to sign an oracle update to be used exclusively for a single opportunity. This allows you to attribute the value on-chain to a defined entity such as the user being liquidated or the protocol, and immediately distribute the auction proceeds accurately.

Increased granularity and unification of a single auction with OEV-Share should be able to improve the efficiency of the Euler liquidation mechanism and lead to increased value capture for their ecosystem. The fact that block builders and validators are able to capture this value from Euler Protocol in the PBS auction today shows that, as the designs of that and OEV-Share are relatively similar, this may be an effective solution.