Proposal: Adjust ETH Interest Rate Model

Overview

This proposal adjusts parameters for the Compound ETH market. Specifically, this proposal would implement a borrow cap and update the interest rate model to a new jump rate model featuring a much higher maximum borrow rate to ensure continuous withdrawal liquidity for Compound ETH collateral.

Motivation

The upcoming Ethereum merge upgrade is expected to be accompanied by at least one ETH fork that maintains POW consensus. The expectation of forks could have a significant impact on the defi space. See the following post on the Maker forum for an overview of potential impacts on the defi space.

Specially for Compound, the merge and prospect for fork(s) has the potential to significantly increase liquidity risk for cETH. The vast majority of non-ETH assets are likely to become worthless on fork chains, but forked ETH may retain some non-negligible share of value. In the first blocks after a fork, miners or other MEV operators will be able to extract all of the fork ETH value from certain defi liquidity pools (including Compound’s cETH as well as other lending or decentralized exchange pools) by supplying worthless stablecoins or other tokens. This incentivizes defi users to (1) withdraw ETH from pooled defi liquidity protocols, and (2) borrow any available ETH from lending pools before the fork, allowing them to retain the potential value of forked ETH tokens.

If the cETH market borrowing utilization grows excessively high, this can increase insolvency risk within the protocol by interfering with atomic liquidation transactions; liquidators would not be able to immediately withdraw ETH to repurchase assets they sold during liquidation. Compound’s utilization based interest rate models are designed to protect against this liquidity risk, but the dynamics of ETH fork airdrops (where significant value is distributed to ETH holders in a single block) could put the existing rate model under significant stress.

The proposed changes to interest rate model and borrow cap will penalize excessive utilization and borrowing in the cETH market. This should help reduce risk and maintain orderly liquidation mechanisms in the lead up to the merge.

Specification

Update the cETH interest rate model to a new jump rate model with the following parameters:

  • Rate at 0% utilization: 2%
  • Optimal utilization (kink point): 50%
  • Rate at optimal utilization: 50%
  • Rate at 100% utilization: 1000%

(updated parameters based on feedback)

  • Rate at 0% utilization: 2%
  • Optimal utilization (kink point): 80%
  • Rate at optimal utilization: 20%
  • Rate at 100% utilization: 1000%

An interest rate model contract will be deployed and submitted for community review before starting the on chain proposal.

Set a borrow cap for the cETH market of 100,000 ETH.

Justification of Parameter Changes

Why does the proposed new interest rate model include such high borrowing rates?

The proposed rate changes are benchmarked based on hypothetical delta neutral “fork farming” behaviors of borrowers and suppliers in the Compound cETH market. It is expected that any ETH remaining within the Compound money markets at the time of the merge and accompanying fork(s) will be unrecoverable to cToken owners due to MEV activity and widespread pool insolvency on the fork chain(s). Withdrawing or borrowing ETH before the merge provides an immediate gain based on the expected value of fork-ETH. Rational users are incentivized to borrow or withdraw ETH if the expected gain from receiving fork airdrop(s) exceeds borrowing costs or returns from supplying ETH to the market.

While the current maximum borrow rate of ~14.5% is fairly high over long time periods, over shorter periods (days to weeks) it may not be sufficient to incentivize cETH market liquidity in light of potential fork windfalls. 14.5% annual rate corresponds to a weekly borrowing cost of only 0.26% (or daily cost of just 0.037%). With pre-market trading of POW-ETH (Poloniex spot and BitMex futures), stETH discount, and futures basis indicating an expected fork value of roughly 2-4%, this level of borrowing cost is clearly insufficient to prevent the cETH market from reaching dangerous levels of utilization for prolonged periods.

The proposed maximum borrow rate of 1000% corresponds to a weekly cost 4.7% (daily cost of 0.66%), and corresponding supply rates at 100% utilization would be 800% per year (4.3% per week, 0.6% per day). These levels should be high enough to discourage full utilization of the cETH market (borrowings or withdrawals) until just before the fork block. Minimizing the expected amount of time when the cETH market is fully utilized will reduce risk of insolvent accounts or other market disruption.

