After the healthy discussion over the past week or so about the WBTC collateralFactor changes, people mentioned a few key risk factors:
- Liquidity
- Volatility
- User behavior (for example, the collateral ratios maintained by borrowers)
Over the past few months we’ve seen liquidity improve for many tokens in Compound, while volatility has also increased substantially. How do you determine if the increase in volatility is offset by the increase in liquidity? How have user-chosen collateral ratios affected any added risk? These factors interact in complex ways, and we believe the only way to understand how these myriad conditions affect risk is by running stress tests for the protocol.
We’ve gone ahead and run a set of stress tests of Compound to try to set collateralFactors that better balance the risk and capital efficiency of the protocol. We’re looking forward to doing this more frequently going forward. By setting parameters more frequently, the protocol should be able to take on more risk as we will be standing by to increase collateral requirements as market conditions change. We’ll submit a proposal for these parameters early next week, but want to leave this on the forum for a bit to get more feedback in the meantime.
Proposed Collateral Factors
Current | Recommended | |
---|---|---|
DAI | 75% | 80% |
USDC | 75% | 80% |
BAT | 60% | 65% |
COMP | 60% | 60% |
ETH | 75% | 75% |
UNI | 60% | 60% |
WBTC | 75% | 60% |
ZRX | 60% | 65% |
As we mentioned in the discussions around the WBTC collateralFactor, WBTC poses the largest risk to the protocol and collateral requirements should be increased. However, as the community just voted to change this, we’ll leave this parameter out this proposal, and include it in the next one. We’ll also be making some changes to COMP speed, as these collateralFactor changes could encourage more circular borrowing in the protocol:
Current COMP Speed (COMP/block) | Recommended COMP Speed | |
---|---|---|
DAI | 0.067 | 0.050 |
USDC | 0.067 | 0.050 |
Stress Test Results
Our stress tests are described here, but to recap they:
- Deploy the Compound contracts in a test environment
- Subsample the current distribution of borrowers to create a representative set in the test environment
- Add synthetic price trajectories for each asset that are modelled from historical market data
- As the prices change, positions become eligible for liquidation, and agents in the test liquidate the collateral on Compound via a slippage curve fit to real data from centralized and decentralized exchanges
- Run simulations comprising 1-4 hundreds of times to predict potential insolvencies in Compound
We’ll focus on the main output of the simulations, which is “Net Insolvent Value” per collateral type. This is highly dependent on price volatility, which we vary across the x-axis below. A “Volatility Scalar” of 1 means that the stress tests used price paths that matched the historical volatility of each asset, a scalar of 8 corresponds to price paths that are 8 times as volatile as recent asset prices. For reference, the historically bad volatility of March 12/13, 2020 corresponds to a scalar of 7 or 8.
ZRX, DAI, USDC, and BAT have a very low risk of seeing insolvency, even under March 12 like conditions. We’ll recommend increasing the collateralFactor (and lowering the collateral requirements for borrowers) for those assets.*
ETH, COMP and UNI also carry risk, but after investigating further, that risk was mostly determined by the accounts relying on WBTC as collateral as well, so we’ll recommend those parameters remain unchanged. Accounts using multiple collateral types can create complications in data analysis, but we look at individual accounts to add color to the data.
*One thing to note. The issues that were seen with DAI price fluctuations late last year are still possible. Borrowers using DAI as collateral or borrowing DAI should be careful when approaching the collateral limits.