paint-brush
The State of the Compound Protocolby@fearsomelamb789
330 reads
330 reads

The State of the Compound Protocol

by FearsomeLamb789July 7th, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The [Compound Treasury] is only accessible to accredited institutions with more than 5M of net assets and a minimum balance of $100K. It is also the first DeFi company to receive a credit rating from S&P Global Ratings. The main features of the Compound Chain are: A stand-alone distributed ledger with no lockup periods and payouts distributed within 1 business day. Users can upload supported assets from a variety of blockchains using any supported asset as collateral. They can transfer and download assets to and from any peer chain address.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - The State of the Compound Protocol
FearsomeLamb789 HackerNoon profile picture

Over the past months before coming up with the Compound III proposal, the Compound core team has been focused on improving the accessibility of the Compound Treasury to institutional investors

Compound Treasury

They have been focused on launching and scaling their treasury in order to provide an institutional on-ramp to Compound markets. The Compound Treasury is only accessible to accredited institutions with more than 5M of net assets and a minimum balance of $100K


  • Fund accounts with USDC on-chain transfer or USD via bank wire
  • Fixed 4% APR accrued daily and compounded. Institutions supply their capital and Compound deploys the funds to the protocol
  • Daily liquidity with no lockup periods and payouts distributed within 1 business day
  • Compliance with institutional customer under applicable law such as Rule 506(c) of Regulation D. It is also the first DeFi company to receive a credit rating from S&P Global Ratings


Also, they have been focused on researching new assets and L2 alternatives. They introduced Gateway for cross-chain interest rate markets.

Gateway (Compound Chain) and multi-chain

Gateway is a blockchain built on Substrate that allows Compound to create a single borrow and lending market while including assets from other blockchains. COMP token holders appoint validators and these validators earn rewards paid in the native token CASH.

Here are the reasons that lead to the inception of the Compound Chain:


  • The Compound Protocol in its current state aggregates the risk of its supported assets. One bad asset can spread the risk to the rest of collateral assets.
  • High transaction costs in Ethereum L1 can price out smaller transactions
  • The protocol can't support any asset outside the Ethereum blockchain


The main features of the Compound Chain are:


  • A stand-alone distributed ledger
  • Users can upload supported assets from a variety of blockchains
  • Users can borrow the CASH native token using any supported asset as collateral
  • Users can transfer and download assets to and from any peer chain address
  • The same Compound Governance on Ethereum will govern the Compound Chain

Starport

Starport contracts are the connector for the peer chains that live on Gateway. Starport is responsible for locking or unlocking assets on the Compound Chain (once validators have reached consensus that an event has occurred).

Accounts and asset transfers

Users can interact with the Compound Chain using their existing key pairs (e.g. private and public keys of Ethereum, Solana...) and the balance will be automatically updated. For example, an Ethereum address can send ETH on the Compound Chain to a Tezos address, or a Tezos address can send Compound Chain WBTC to a Solana address.


Compound Chain is capable of creating native assets and making them accessible to peer blockchains, as well as supporting those assets as collateral (ETH, UNI, DOT, DIEM...).

The way users bring assets to the chain is via a Starport contract by calling the smart contract with lock(asset, amount). Afterwards, validators will monitor the event log and stream the locking action. Whenever a node mines a block confirming the locking event, the rest of the nodes will validate such block and debit the asset to the user's address. The way to conceptualize this is that the Compound Chain will now keep track that the user's Ethereum address has N tokens of a assets A in it.


The same applies in reverse when a user wants to download an asset from the Compound Chain to the original peer blockchain. One requisite is that the user address and the asset must both exist natively on the same blockchain. On top of that, the asset withdrawal must not violate the user's collateral requirements on the Compound Chain. The process to withdraw is as follows:


  1. User signs an extraction request and submits it to the Compound Chain.
  2. The sign request is queued and processed by off-chain workers, noting the block where the request was added on.
  3. Validators sign an extraction request and an extraction notice is forwarded to validators.
  4. Starport retrieves the extraction notice and it is redeemed for the assets.


Downloading an asset means bringing the asset onto peer blockchains. In this way, any asset on any blockchain can be used on Ethereum or other blockchains.

Risk management

Risk management is performed with Asset Caps. Asset Caps are a way to limit the market risk of individual assets on the Compound Chain. This is achieved by restricting the maximum quantity of an asset that can be uploaded to the Compound Chain. By default, assets are unsupported and, therefore, have a cap of 0. This is also helps in preventing that users accidentally transfer unusable assets to a Starport.

Borrow activity

Borrowing is allowed when an account owns sufficient collateral on the Compound Chain to cover their debt.


The Compound Chain relies on Collateral Factors from 0 to 1 to represent the utility of an asset used to borrow another asset. It is important to note that these assets do not need to be native to the account's chain. This means that, for example, an Ethereum address can hold Compound Chain XTZ as collateral.

Liquidations

