Risk Parameter Updates 2022-11-23

Simple Summary

A proposal to adjust fourteen (14) risk parameters (borrow caps) for fourteen (14) Compound V2 assets.

Abstract

Gauntlet’s simulation engine has ingested the latest market and liquidity data. These recommendations are Gauntlet’s regular parameter recommendations as part of Dynamic Risk Parameters.

Motivation

This set of parameter updates seeks to maintain the overall risk tolerance of the protocol while making risk trade-offs between specific assets. Gauntlet has published a blog post on our parameter recommendation methodology to provide more context to the community.

Our parameter recommendations are driven by an optimization function that balances 3 core metrics: insolvencies, liquidations, and borrow usage. Our parameter recommendations seek to optimize for this objective function. Gauntlet’s agent-based simulations use a wide array of varied input data that changes on a daily basis (including but not limited to user positions, asset volatility, asset correlation, asset collateral usage, DEX/CEX liquidity, trading volume, expected market impact of trades, liquidator behavior). Our simulations tease out complex relationships between these inputs that cannot be simply expressed as heuristics. As such, the charts and tables shown below may help understand why some of the param recs have been made but should not be taken as the only reason for recommendation. Our individual collateral pages on the dashboard cover other key statistics and outputs from our simulations that can help with understanding other interesting inputs and results related to our simulations.

Top 30 borrowers’ aggregate positions & borrow usages

Top 30 borrowers’ entire supply

Top 30 borrowers’ entire borrows

Parameter Current Value Recommended Value
USDC Borrow Cap No Limit 500,000,000
DAI Borrow Cap No Limit 400,000,000
USDT Borrow Cap No Limit 300,000,000
TUSD Borrow Cap No Limit 10,000,000
ETH Borrow Cap 100,000 No Change
WBTC Borrow Cap No Limit 1,250
BAT Borrow Cap No Limit 900,000
UNI Borrow Cap 11,250,000 550,000
COMP Borrow Cap 150,000 18,000
LINK Borrow Cap No Limit 45,000
SUSHI Borrow Cap No Limit 750,000
ZRX Borrow Cap No Limit 1,000,000
AAVE Borrow Cap 66,000 12,000
YFI Borrow Cap 1,500 20
MKR Borrow Cap 5,000 300

Setting borrow caps help avoid high-risk attack vectors while sacrificing little capital efficiency and allowing for a threshold of organic borrow demand. Additionally, these conservative borrow caps still would not have prevented users from borrowing based on organic user borrow behavior in the past month. Given that the vast majority of borrows on Compound (> 96%) are consistently stablecoins, Gauntlet recommends setting borrow caps for these non-stablecoin assets given the risk/revenue tradeoffs. As organic demand for borrowing grows, the community can reassess borrow caps and raise accordingly depending on the market risk considerations.

Next Steps

  • Initiate a Compound Proposal

By approving this proposal, you agree that any services provided by Gauntlet shall be governed by the terms of service available at gauntlet.network/tos.

Quick Links

Analytics Dashboard
Risk Dashboard
Gauntlet Parameter Recommendation Methodology
Gauntlet Model Methodology

Gauntlet launched an insolvency refund for Compound that contains a portion of our payment stream that can be clawed back in the event of insolvencies due to market risk. Since our last recommendation there have been no new insolvencies in Compound, Gauntlet’s Insolvency Refund vault is still live and can be seen here 0x7667095Caa12b79fCa489ff6E2198Ca01fDAe057

4 Likes

Hello @pauljlei, thank you for this proposal. We at Morpho Labs think that this proposal could drastically reduce the relevance of the protocol and thus raise new risks. We explain why and propose an alternative solution.

Observations

  1. Borrowing use case limitations
    Anyone relying on the borrow functions of the Compound protocol can experience reverts for extended periods of time, if the borrowing cap is reached. This could happen before but was very unlikely in practice due to the interest rate model. This is not convenient and will (very) likely prevent many use cases for sustainable borrowing activity from being built on top of the Compound protocol.
  2. Reduced borrow volume from protocols
    In the case of Morpho, the biggest borrower and second biggest supplier of the Compound protocol, the introduction of the borrow caps would push Morpho Governance to deactivate the peer-to-peer matching engine of Morpho-Compound. This would highly reduce the interest in Morpho-Compound compared to Morpho-AaveV2. All the volume will very likely migrate to AaveV2 (via Morpho-AaveV2) if this proposal passes. This is what happened with the $ETH market a few weeks ago. This alone would significantly lower the borrowed volume on Compound. A lower borrowed volume means fewer interests generated, leading to worse rates for Compound suppliers, which would then likely diminish the total supply.
  3. Against “real” borrowers
    Moreover, as this proposal on Compound III ETH suggests, $COMP emissions will also likely stop on the Compound protocol, reducing even further the borrowing demand of the protocol. Note that many of the largest borrowers are still using Compound only for farming $COMP. That’s the case for this account, this account, and this account, for example, gathering around $110M of total borrowed volume. This emphasizes the importance of preserving “real” borrowers of the protocol like Morpho-Compound.
  4. Huge change for Compound
    The proposed changes are very limiting, and while we generally trust Gauntlet’s work, here we feel a lack of explanation and data for such a big limitation. The decision seems rushed and leaves very little time for discussion.

