(advanced margin) Liquidation Mechanism #78
antoncoding
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Brief
In the current implementation, when the seller fail to maintain the collateral requirement, the liquidator can get all of the collateral in the vault by repaying the seller's debt (burning equivalent amount of option minted by the account). This approach is considered "safe" for the system, because it provide a very strong incentive for people to run a liquidator bot.
the downside is, it poses huge amount of risks for sellers to post collateral. With the current default collateral requirement formula, the liquidation line is still 1.5x to 3x higher than the "fair value" of the option. Meaning sellers are forced to "buy back" these options with prices 1.5x to 3x higher than a fair price.
In this thread we can discuss these trade offs, and also possible solutions.
Existing Auction Mechanism (Opyn Gamma implementation)
Opyn solve this problem by adopting an auction mechanism similar to yield finance, but opyn was one step ahead and implement a "virtual auction": in this approach, there is no on-chain state changes indicating the start of an auction. Anyone how wants to liquidate a vault has to specify which "timestamp" in the paste does this vault started to be underwater (when auction started), and in the the between now and the starting timestamp is "how long the auction has gone", and by that we calculate how much collateral the liquidator get.
The good thing about virtual auction is it reduce the amount of transaction needed for a liquidation. so system-wise it is very efficient (also usually more gas efficient)
But the cons are, it turns out to be adding lots of complexity for liquidators to calculate how much profit they can take out. If there's a previous transaction indicating start of auction, liquidator can just listen to the event, and use the eth price at start of auction and time since start of auction to precisely calculate how much they can get. But if it's done as a virtual auction, liquidator has to consider every single timestamp from the moment the vault being underwater to be the "starting timestamp", because it's possible that implying a "new pricer" might actually get you more collateral.
Not to mention option space is usually less liquid than spot market, the liquidators already have the game theory and hedging to worry about, adding this additional layer of "game theory" it a lot harder to design a profitable liquidator, which might ended up making it too risky to run a liquidator.
Another bad thing about virtual auction is that it doesn't work with all kinds of "oracle source". It can work with Chainlink where you can provide roundId and get any timestamp in the past as a way to prove prices in the past. But this is not something always doable with Uniswap twap.
Directions
Beta Was this translation helpful? Give feedback.
All reactions