☄️ Compound III

A few months ago, we began the discussion for a new multi-chain strategy; a version of the Compound protocol that can be deployed and run on all EVM compatible chains.

Today, Compound Labs is excited to release a code repository to the Compound community, which we hope can form the basis of a multi-chain deployment strategy: comet, which the community has been referring to as Compound III.

Compound III is designed with borrowers in mind, to be capital efficient, gas efficient, safe, and simple to govern.

The repository uses a business source license, which Compound governance can grant usage to, as it sees fit, by making changes to compound-community-licenses.eth, a new ENS domain owned by the community.

Developers can begin planning integrations with Compound III, and auditing / suggesting improvements to the codebase.

Changelog

The following is a summary of the major changes from the existing protocol:

  • Compound III deployments feature a single borrowable (interest earning) base asset. All other assets are collateral. This reduces risk, and can improve capital efficiency.
  • Collateral size limits can be set for each collateral asset (a.k.a. supply caps).
  • There are separate borrowing collateral factors, and liquidation collateral factors. This protects borrowers from early liquidation, and can improve risk management.
  • The risk management / liquidation engine has been entirely redesigned, to increase the safety of the protocol while preserving liquidator incentives.
  • The price feed doesn’t expect a custom price oracle; instead, it is designed to use Chainlink directly, which is portable to EVM chains beyond Ethereum; governance can modify this decision in the future.
  • Supply/borrow interest rate models can be decoupled from one another; governance has full control over economic policy.
  • Advanced account management tools, which can enable new UX patterns and applications on top of the protocol.
  • An abstract incentive metric is built natively into the core contract, to enable rewarding user activity from day one of the protocol. A rewards system is elegantly added on top to provide incentives similar to v2, but flexible enough to be extended by governance in new ways.
  • A code repository which includes sophisticated tooling for managing and testing deployments, based on years of experience and feedback from prior versions of the protocol.

Next Steps

Over the coming weeks, we look forward to working with the community to finish auditing the protocol; learning from the current testnet; releasing an initial deployment on Ethereum, with interfaces, liquidation bots, and tooling; and beginning deployments across other EVM chains with tools for governance to manage those deployments.

If you have any questions, please join the next Community Developer call in Discord! :chart_with_upwards_trend:

22 Likes

Thanks for sharing comet plan.

I was wondering it contains Chainlink’s proof of reserve product for bridge assets. I think that we need it to reduce potential risk like bridge hacking event(Harmony Horizon bridge exploit. Consequences to Aave V3 Harmony - Governance - Aave)

3 Likes

Will be huge for devs. Could definitely see synergies with new Polygon tools – should be a main chain we interact with.

3 Likes

I’m really digging this approach. In my opinion, it’s the perfect example of how two protocols can exist in perfect harmony.

Compound is now chosing the streamlined, simple route, albeit very powerful, whereas Aave has tagged on one feature after another at the expense of other factors.

Especially in a multi-chain/L2 world, I can definitely see this thrive in a big way. Do we have any idea around the base asset itself yet, or is this being kept secret as part of the magic sauce?

I honestly am contemplating of liquidating my entire Aave position to enjoy the simplicity and safety of this new model, you guys really nailed this in my opinion, and I’d personally be very much looking forward to the actual formal proposal detailing the next steps to get Compound to this new version!

Big thumbs up, the long wait was 100% worth it!

5 Likes

I’m not sure exactly what you’re asking but we definitely agree, safety first! The core protocol doesn’t rely on any bridges, but for multi-chain governance / cross-chain liquidity that’s always our primary concern for any bridge we would propose to introduce.

1 Like

Personally, I’d love to see this deployed on Polygon! It will be entirely up to governance, but we will work with @hamzahkhan to pave a path forward and help guide the community :raised_hands:

1 Like

Thanks! We can’t wait to get to a mainnet proposal too. I would expect a proposal similar to what’s on testnet, e.g. at least a USDC base market and an ETH base market on Ethereum. Probably similar on other chains using a local stablecoin and/or native asset to start.

Super excited to see this come to fruition. Been wanting to see compound go multi chain for a while now. Personally I think Polygon would be the best first step, only question remains is should we go for the POS chain or wait for the zk roll up Hermez which is coming soon I’ve heard

Can we PLEASE get a vote for polygon asap

it’s actually oracle issue rather than a bridge itself. in the case of recent harmony case, there was the gap between real backed assets on bridge and reported asset value from the oracle.(and this gap made potential insolvency issue using over valued collaterals) That’s why I mentioned proof of reserve feature to avoid similar cases when Compound protocol operate on multichain env.

3 Likes

This probably needs to be dealt with on an asset by asset basis by governance? Bridged assets are basically at least as weak as the bridge itself, I’m interested to understand how exactly the proof of reserve product gives further protection.

More generally, I think there’s a lot to consider/reconsider about the price oracle(s), they are still one of the biggest (if not the biggest) attack vector(s) and being unanchored is a bit scary.

3 Likes

Compound Cash? Stablecoin? or any asset that needs to be single borrowed?

I don’t know why this isn’t earlier implemented? Aave has that almost 2y

Where is possible to find in detail about Compound III?

Curious if there’s a possibility of multiple assets of the same type being borrowable within a single market? Eg. a USD stablecoin market with several collaterals (not borrowable), and several USD stablecoins (borrowable but not usable as collateral).

On first look, it seems like this would be fine from a risk management perspective:

  • Collateral assets would have generally the same variance with respect to each borrowable asset
  • Any upside variance in a borrowable asset that causes a short squeeze would only affect solvency of that particular borrowable asset (and not other borrowable assets or collaterals)
