Improving Liquidation

Absolutely; which is why removing the closeFactor (set to 50%; only allowing half a borrow to be liquidated) would double the economics of liquidating small position; shown from above:

@monet-supply taken together, this should generally address your concern. Thoughts / alternatives?

1 Like

Completely missed this :slight_smile:, removing the close factor should solve for dusty/small debt positions.

One other potential risk to think through, what if Compound provides delayed oracle prices during a downturn? With liquidators offered a price 5% rather than 8% below the oracle price, there’s a bit less margin of safety for potential oracle price/market price divergence. Have there been any cases in the past of liquidations stalling due to slow price updates?

None that are known; the liquidation incentive was raised from 5% to 8% on Black Thursday in March 2020, as a precautionary measure, and never reduced afterwards.

1 Like

maybe I’m subjective because my borrowing position is “dusty”, does that mean that the borrowing position will be liquidated 100% - without closeFactor?
While this is a logical move given the high gas fee, it puts “dusty” users at a disadvantage.

Intro

  • The original problem is posed as predatory liquidators who purposefully burn the 8% incentive as gas fees to miners. This is logical if the liquidator can cooperate with most of the miners, who would rebate some of the 8% back to the liquidator. However, any miner who isn’t part of the scheme will stiff the liquidator and keep all the profit. In today’s network I don’t think there are enough cooperating miners to make this approach profitable. (That may not last as there are already signs of miners harvesting MEV.)
  • But even without cooperation, another motivation for a liquidator to bid very high gas prices is to discourage competition. The natural equilibrium of a gas race ecosystem is a single, gas-efficient predator with a scorched earth strategy. The predator posts signs everywhere saying it will outbid any other liquidator without regard for its own profit, guaranteeing that anybody else who tries to participate will lose money on every attempt. Then, once everyone else gives up, the predator can enjoy dining in peace. This is bad for the protocol because it is now at the mercy of a single actor who may find other uses for its capital just when you need it most.

Analysis of proposals so far:

  • The first proposed solution reduces the incentive to 5% and adds a 3% liquidation fee paid to reserves. These two parts are unrelated. From the perspective of a liquidator, the only visible change is 8% becomes 5%. This does not change the structure of the liquidation market. It just reduces the maximum gas price that a liquidator will pay for a given liquidation.
  • A smaller incentive increases the chance that all liquidators will pass on an opportunity due to a difference betwen the oracle prices and actual market prices that the liquidators use to value the repaid and seized assets. For example, if the collateral price is falling quickly, then the built-in oracle lag may lead to an oracle-market price difference of more than 5%, which would make any liquidation unprofitable even without gas fees. This might persist until the account is insolvent and lenders suffer a loss.
  • A second proposal sets an upper limit on the gas price in a liquidation. Most miners use geth configured so that pending transactions having the same gas price are ordered in the block in the same order as they were first received by the miner (https://github.com/ethereum/go-ethereum/pull/21358). The consequence of this is that liquidators would race to be the first to submit a transaction at the maximum price into the mining pools. This competition will be dominated by a single winner: whoever has the most extensive global network of low latency connections to mining pools, combined with the fastest backend processing replicated around the world at mining pool ingress points or colocated with miners directly. This winner-take-all competition is not won by a “community liquidator”. And eventually, the miners themselves will absorb the liquidator function and run it internally.
  • A third proposal (in the replies) separates the updating of oracle prices into a preceding transaction, whether this is done by the liquidator or someone else. In either case, all liquidators will attempt to tailgate or back-run the price update. In the past, this produced spam transactions because miners would randomly order pending transactions at the same price. But the new geth behavior means that whichever liquidator is able to transmit their transaction to the mining pool first wins the contest every time. The winner is the same as before: a globally replicated liquidator ideally colocated with all the mining pools, or miners running internal liquidators. In the event that the block with the price update doesn’t have enough space for all the tailgating liquidations, gas price auctions will occur for top space in the next block, with most of the incentive going to whatever miner publishes the next block.
  • There may be some benefits to each of these proposals, but none of them addresses the real underlying problem, which is that the protocol is paying an incentive (5% or 8% or whatever) that is intended to secure the protocol but instead is being skimmed, more and more, by miners. All of the proposals drive the ecosystem toward a single winner who makes competition pointless and is eventually absorbed as an internal miner function.

I’ve written about this before (Critique of Compound v2's liquidation system · GitHub) and suggested two possible designs:

  • A dutch auction across multiple blocks with a gradually increasing incentive. As soon as the incentive reaches a value that is acceptable to at least one liquidator, they will use a high but reasonable gas price to liquidate in the next block.
  • A fixed high incentive combined with a sealed-bid auction for the right to liquidate, say by using a commit-reveal scheme every 10-block epoch. Every 10th block the winners could perform the liquidations and would pay their bid amount into the protocol itself (split among the borrower and reserves perhaps), rather than to the miners.

Both of these approaches have the dual advantages of minimizing the cost of the incentive borne by the borrower and maximizing the fraction of the incentive received by the liquidator. The main disadvantages are complexity and the nonzero time duration of the auction, during which market prices can move further against the borrower.

I’m sure there are better solutions and hope to hear some new ideas. This is the direction I think we should be working in.

2 Likes