Why is a relatively low borrow cap proposed?

As long as the total amount of ETH supplied remains above the proposed borrow cap, the cETH market will not become fully utilized and will avoid the greatest potential risks from disorderly liquidations. It is relatively simpler for users to open new cETH borrow positions vs existing cETH suppliers to withdraw collateral; new borrowings require as little as one single user with sufficient collateral assets, while reducing supplied assets involves action across many individual users, who may also have greater lock-in incentives due to outstanding collateralized loans. In summary, setting a borrow cap is likely to provide additional protection against cETH becoming excessively utilized due to naturally higher inertia of ETH suppliers vs borrowers.

What impact will this have on current users?

Based on the current market utilization rate of 3.3%, borrowing rate would increase from 2.7% to 5.2%, while supply rate would rise from 0.07% to 0.13%.

Given current total cETH supply of just over 500,000 ETH, the proposed 100,000 token borrow cap would limit utilization to roughly 20% of market liquidity (before accounting for any possible ETH withdrawals from Compound). This would correspond to a borrow rate of 21.2%, and supply rate of 3.4%.

COMP Payment

If this proposal is adopted, a one time payment of 100 COMP will be transferred from the Compound governance timelock to the MakerDAO pause proxy. This is intended to compensate for Block Analitica’s research and development costs in connection with this proposal; BA provides risk management consulting services to MakerDAO as the Maker risk core unit.

Transfer 100 COMP to 0xBE8E3e3618f7474F8cB1d074A26afFef007E98FB.

Planned Future Changes

After the merge is completed, a further proposal will be submitted to adjust cETH market parameters. This is expected to include an adjustment to interest rate model reducing rates across the utilization curve, as well as an increase in the cETH borrow cap (or full removal of borrow cap depending on community preferences). This will help normalize market activity once the immediate fork induced risks have passed.

License and Disclaimer

Copyright and related rights waived via CC0.

This proposal is provided for informational purposes only. This is not intended and should not be construed as financial, legal, regulatory, or tax advice. Proposal is provided on an “as is” basis without warranty of any kind. As a condition of accepting this proposal, protocol users, token holders, and other stakeholders disclaim any and all warranties, express or implied, including all implied warranties and conditions of merchantability, noninfringement, and fitness for a particular purpose. Stakeholders accept and implement the proposal solely at their own risk.

6 Likes

Thanks for kicking off this process @monet-supply – its a great observation that the ETH interest rate model should be updated heading into the merge (and likely reverted afterwards). And thank you for suggesting the interest rate model and borrowing cap parameters.

My primary concern is that the proposed interest rate model is punitive in its goal to prevent ETH illiquidity; for the market to function, there needs to be some liquidity; 50% of the market (at 50% utilization) is more than enough for users to withdraw or borrow at will. The rapid slope of borrowing costs (at current utilization, and on the way to 50%), and the hyper-acceleration of borrowing costs after 50% utilization seems like it might be too aggressive.

Two ways that the parameters could be potentially improved:

  1. Keep borrowing costs unchanged for existing users, by lowering the base borrowing rate.
  2. Raise the kink to 80% utilization–while keeping the same 1000% maximum borrowing rate.

What would be the ideal timing of a switch? A week before the merge? A day before? The community could help time the proposal (and a proposal to revert to a normal interest rate model) accordingly. Thank you for the model and effort :raised_hands:

5 Likes

Thanks for the feedback on this!

I’m receptive to a higher target utilization / kink point up to 80% (vs initially proposed 50%), as the main risk here is that cETH becomes 100% utilized and even 80-90% utilization wouldn’t bring too high of safety concerns. Also understand the desire to not increase effective costs on existing borrowers (although it may be unavoidable that borrowing costs increase into the merge due to higher utilization, so users should be aware of this regardless).

I think the alternative rate model below may do better at conforming to these goals:

  • Rate at 0% utilization: 2%
  • Optimal utilization (kink point): 80%
  • Rate at optimal utilization: 20%
  • Rate at 100% utilization: 1000%