Solution

Even though we understand the concerns raised by Gauntlet, we believe that introducing the borrow cap can drastically reduce the relevance and the competitiveness of the Compound protocol.

We think the concerns could be addressed by having a improved interest rate model: integrating a liquidity dimension to the interest rates curve, such that the borrow rate spikes when the total borrow volume reaches a set parameter. This parameter would be an estimated safe maximum borrow amount, taking into account asset liquidity, trading volume, DEX/CEX liquidity etc. The induced spread could be taken as a reserve factor, helping cover any potential issues (to quantify). Ideally, this should apply only to new borrowers, such that long term ones are not impacted. An exception can be made for governance tokens where governance attacks should be prevented.

This would be in the same vein as the protocol’s current interest model where rates are adapted to take into account new liquidity and new borrowing demand. Indeed the interest rate model currently works as a measure against illiquidity, just as this proposal would make the interest rate model prevent too high total debt.

Here are some of the important advantages of this approach:

  • Retain sustainable borrowers: This prevents the activity of the Compound protocol from falling apart, especially with $COMP rewards emissions likely turning off soon. It keeps the full relevance of Compound, while not compromising on safety.
  • Strengthen the reserves of the Compound protocol when market utilization is high. This reserve can be re-used to resorb bad debt.

Alternatively, and as a short term solution, the current interest rates model’s parameter could be changed, along with liquidations parameters. These solutions have shown efficient for the moment on Compound, while not being limiting hard caps.

7 Likes

These parameters can limit borrowing of protocols, limit collateral and supply to Compound

We are convinced that there can be other ways to tackle this risk, more conservative interest rate curve or adjusting LTV

DefiEdge

3 Likes

I agree with previous comments and think that the same goals can be accomplished through integrating a liquidity dimension to the interest rate curve.

Fundamentally, I think the idea of introducing borrowing caps is problematic and might cause volume to migrate to Aave. It’s a huge change and needs to be thought about very carefully.

Part of the problem is that Gauntlet’s proposals don’t get a lot of push-back because their simulations are somewhat of a black-box, but I think this change is an atypical one and could cause a lot of inadvertent damage.

1 Like

Don’t throw the baby out with the bathwater.

2 Likes

Thanks all for the thoughts. While we appreciate the strategic considerations and partnership with ecosystem participants like Morpho, from a risk perspective, setting borrow caps immediately helps protect the protocol from tail risks.

Setting borrow caps allow the community to granularly protect against a wide variety of market risks and attack vectors, including but not limited to:

  1. Insolvency risk from liquidation cascades
  2. Price manipulation “Mango squeeze” exploits: allowing attackers to borrow a significant amount of assets reduces the attackers’ cost basis for performing such attacks. In addition, it directly reduces their maximum profit (because the borrow cap limits how many assets from the protocol can be drained).
  3. Risk of high utilization (coming from demand to short assets) impeding atomic liquidations: setting borrow caps can help prevent 100% utilization of an asset
  4. Risk from shorting assets: if a user puts on a short position on Compound of significant size relative to the circulating supply of the asset being shorted, then this can pose outsized risk that leads to insolvency. Borrow caps can immediately limit the protocol’s exposure to this risk.

The poster claims that the relevance of the protocol can be “drastically” reduced without providing any quantification of the opportunity cost. While the opportunity cost is not quantified, the benefits of setting borrow caps are incredibly straightforward, as they set a clear limit to the amount of borrow exposure that poses risk to the protocol.

The borrow caps proposed above allow for organic borrowing demand (e.g., the USDC, DAI, and USDT borrow caps are 2x the current amount of existing borrow on Compound).

This impact has not been quantified by the poster. In addition, as mentioned above, these borrow caps still allow for organic borrowing demand. If the pure existence of borrow caps prevents protocols like Morpho from integrating with Compound, then the Compound community needs to make a decision: are we willing to completely forgo the use of borrow caps in its entirety? Or do we use borrow caps (that have been deliberately built into the Compound system to mitigate risk), and have ecosystem partners integrate with Compound as our mechanisms have intended? From a risk-reward perspective, the picture is very clear. Setting borrow caps allow the community to precisely control the security threshold and help protect against long-tail risks.

We caution the community against accepting broad conclusions like these without quantification. If Morpho can provide numbers on the expected impact, that would be helpful.

While potentially an interesting idea, it is unclear 1) who in the community would develop this, 2) whether this will work in practice, and 3) how long it would take to develop/test/implement this. On the other hand, setting borrow caps immediately can mitigate risk.

Interest rate curves do not completely protect the protocol from the risks outlined above. Especially for attack vectors that require borrowing an asset for only a short amount of time, high interest rates do not prevent such attacks if the expected profit of the attack (which we have seen in DeFi can be hundreds of millions of dollars) outweigh the interest cost. In addition, liquidations parameters also do not fully protect against some attacks and also come at the cost of capital efficiency for the protocol. What’s more, we have observed that market conditions have significantly changed since the FTX fallout. Market conditions are dynamic, and therefore, risk adjustments for the protocol should be dynamic. Solutions that have “shown efficient” in the past do not translate to changing market risks.

