Terraform labs
TLDR
- Increase
liquidation_threshold
from 500 UST to 2000UST - Adjust
max_premium_rate
to 15%
From May 19th to 26th, the cryptocurrency market faced a sharp fall in prices. As Anchor Protocol uses bLuna for collateral, Anchor consequently faced a significant number of liquidations during this period. With multiple liquidators capturing liquidations, the Terra network faced tons of liquidate_collateral
transactions from those liquidators, which rendered it difficult for other transactions to be processed. Many borrowers attempting to repay during the price fall failed, as liquidate_collateral transactions took up most of the network bandwidth.
To mitigate this problem, we suggest increasing liquidation_threshold
from 500 UST to 2000 UST. The liquidation_threshold
parameter is the parameter that determines partial/ total liquidation in cases in which the collateral’s value is greater than the liquidation_threshold
.
To determine the exact number for the liquidation_threshold
, we ran a simulation. This simulation took place on May 18th at 1:54 AM (KST): we used the borrower_map snapshot, which used the collateral, the loan_amount of all borrowers at the time of input, and the LUNA/USDT pair price data on Binance (May 19th -26th), to trigger a liquidation.
The variable of this simulation is the liquidation_threshold
, and we assume that there were no instances of borrow/repay/lock_collateral/unlock_collateral. The output is the number of liquidation transactions processing bad loans during this period.
The simulation result is as follows:
- Threshold 500 UST - 18237 Liquidation Tx
- Threshold 750 UST - 17057 Liquidation Tx
- Threshold 1000 UST - 16176 Liquidation Tx
- Threshold 1250 UST - 15498 Liquidation Tx
- Threshold 1500 UST - 14956 Liquidation Tx
- Threshold 1750 UST - 14517 Liquidation Tx
- Threshold 2000 UST - 14140 Liquidation Tx
- Threshold 2250 UST - 13758 Liquidation Tx
- Threshold 2500 UST - 13457 Liquidation Tx
- Threshold 2750 UST - 13217 Liquidation Tx
- Threshold 3000 UST - 12981 Liquidation Tx
As you can see, increasing the liquidation_threshold processes much fewer liquidation transactions. By increasing the threshold from 500 UST to 2000 UST, the amount of liquidation transactions are roughly decreased by a factor of 22% — improving network congestion and allowing repayment transactions to be accepted more easily.
1. bLuna on-chain oracle data
- Data length : from Anchor genesis to May 31st
- 0.001% : -2.850058170203874%
2. Binance LUNA/USDT pair 1min candle
- Data length : from pair listing to May 31st
- 0.999% : 14.354331459067948%
- Assuming that this price diff is negative price diff
Furthermore, by making liquidations less lucrative — so that even if liquidations do occur, there is a decreased incentive to spam out liquidation Txs, minimizing negative effect on the system — we suggest adjusting the max_premium_rate on liquidation contract from 30% to 15%. Take Luna price volatility into consideration, we think that a 15% max_premium_rate is reasonable under current circumstances.
The on-chain proposal will follow.
Next Steps
We are designing a new liquidation contract with a dynamic liquidation premium based on liquidation demand. Additionally, we are working on a solution that will consolidate multiple liquidation triggers into one liquidation transaction to decrease network congestion.