This would protect against dangerous utilization levels, while still allowing for economically viable borrowing at typical utilization levels. At current utilization rate (3.43%), the implied borrow cost would be 2.77%, which is just slightly higher than existing rate model’s borrowing cost of 2.71%.

However, the borrow rate would increase with utilization levels somewhat faster than the current rate model; for example the new rate model would reach 11% at 50% utilization vs current rate model’s 8.31%. I think this is acceptable but happy to hear any contrary opinions :slight_smile:

One other note on housekeeping, it looks like the existing rate models implicitly assume 15 second block times (2102400 blocks per year). This is why Compound rates aren’t currently round numbers (as realized block average closer to 12-13 seconds). With block times becoming a fixed 12 seconds after the merge, I think it would make sense to shift to 2628000 blocks per year formatting, which will make it easier for governance to set rates and lead to simpler UX (borrowing costs should ideally be integers at 0% utilization, kink point, and 100% utilization).

4 Likes

All of that makes complete sense to me. Would love to see any other comments / ideas from the community as well, but this seems sound.

Interesting, but there’s one nuance. ETH market is a legacy one. Thus, borrow cap and kink point is really out of question. And we going to have much bigger potential mess with an attempt of rushed migration, which even if executed in timely manner before prospective merge would only have some funds migrated to a new market, thus splitting market liquidity and greatly increasing risks for both new and legacy eth markets. And i seriously doubt any user would appreciate that.

It would be nice to hear some input from risk guys on the topic, but i seriously doubt we are on the verge of 100% utilization. Frankly speaking i am not convinced we have a problem here. Indeed we might see some more utilization on eth market shortly before merge and might see some removal of eth liquidity, but as for the most users it’s not worth to bother i don’t believe we could hit even 70% utilization.

Even on old cToken models (the original contract) the interest rate model can be replaced—while the code of how the cToken itself works is immutable.

Calling on OpenZeppelin to confirm that the new interest rate model contract works with cETH, but this should not be an issue as far as I understand :slight_smile:

2 Likes

Well, if it is so, then introducing interest rate model with kink point to eth market would be a nice improvement regardless of merge.

And bumping up interest rates at much more steep rate at higher utilization rate looks like a reasonable precaution to me, even if probability of achieving such utilization rate doesn’t seems to be high.

2 Likes

I hope this is how it turns out, but I’m fairly convinced that without any action we’ll see a prolonged period of unsafe utilization, potentially starting days or weeks before the expected merge date.

With current weekly cost capped at around 0.26%, and market currently indicating over 3% expected value of forks vs mainnet ETH, it is economically rational for users to supply USDC or other collateral assets and borrow ETH to hold in their wallet. Potential “fork-farmers” are incentivized to open borrowing positions early, before all cETH liquidity is exhausted.

I made a simple sheet to estimate potential returns from fork-farming strategies: ETH Liquidity Risk - Google Sheets

@cylon would love OZ’s input on this! Also curious if borrow caps can be implemented for cETH market. Looks like that functionality is in the Comptroller implementation but not sure if there could be any compatibility issues with legacy ctoken.

Thank you Robert, amazing feedback. We should stress out or set in the proposal that parameters to revert back to normality n blocks after merge.

Thank you for opening this issue on the table.

For borrow caps, (if I remember correctly) it is managed by community multi-sig. (no governance voting) but not sure it is possible to set it for legacy cETH.

Borrowing cap history (Jun, 2021)

For changing interest model proposal, I agree that it could reduce borrowing demands a little bit but won’t much helpful as long as expected profit is greater than its borrowing cost. So, I only agree that set borrow caps for ETH option without modifying interest model itself. and another reason is that it has no guarantee for its merge schedule. It can be canceled/delayed with various reasons. Then should we change its interest model again depending on merge schedule?

and if it is not possible to avoid 100% utilization situation, I was wondering how to support Compound users who want to withdraw ETH under 100% utilization. The usage of reserve(for ETH) is not clearly described in the document but this would be one of solution to support them.

1 Like

