Proposal to integrate B.Protocol’s Backstop with dForce to address recent liquidity contraction in DeFi
Rationale
Integrate B.Protocol’s user-based backstop with dForce to offer a more robust and secure liquidation mechanics to support the liquidity contraction in DeFi, mainly on alt-L1s and L2 networks.
B.Protocol enables users (aka Backstoppers) to provide liquidity into backstop pools. These funds are used to execute liquidations on dForce, using the B.AMM (Backstop AMM) novel design.
Summary
The Motivation
With the recent liquidity contractions happening on many L1s and L2s, some assets’ liquidity on DEXs became too thin to execute liquidations by ordinary liquidation bots that use flash loans for their liquidations. The price impact on the DEX, created by the liquidation tx, will be bigger than the liquidation incentive given to liquidators, making it non-profitable. This situation casts a potential risk of bad debt to be created on dForce lending markets in case of price movement.
Below are a few assets that are used as collateral on dForce, that current DEX liquidity will prevent the platform to perform mid-size liquidations ($100k-1m worth of liquidated positions) using a flash-loan liquidation bot -
Asset | Chain | LTV % | % Slippage for $100k | % Slippage for $0.5m | % Slippage for $1m |
---|---|---|---|---|---|
ATOM | BSC | 70 | 13% | ||
USX | BSC | 85 | 49% | ||
XTZ | BSC | 70 | 91% | ||
LINK | BSC | 70 | 15% | ||
LINK | Optimism | 70 | 19% |
$50k XTZ-USDC Swap on 1Inch with 84% slippage
The Proposed Solution
B.Protocol enables deposits of cTokens (interest bearing tokens) into its backstop pools (e.g., cBUSD, cUSDT, cUSDC, etc). These funds will be used to execute liquidations on dForce through the B.AMM, without any price impact, avoiding any potential cascading liquidations scenario.
The backstop funds will be directed to the Supply markets on dForce, letting Backstoppers to gain from liquidation profits made by the backstop pool, on top of their “regular” interest rates and Supply DF rewards.
Benefits:
-
For dForce Users:
- Provide cTokens to the backstop pools to gain liquidation profits on top of DF “regular” Supply rewards and interest rates gains.
-
For dForce as a platform:
- Get a stronger safety net for the platform lenders that is already battle tested across several L1s and L2s.
- Perform liquidations also for low liquidity assets with no price impact.
- Drive more liquidity to the platform.
- Potentially, support higher LTV ratios for better capital efficiency of the platform (pending prior risk assessment).
Key Discussion Points
In order to progress with this proposal, we propose these 3 alternative integration options to be discussed and voted upon by the community:
1. Incentivise deposits into the Backstop pools by diverting 20% of the existing DF rewards from the Supply markets to the Backstop.
E.g., if current rewards for USDC per day are 1000 DF, in order to support backstop deposits, 200 DF should go to the USDC backstop pool and 800 will remain for USDC Supply.
Pros
- No new incentives are needed.
- All USDC in the backstop will be available as Supply for USDC market and will gain interest rates and rewards accordingly.
- DF rewards will support a stronger and safer dForce.
Cons
- Current Supply rewards will be reduced by 20%
2. Incentivise deposits into the Backstop pools by adding 20% of the existing DF Supply rewards.
E.g., if current rewards for USDC per day are 1000 DF, in order to support backstop deposits, 200 DF should be added to the DF distribution as rewards for the USDC backstop pool.
Pros
- Current rewards won’t change.
- All USDC in the backstop will be available as Supply for USDC market and will gain interest rates and rewards accordingly.
Cons
- Higher DF inflation as a result of adding rewards to the backstop pools.
3. Give priority to the backstop pool in the liquidation process. This will require making some minor changes to the Dforce code in the liquidation interface.
For Compound forks the change is as follow (B.Protocol devs will need to verify with dForce devs the current liquidation interface used on dForce) -
address bLiquidator = bprotocol[address(cTokenBorrowed)];
if(bLiquidator != address(0) && IBProtocol(bLiquidator).canLiquidate(cTokenBorrowed, cTokenCollateral, repayAmount)) {
require(liquidator == bLiquidator, "only B.Protocol can liquidate");
}
In simple words, the code change gives priority to B.Protocol to execute the liquidations - if B.Protocol has enough liquidity in the backsto[, then it must be used in the liquidation process, otherwise, anyone can liquidate (as it is now).
Pros
- This integration is already live and battle tested with Hundred Finance, a multi-chain Compound fork, on top of Arbitrum, Fantom and Polygon. Adding more EVM compatible chains is pretty straight forward.
- The code for Compound forks integration was audited and can be found below. - https://github.com/Fixed-Point-Solutions/published-work/blob/master/SmartContractAudits/FPS_B.AMM_Rari_Assessment_FINAL.pdf
- All USDC in the backstop will be available as Supply for USDC market and will gain interest rates and rewards accordingly.
- No changes to the current distribution of DF is needed.
Cons
- Though audited and battle tested, changes to the dForce code might be perceived as risky.
We encourage any comments and will be happy to answer any questions regarding this proposal idea before it will be put up for a vote according to dForce governance process.
About B.Protocol
Due to links limit for new member’s posts I will attach the links about B.Protocol in the comments