Setting borrow caps do not prevent users from lending or supplying collateral on Compound.


TL/DR: Setting borrow caps immediately helps mitigate tail risk and attack vectors while allowing for a threshold of organic borrowing growth.

3 Likes

Thanks @pauljlei for your detailed answer.

Now, borrow caps certainly have benefits. For your fourth point for example, it makes sense to keep some borrow caps on these assets. But that’s not the case at all for all assets: around 1% of USDCs are on Compound, and 0.3% of USDTs. And for the two first points, of course, capping the of borrow reduces the total funds at risk, but it lacks a counterbalance from a utilization and adoption point of view (eg. an empty pool has no risk at all).

On the form of this proposal, we regret several things. First, no explanations about the values of the borrow caps and assets chosen are given, aside from the fact that Gauntlet used “user positions, asset volatility, asset correlation, asset collateral usage, DEX/CEX liquidity, trading volume, expected market impact of trades, liquidator behavior” to determine them. It would also have facilitated the conversations. Here the community must blindly trust you and for changes as important as these, we find that it is not normal. That’s not what DeFi has been made for. On our side, contrary to what you said, we provided some data about the potential losses for Compound: Morpho, the one of Compound’s biggest borrower (the first in your chart above), and one of the rare non-recursive borrower, will have to leave the markets if some borrow caps are set everywhere.

Second, the time given to the community to discuss before the beginning of the vote was really short. We understand that there is sometimes the need for quick adjustments when it comes to risk parameters, but this should not be at the price of having to fully rely on the work of one entity. We would have liked to provide more data about the topic, but the time constraints were too short to have a deep conversation.

In short, we understand the benefits of setting borrow caps on Compound, but we question the fact that they should be set on all market, potentially forgetting other aspects than risk. The little time given for the community to debate on this topic does not help.

4 Likes

I completely agree with your points, @PaulFrambot – that borrow caps should be measured against the utility of the protocol, and that discussion about this important trade-off should occur before important changes are proposed.

That being said, Proposal 135 strikes in my mind the right balance between limiting utility and risk, and I plan to vote for the proposal.

This proposal implements borrowing caps on collateral assets (which historically have very little borrowing demand) and not stablecoin assets (which are the core borrowing demand for the protocol). Given the bad debt incurred by Aave through CRV (a minor collateral asset) borrowing recently, limiting this risk in Compound v2 makes sense. If there is borrowing demand for one of these collateral assets, governance can easily increase or remove the cap later.

It should be noted that Compound III was designed specifically to avoid these types of risks.

3 Likes

I don’t follow why this would be the case @PaulFrambot , can you elaborate?

This compromise makes a lot of sense. As a stablecoin lender, we don’t see imposing a cap on max stablecoin total borrow as sensible, while otherwise don’t have much of a dog in this fight.

The idea of applying a higher rate to marginal new borrows is very interesting.

1 Like

I agree with Robert on this point. One of the key points that caused me to change my mind was that this is a short-term solution and can be adjusted if needed. @PaulFrambot also makes good points.

1 Like

Sorry for the slow answer; I have been away.

@OneTrueKirk, in the current version of the Morpho-Compound, to make sure funds matched P2P are liquid, the protocol must be able to borrow on the pool. The lending pool should not have reached the borrow caps to offer this guarantee. Even if this is only a hedge case, not sure if the governance would be comfortable with this. Hope it is clearer.

@rleshner, as you mention, Proposal 135 only sets borrow caps for assets that are not stablecoins, which balances the risk-utility trade-off in favor of setting borrow caps. Our point was mostly referring to stablecoins.

It looks like the proposal passed, but I am glad we could have this healthy debate. Morpho Labs continues to believe that the Compound protocol should not only consider risk for upcoming proposals but also the utility constraints of the protocol.

2 Likes

Gauntlet Has 126,105.9 votes. Morpho didn’t vote against with $COMP.
Although I support Morpho psychologically, I feel sad for this phenomenon.
Is the governance result necessarily correct?

2 Likes

“The notion of “governance rights” as a narrative for why a token should be valuable is pathological.”

I think the proposed changes are sensible and should help reduce remaining risk to Compound v2 from long tail assets. If we see organic borrowing demand pick up for some of these assets, it could be useful to have an established procedure in place to periodically update the borrow cap parameters, to continue providing maximum utility to borrowers and suppliers while limiting risk of manipulation.

3 Likes

Thank you for the support @ClairvoyantLabs. Yet, although we think another path could have been explored before going straight for this solution, I think this result is fair. We don’t hold sufficiently many $COMP to weight in the balance. We only express opinion on the forum as contributors of Morpho, a major Compound user, to enlighten community’s opinion on non-trivial consequences that this proposal has. In the end, $COMP holders are the one deciding what they think is best for the protocol and we of course respect their decision.

3 Likes