Changing the IRM in a way that isn’t punitive at modest utilization but protects against a run on the protocol’s ETH liquidity makes sense, so I support the idea to shift the kink out to 80% utilization.

The only part I’m skeptical of is the proposed rate at 100% utilization. 1000% annualized sounds extreme at first glance but is, in my view, generously modest on the daily-to-weekly timescale of the merge/fork. We can learn here from the experience of AMPL on Aave, where borrow costs north of 100,000% annualized aren’t enough to maintain liquidity for AMPL lenders during short-term periods of significant positive rebases. Perhaps the sheer size of ETH money markets makes the comparison moot, but the benefits of a much steeper increase post-kink seem, to me, to outweigh the costs if the goal is to successfully incentivize some residual liquidity in the ETH market. Why not make the rate at 100% utilization something on the scale of several percent daily instead of annualized?

2 Likes

Thanks, @monet-supply, for the thoughtful proposal. Here we provide Gauntlet’s analysis of the impact of the proposed changes under different scenarios.

Given that a user can potentially benefit from the forked PoW ETH (ETHW) by borrowing ETH before the merge, we formulate a rational user’s decision logic as follows:

A user will borrow ETH if the expected ETHW value exceeds the ETH borrowing interest and the transaction cost (price slippage for selling ETHW on a centralized exchange, gas fee).

The proposal updates the interest rate model to a jump rate model, accelerating the interest rate if the pool utilization exceeds the Kink. As seen from the above formula, the efficacy of the interest rate change also depends on the expected yield of fork farming (expected ETHW price / ETH price) and the duration of ETH borrowing (time between borrowing ETH and selling ETHW to USD on a centralized exchange).

As pointed out by @allthecolors, the effect of the PoW fork is similar to the effect of a positive Ampleforth rebase, where both create profit opportunities at a scheduled time. We conducted a similar analysis of the relationship between AMPL rebase and AMPL interest rate. Similar to the positive AMPL rebase, if ETHW retains non-negligible value, raising the interest rate cannot completely eliminate 100% pool utilization since the borrow duration can be short (within minutes). Even if the maximum borrow rate is 1000%, a daily borrowing cost of 0.66% is negligible if a user only borrows ETH for a few minutes. However, raising the interest rate can make ETHW fork farming less profitable, reducing the time of 100% utilization. The downside is that raising interest rates makes the market more unpredictable when the ETH pool utilization exceeds the Kink.

If the community’s goal is minimizing ETH illiquidity, it’s more effective to set a low borrow cap (like what @monet-supply suggested), and the community multi-sig can update the borrow cap when the Kink is lower than it, since

  • The acceleration of borrowing cost will not kick in if the borrow cap is less than Kink.
  • Predicting the value of ETHW and the amount of ETH supply on Compound around the Merge is difficult.
  • Increasing interest rate won’t completely eliminate 100% pool utilization if ETHW retains non-negligible value.
  • Increasing interest rate makes the market more unpredictable when the ETH utilization is above Kink.
  • The governance process for updating interest rates is slow.

Conclusion
We support upgrading ETH’s interest rate model, but increasing ETH’s interest rate at 100% utilization doesn’t completely solve the ETH utilization problem. We support setting a borrow cap for the cETH market of 100,000 ETH, per Monet Supply’s suggestion.

6 Likes

Responding to @monet-supply and @rleshner’s requests here.

OpenZeppelin did a technical review and can confirm that the interest rate model can be replaced on cETH. We can also confirm that borrow caps can be set in the comptroller for cETH and we don’t foresee any issues.

If for any reason you plan to use a new contract for the jump rate model rather than the ones already used by the protocol, we would, of course, like to audit it before a governance proposal is submitted to perform the changes.

5 Likes

Thanks @monet-supply for creating this proposal, @pauljlei for providing Gauntlet’s analysis of the impact, and for everyone else’s comments.

The ETH market has been long due for an interest rate model upgrade. A mere 15% borrowing rate on ETH at 100% utilization isn’t much, and 100% utilization can be very problematic.

