Over the last few weeks, we have analyzed Compound and particularly compSpeeds for each market. We have modeled a wide range of speeds and did our best to estimate the resulting liquidity. While we have learned an immense amount about the protocol, its interest rates, and the effects of adjusting the supply and borrow compSpeeds, the result wasn’t what we hoped for.
When we jumped down this rabbit hole, the goal was to optimize the existing compSpeeds so that the protocol gets more bang for its buck. That is, we wished to find a way to reduce compSpeeds without decreasing market liquidity too much. Unfortunately, it wasn’t as meaningful as we hoped.
The questions we asked ourselves went something like this:
- How do we optimize the compSpeeds such that the protocol gets more bang for its buck?
- Do legacy markets (and markets with a clear excess of capital) require compSpeeds at all?
- If the goal is liquidity for borrowers, are there more efficient methods to achieve that? (eyeing DAI)
- How much participation is Farmers vs. Borrowers? (Farmers are seeking the best yield by parking their capital. Borrowers are users who supply a different asset than they are borrowing)
- What are the target yield rates for each market? Why do the yield rates differ on DAI vs. USDC & ETH vs. WBTC?
- How much liquidity does each market require? (Isn’t the kink supposed to ensure there is sufficient liquidity?)
- Is COMP farming influencing interest rates and utilization?
- What is the cost-benefit of compSpeeds?
- What is the objective of a compSpeed?
- Do we need compSpeeds on substantiated markets?
Many of these questions are rabbit holes in themselves. We have found answers to several of them. (Abbreviated answers below. We’re happy to go more in-depth)
- How do we optimize the compSpeed such that the protocol gets more bang for its buck?
- A complicated question that is difficult to prove. If we assume all participants are Loopers (users supplying and borrowing the same asset for profit), then incentives change in tandem with market participation. Hard to say what will happen with all of the external factors involved.
- Do legacy markets (and markets with a clear excess of capital) require compSpeeds at all?
- No.
- If the goal is liquidity for borrowers, are there more efficient methods to achieve that? (eyeing DAI)
- Yes, lobbying MakerDao to implement the Direct Deposit Module would be a good example. (Something GFX Labs is working on)
- How much participation is coming from Farmers vs. Borrowers? (Farmers are seeking the best yield by parking their capital. Borrowers are users who supply a different asset than they are borrowing)
- Focusing on the ETH market and its participants shows significant natural activity.
- What are the target yield rates for each market? Why do the yield rates differ on DAI vs. USDC & ETH vs. WBTC?
- We know the market is happy with the current rates, but beyond that, it is a guess. The next best data points are the much larger perpetual futures and futures markets.
-
How much liquidity does each market require? (Isn’t the kink supposed to ensure there is sufficient liquidity?)
-
Is COMP farming influencing interest rates and utilization?
- Not if we assume all participants are Loopers (half-answer).
- What is the cost-benefit of compSpeeds?
- At a high level, the protocol pays in COMP and collects via the reserve factor revenues from the additional funds deposited.
- What is the objective of a compSpeed?
- In our opinion, the compSpeed is for bootstrapping new markets.
- Do we need compSpeeds on substantiated markets?
- Probably not.
Questions 8-10 are the ones to focus on. The protocol is currently spending ~$160m in compSpeeds. If we agree the primary use case of compSpeeds is incentivizing liquidity (also known as TVL), it can be said that the protocol has more than enough liquidity in most markets and is thus overspending on liquidity.
While we wish there were a clear optimal proposal for the community to consider, we are left with a much harder question: how valuable is liquidity?
If reducing annual compSpeed spend from $160m to $80m would result in the TVL dropping by $2b, would this be problematic? What about a reduction from $160m to $40m that causes TVL to drop by $4b? What if we got rid of it altogether and TVL dropped by $6b?
Instead of projecting future activity, we can also look at historical performance. Over the last month, COMP has dropped nearly 40%, and thus the dollar value of rewards dropped by nearly 40%. However, TVL only dropped 12% over the same period, while ETH dropped by 11% at the same time. This, along with a significant decrease in yields, demonstrates that Compound participants are inelastic to yield.
We have spent close to 100 hours trying to find an objective conclusion to present to the community. At this point, it is clear we could spend hundreds more hours researching and analyzing the protocol but we wouldn’t be addressing the main point anytime soon if we did that.
What is the primary objective of Compound? We think it is to provide a place for people to borrow assets. To achieve that objective, Compound has users who supply assets, and to operate without a central entity, interest rates are chosen programmatically.
What is the difference between the interest rate curve’s purpose and compSpeeds?
- The interest rate curve has one main goal: to ensure there is liquidity available to be borrowed and for lenders to withdraw from the pool. The invention of the v2 interest curve (in use by modern ctokens) includes a “kink” parameter. Simply put, when the market utilization exceeds the kink (generally 80%), the curve steepens to incentivize new deposits and repayments. The interest rate curve’s subgoal is to provide an opportunity for lenders and borrowers to utilize the protocol by providing competitive interest rates.
- compSpeeds distribute a fixed amount of comp per block to a market and thus its participants. The COMP distributed acts as an incentive to participate in the market. Markets with low participation (like new markets) may benefit from an incentive to increase participation.
What should the protocol do?
In an ideal world, we go back to a neutral state and adjust from there. Reduce compSpeeds to zero and let the market rebalance. Once the market is at its neutral state without incentives, we can update the interest curves so that it targets a sufficient amount of liquidity while offering competitive interest rates. Then, for markets with low participation, we can add compSpeeds until there is sufficient participation.
However, that path is more of the “rip the band-aid off and do some aggressive physical therapy.” Perhaps a more balanced approach for the protocol to consider is to update interest rate curves and simultaneously and linearly reduce compSpeeds across the board. The primary downside is that it will take a long time to linearly reduce compSpeeds, and it introduces noise into the process of updating the interest rate curves.
So we leave the community with a decision to make:
- Option A: Rip the band-aid off and aggressively perform physical therapy, at the cost of shocking market participants but with the benefit of getting healthy faster.
- Option B: Carefully remove the band-aid and build a long-term physical therapy schedule.
- Option C: Y’all crazy. Compound is fit af. Nothing is wrong.
- Option D: Other - comment below
Here is a link to a Google Sheet with the entire protocol modeled. If you are interested in playing around with the protocol and seeing how it functions, feel free to make a copy. We have it configured so it pulls the current info straight from the blockchain into the sheet. If you notice the info on the sheet is dated, send Getty a message and he can call the function to update it. Unfortunately, it is not at a state where we can make the function publicly available.
Separate from the options above but related, GFX Labs has a long list of improvements it wants to bring to Compound, and this post is the first big project we’re interested in tackling. We think Compound is in need of significant maintenance and improvement and we’re interested in allocating significant resources towards the protocol. Getty is currently receiving 500 COMP/year as a part-time contributor. If the community is interested in GFX Labs (Getty & crew) participating in a more meaningful fashion, we would love to talk about canceling Getty’s grant and opening a new one for GFX Labs. More information to follow at a later date, just want to begin floating the idea.