1 Like

From a risk management perspective yes, but code-wise not really. The contract is seriously optimized for a single base asset, and also the ERC20 wrapper might get weird, unless they all had the same interest indices, which I think would also be weird since the suppliers of each base / liquidity would be different.

If I understand correct, supplying assets will yield 1 global cToken that generates interest?
I’m building a dapp (uses Compound) that could profit heavily of the lower fees on other chains.

How will the redeeming happen and amount to be redeemed get calculated?

1 Like

Kind of, a positive supply of the base asset will look like an ERC20 balance and accrue interest. There’s no exchange rate (or you can think of it as internal), so the balanceOf is the amount of the base asset you can withdraw.

hey jared :wave:

what’s the blocker for not having an anchor in place? something tellor can help address? porting to any evm is not a problem for us either. (already on polygon, arbitrum, optimism)

happy to chat about it at the dystopia hack summit in sf. looks like we’ll both be there.

2 Likes

Over the past six weeks, considerable effort has gone into reviewing the Compound III testnet deployments, codebase, and documentation. Thank you everyone for your feedback, edits, audits, and testing.

Audits were completed by OpenZeppelin and ChainSecurity. These are significant documents that everyone in the community is encouraged to review.

Full documentation of Compound III is available for developers to prepare new application integrations, and for liquidators to begin building bots to protect the protocol.

Compound III is now ready for production!

The first deployment of Compound III is a USDC market on Ethereum. The release candidate contracts have been deployed; Compound Governance controls these contracts, and is solely capable of activating the market.

Deployed Contracts

cUSDCv3: 0xc3d688B66703497DAA19211EEdff47f25384cdc3 :notebook:

This is the main proxy contract for interacting with the new market. The address should remain fixed and independent from future upgrades to the market. It is an OpenZeppelin TransparentUpgradeableProxy contract.

cUSDCv3 Implementation: 0x42F9505a376761b180e27a01bA0554244ED1DE7D :notebook:

This is the implementation of the market logic contract, as deployed by the Comet Factory via the Configurator.

cUSDCv3 Ext: 0x285617313887d43256F852cAE0Ee4de4b68D45B0 :notebook:

This is an extension of the market logic contract which supports some auxiliary/independent interfaces for the protocol. This is used to add additional functionality without requiring contract space in the main protocol contract.

Configurator: 0x316f9708bB98af7dA9c68C1C3b5e79039cD336E3 :notebook:

This is a proxy contract for the ‘configurator’, which is used to set and update parameters of a Comet proxy contract. The configurator deploys implementations of the Comet logic contract according to its configuration. This pattern allows significant gas savings for users of the protocol by ‘constantizing’ the parameters of the protocol.

Configurator Implementation: 0xcFC1fA6b7ca982176529899D99af6473aD80DF4F :notebook:

This is the implementation of the Configurator contract, which can also be upgraded to support unforeseen changes to the protocol.

Proxy Admin: 0x1EC63B5883C3481134FD50D5DAebc83Ecd2E8779 :notebook:

This is the admin of the Comet and Configurator proxy contracts. It is a ProxyAdmin as recommended/implemented by OpenZeppelin according to their upgradeability pattern.

Comet Factory: 0x1C1853Bc7C6bFf0D276Da53972C0b1a066DB1AE7 :notebook:

This is the factory contract capable of producing instances of the Comet implementation/logic contract, and invoked by the Configurator.

Rewards: 0x1B0e765F6224C21223AeA2af16c1C46E38885a40 :notebook:

This is a rewards contract which can hold rewards tokens (e.g. COMP, WETH) and allows claiming rewards by users, according to the core protocol tracking indices.

Parameters :notebook:

The risk parameters for the USDC market were configured based on recommendations by Gauntlet. Supply caps are set to 0, and require a governance proposal to activate the market, before users can supply collateral or borrow USDC.

Collateral Asset Borrow CF Liquidation CF Liquidation Fee
WETH 82.5% 89.5% 5.0%
WBTC 70.0% 77.0% 5.0%
LINK 79.0% 85.0% 7.0%
UNI 75.0% 81.0% 7.0%
COMP 65.0% 70.0% 7.0%
Parameter Supply Rate Model Borrow Rate Model
Base 0.00% 1.50%
SlopeLow 3.25% 3.50%
Kink 0.80 0.80
SlopeHigh 40.00% 25.00%

Target Reserves: 5,000,000 USDC

Storefront Price Factor: 50%

Minimum Borrow Size: 100 USDC

Supply Reward Speed: 0.00 (usage is not tracked for rewards)

Borrow Reward Speed: 0.00 (usage is not tracked for rewards)

Next Steps

Everyone has a chance to review the contracts and parameters of the market, in preparation for its activation. Compound III is now just a governance proposal away from being live!

18 Likes

Fantastic news! Congrats @kevin, @jared, and the entire team who put in the massive effort to make Compound III possible.

We’re thrilled that Chainlink continues to be a part of Compound’s journey and look forward to helping Compound grow on Ethereum and beyond. Plus, there are emerging opportunities for strong collaborations like Proof of Reserve, as @dakeshi suggested.

Excited for the governance vote to officially launch CIII!

5 Likes

Ben from QiDao Protocol

Would love to see this on Polygon! We can certainly support Compound through liquidity deposits (kind of like what DAI does with Aave but with our stablecoin, MAI).

MAI is the first and main stablecoin on Polygon, so we have plenty of liquidity and market penetration. We recently got added into Aave V3. MAI is also used in all major DEXs on Polygon.

2 Likes