The updated parameters for the new interest rate model look great and in my opinion, will prevent 100% utilization for long periods. However, I do not think this interest rate model will be enough to prevent 100% utilization in the moments leading up to and following the merge. I think this model in addition to a low borrow cap is best.

2 Likes

Something important to point out is that the rates we set are essentially APR whereas the protocol actually pays/charges APY and compounds each block. 1000% would be well over 20k% APY.

2 Likes

Thanks all for your comments / analysis!

Responding to various feedback received so far:

I agree that borrow cap may be the more effective measure to prevent against cETH utilization reaching 100%, but rate model change provides a bit of a second layer of defense against liquidity risk. If enough users withdraw their ETH to the lead up to the merge, the borrow cap might no longer be effective to prevent 100% utilization; if this happened the rate changes (which cannot be triggered in short time period due to governance voting and timelock delays) would help incentivize users to deposit ETH and help ease the liquidity crisis.

I think the merge timeline seems to be solidifying, but if it was significantly delayed the rate changes could always be reversed.

I set up a pool for cETH/ETH on Uniswap v3, and added liquidity from just above current price to roughly 8% discount. Somewhat surprisingly, this pool is already getting really high volume and has been earning double digit % yield. If liquidity grows deep enough, this could allow liquidators to sell cETH into the pool in the event cETH is fully utilized. Ability to purchase cETH at a discount greater than expected ETH fork value could incentives traders to refill ETH liquidity in the pool.

We could use a higher borrow rate at max utilization. For example, at 1,000,000% APR the daily borrowing cost would be ~2.55% (vs ~0.65% daily cost at 1,000% APR). If enough users withdrew ETH so the borrow cap was no longer higher than ETH supplied, this would help limit time period of 100% utilization. But, it would still be possible to see hours of full utilization, so I think this should still be treated as a backup rather than primary defense mechanism.

This in an important point. I wonder if it would be possible to work backwards from target annualized rates at zero, optimal, and max utilization to the specific per block interest rate values needed to achieve these target rates?


Also wanted to go some expected/possible outcomes resulting from this proposal.

Currently cETH has total deposits of roughly 495,000 ETH, and 3.1% borrow utilization. The proposed 100,000 ETH borrow cap would limit utilization to ~20%, which if fully used would result in a 6.5% borrow rate and 1.04% supply rate.

Assuming 1 month until the merge takes place (and accompanying POW fork), ETH borrowers would face roughly 0.5% total borrow cost to hold their position open through the merge. Considering that market indications of ETH fork value are closer to 2-3%, it seems likely that the 100,000 ETH worth of borrowing capacity will be fully utilized after this limit is put in place due to expected profitability of borrowing ETH at these rates and holding through the merge.

It’s possible that some traders may even front-run the proposal’s execution, resulting in a total amount borrowed exceeding the 100,000 cap. However, total amount borrowed is unlikely to exceed 80% of total cETH supply due to extremely high cost of holding positions open for multiple days/weeks when above the new rate model’s kink point.

If total borrows reach very high levels as this proposal is being executed, Compound should have time to pursue an additional interest rate model change to encourage repayments back towards the 100,000 ETH borrow cap.

1 Like

Isn’t 100k borrowing cap a bit too conservative? The idea of temporary setting it, as well as ramping up rate curve is not really about ripping users of their money, or their potential profits. It’s for the unlikely event of making protocol illiquid at a time of a merge if it suddenly will experience a huge borrow demand as well as potential supply withdraw.

Thus, something in range of 200-250k sounds more reasonable. As measures discussed here are not for preventing people from making money by using services, provided by protocol, but rather to ensure that those actions wouldn’t jeopardise overal stability of protocol and convenience of other users. I’d say while cap shouldn’t be too much agressive, it shouldn’t be too conservative either.

It’s not for a protocol to decide for users how they should act in anticipation of merge for their own benefit. As long as protocol can maintain uninterrupted service in a safe manner it shouldn’t be restricting users on their activity.

20% of utilization is not great utilization for any market, 40-50% projected at a time of potential spike still sounds conservative enough to have enough headroom to navigate through merge in a safe way.