Liquidations occur on a first-come first-serve basis, and absorb an account's debt in exchange for the account's collateral plus an incentive (e.g. 5%).


Price Feed Data is used to perform liquidity checks on all operations that might:


  • reduce an account's collateral
  • increase an account's borrow balance
  • test whether an account is liquidatable


Due to the low cost of validating blocks on the Compound Chain, these actions can be performed in near real-time. Thus, no benevolent users or incentives are required. However, there is the possibility that this system might evolve in the future with the creation of decentralized exchanges on the Compound Chain itself.

Native token: CASH

CASH is the native token and unit of account within the Compound Chain. An analogy to the asset's minting would be DAI, where the asset is created by the protocol through borrowing activity. This means that the amount of CASH held by users and validators is always equal to the amount of CASH debt.


CASH is also used for paying transaction fees on Compound Chain. Just by uploading a supported collateral asset, users are capable of borrowing CASH and paying transaction costs on the network.


The process for downloading CASH is similar to downloading other assets. The only difference is that instead of withdrawing an asset from a Starport, CASH in instead minted by the local token contract while crediting balance on Compound Chain. CASH can still accrue interest on the Compound Chain while being held on peer blockchains. This is possible by synchronizing the Yield interest index with the peer blockchains on a routine basis.


Despite being initially valued at 1 USD, CASH is valued by the protocol via liquidity calculations at an arbitrary price. Furthermore, governance can allow CASH to begin tracking an alternate index such as the CPI in order to protect users against US inflation.

Interest rates

CASH automatically earns compound interest. For example, if the yield is 3%, a user that holds 100,000 CASH will hold 100,008.21 CASH after 24 hours have passed.


The borrowing cost for CASH must be greater or equal than the yield. Otherwise CASH can be held and borrowed unproductively. CASH debt also increases by a borrowing index

$$ Cost_{CASH} = Yield_{CASH} + Spread_{CASH} $$

where Yield and Spread are core parameters controlled by governance.

Governance

Compound Governance on Ethereum can be streamlined to perform governance actions on the Ethereum Starport. This allows for updating system parameters such as:


  • Initial validator set
  • Supported assets, supply caps, and collateral factors
  • CASH interest rates

Compound III, a.k.a Comet

Compound III was publicly announced on June 29, 2022 after releasing their new multi-chain strategy to the public. This strategy is based on the ability for its own Compound Chain to deploy and run the Compound Protocol on all EVM compatible chains.


The deployment strategy is called comet, and it essentially is a money market protocol for Ethereum and compatible chains. The Comet protocol revolves around a set of smart contracts tat implement Comet's core functionality. This is specified by the CometMainInterface.sol interface. An extra set of functions that do not fit within the main Comet.sol contract can be found in the CometExt.sol contract, which Comet.sol delegates via DELEGATECALL for unrecognized function signatures. Comet also contains a set of configurator contracts and supplementary contracts that facilitate functions to be called in a single transaction or allow users to claim rewards based on protocol participation.


The contracts are upgradeable via OpenZeppelin third-party proxy contracts: TransparentUpgradeableProxy.sol, and ProxyAdmin.sol. ConfiguratorProxy.sol and CometProxyAdmin.sol extend the functionality of such contracts respectively. Such extensive functionality overrides the _beforeFallback function so that the proxy's admin can directly call the implementation, and also introduces a new deployAndUpgradeTo function to upgrade Comet proxy's implementation, which is needed so that Proxy.upgrade() can be called in one transaction passing the address of the new Comet implementation.


On its Forum announcement, Compound claims that Comet is designed "with borrowers in mind, to be capital efficient, gas efficient, safe, and simple to govern". Here are the main changes to the main protocols:


  • All assets other than the single borrowable base asset (probably CASH, although not confirmed) can be used as collateral. This reduces risk and improves capital efficiency due to the base asset earning and compounding interest, even while being held on peer chains.
  • Each collateral asset will have its own collateral size limit or supply cap.
  • Separate borrowing collateral factors mean different liquidation collateral factors, which protect borrowers from early liquidation
  • The liquidation engine has been redesigned completely on the Compound Chain for increased protocol safety while preserving liquidator incentives.
  • The price feed is designed to use Chainlink instead of a custom oracle. This has the advantage that Chainlink is a portable solution to EVM chains beyond Ethereum, although governance can modify this decision in the future
  • Full control over the economic policy via governance (e.g. supply/borrow interest rates that can be decoupled from one another)


To conclude, as the community finishes auditing the open-source Comet repository, the core team will keep monitoring the current testnet before releasing an initial deployment on Ethereum. This deployment will provide interfaces, liquidation bots, account management tools and advanced tooling to facilitate deployments across other EVM chains.

Sources

Compound Protocol whitepaper Compound Markets Maker Protocol Whitepaper Open Price Feed Compound MultiChain strategy Gateway Documentation Compound III


Also published here.