1 Like

The issue I see is, for ETH users who are only trying to maximize their return on assets, the best option will nearly always be to withdraw from the market rather than trying to earn interest in cETH. Even if borrowers end up paying total interest equal to fork value, and utilization is at or near 100% during this time (which would be dangerous for long periods), they would still face 20% reserve factor.

Rather than catering to ETH yield seekers, I think Compound should focus on collateralized borrowers (supplying ETH to borrow eg stablecoins), who may be a more reliable source of supply side liquidity. I assume many of these users place greater emphasis on minimizing insolvency and liquidity risk vs potential to earn a bit of incremental yield on their cETH collateral. If Compound can ensure this, I would bet at least 100k ETH or more of deposits would remain through the merge, avoiding any periods of 100% utilization entirely.

Setting a borrow cap of eg. 250,000 COMP would allow for greater yield for depositors and reserve growth for the protocol, but if it turns out that we underestimated the amount of users who actively withdraw in the lead up to the merge, it may not be possible to set a lower borrow cap retroactively or make additional adjustments to interest rate model to preserve liquidity.

Also, the borrow cap guardian (community multisig) could theoretically raise the borrow cap in the days before the merge if it becomes clear that liquidity risk is lower than initially feared.

1 Like

I fully agree that Compound should cater to collateralized borrowers. Actually i don’t actually believe there is pretty much any meaningful amount of Suppliers of eth for yield purpose, as even 0.15% if include COMP is nothing impressive. It’s fairly easy to get single digits apr yield on eth, and even double digit, if that person can take a bit of volatility in amm, and able to set range for his liquidity appropriately.

I also don’t personally expect high utilization at all, and while appreciate pointing to it, and accept the case as possible, still don’t think as higly probable. On the contrarary, i believe it’s quite unlikely, as potential fork is likely to be a train wreck and more talks than actual money to be made. So i am expecting most of supplied eth to be collateral, which is likely going to just sit through the merge without movement.

The motivation of me questioning if cap is too low, is primarily because the core concept of building decentralized protocols on blockchain is permissionless and 100% available service. If the service is going to be restricted by governance every time it deems apropriate, rather them dictated by market conditions we are setting bad precedent here.
Even if merge is once-in-a-lifetime event, there eventually might be other concerns in future.

This is a solid argument. It’s hard to say though if multisig going to react in timely manner at all and provide liquidity to the market if there would be demand (which might be there even if for a short time)

Whatever the CAP in the end is going to be decided by governance i would like to basically see 2 things:

as less negative impact on current suppliers and borrowers as possible

as much headroom for new borrowers as market need without putting at too much risk stability and liquidity of eth market through the merge.

Ability for multisig to raise the cap if supply side remaines relatively stable and borrowing side will hit the cap more or less resolves most of concernes. Though technically the most efficient way for users to utilize their capital would be hours if not minutes before actual merge. So we might not really see any serious movement up to the very last moments.

Also the very fact of existence of borrow CAP does remove initiative for suppliers to withdraw prior to merge at all, even if they want to play the fork game. Since it wouldn’t be possible to borrow even half of supply because of CAP (which will also appear on the ethpow after activating on mainnet), Supplier then can withdraw eth on the forked chain AFTER the merge. His eth still going to be there in Compound contract and while potentially couldn’t be borrowed on forked chain due to the cap reached there, would be redeemable still.

1 Like

I agree with this, but I think it’s a balancing act between availability of borrowing ETH, vs availability of withdrawing deposited ETH or liquidating unsafe positions. Not allowing borrowing full amount of ETH is an inconvenience, but inability to withdraw or liquidate is a safety concern that puts the rest of the market (including non-ETH users) potentially at risk.

At least based on currently stated ETHPOW plans, the cETH contract will be “frozen” manually by their client implementation and it will not be possible to withdraw funds after the fork. Maybe after imposing a borrow cap we could ask the ETHW people to remove this address from the freeze list but I’m not sure if it is worthwhile to even engage with them at all.

2 Likes