Compound - Project Breakdown | Revelo Intel

Compound

Last Updated: October 20, 2023

Overview

Compound is a decentralized money market with an open-source codebase based on the Compound Whitepaper published in 2019. The protocol defines the working mechanics of a decentralized borrow-lending market that algorithmically sets interest rates based on supply and demand.

Interest rates fill the gap in an economy between people with a surplus of assets they can’t use and people without assets. By trading the time value of assets in money markets, both parties can benefit from a relationship of non-zero-sum wealth.

Compound is a protocol that establishes money markets where lenders and borrowers can exchange assets through a liquidity pool that algorithmically adjusts interest rates based on supply and demand. This is all done in a decentralized manner without having to negotiate loan terms such as maturity, interest rate, collateral, or counterparty. COMP is the governance protocol of the protocol and allows holders to have a say in governance decisions.

Users who want to become lenders supply their tokens to a lending pool and start receiving interest on their deposits according to the current supply APY. Borrowers access the funds from the lending pool to take out loans and return the capital plus interest at a future date (there is no maturity date and all loans are perpetual by default).

Users deposit assets into a liquidity pool and these funds are then matched and passed down to borrowers. Compound achieves this by having depositors aggregate their funds in a lending pool. The assets supplied to a market are represented by an ERC20 token balance called cToken. cTokens entitle depositors to an increasing amount of the underlying asset that is being lent to borrowers. As borrowers take funds out of the pool (by pledging collateral), the lending pool for that market accrues interest. In this way, cTokens become convertible into an increasing amount of the underlying asset.

Lenders (depositors) provide funds to borrowers in return for interest on their deposit, and borrowers (loan takers) are willing to pay interest on the amount of money they borrowed in exchange for having access to capital immediately.

The interest that lenders receive and the interest that borrowers have to pay are determined by the ratio between the supplied and borrowed tokens in a particular market.

In other words, the interest that is paid by borrowers is the interest earned by lenders. This means that the borrow APY in a particular market will be higher than the supply APY.

Why the Project was Created

The protocol was ideated in 2018 as an alternative to meet borrowers and lenders in a decentralized market through a series of economic incentives dominated by algorithmically set interest rates. Compound was co-founded by Robert Leshner and Geoffrey Hayes. Before launching Compound, both of them held executive roles in Postmates, an America-based food delivery service. Currently, Robert is the CEO and Geoffrey acts as the CTO.

Prior to Compound, there were two major flaws in most blockchain assets:

Before the creation of decentralized money markets, users were forced to trust centralized parties to custody their assets. These exchanges were limited to certain customer groups and only supported a small number of assets. Furthermore, these are virtual positions, meaning that you can’t move a position on-chain in order to, for example, participate in an ICO or use those assets across DeFi.

In the past, peer-to-peer protocols attempted to facilitate both collateralized and uncollateralized loans between market participants. However, these solutions did not get too much traction, due to the significant costs and friction associated with matching lenders and borrowers who demand similar loan requirements.

In the beginning, Compound was a tokenless protocol where protocol upgrades were made unilaterally by Compound Labs. The protocol was still in a non-custodial stage and followed a process of progressive decentralization with the launch of the COMP token.

With regards to the protocol upgrade from Compound v2 to Compound v3, Robert Leshner, founder of Compound, mentioned that “the architecture of Compound V2 was too risky in that one bad asset can theoretically drain the entire protocol. In Compound V3, even if one asset plummets to zero, there is no risk for uses of other assets”.

In addition to reducing the number of assets supported by the protocol, Compound v3 also cracks down on unauthorized forks. All subsequent forks will require approval from governance. This will prevent situations such as a reentrancy bug that was exploited in multiple Compound forks, leading to over $100M in combined losses.

Roadmap

Compound launched on mainnet in September 2018. Compound V2, the default and predominant version of the protocol, was deployed in May 2019. This upgrade introduced additional assets with individual risk models.

Compound does not have an official roadmap. In a medium post published in 2019, Robert Leshner noted the importance of handing control of the protocol over to the community. Meanwhile, the core team would focus on the creation and collateral factor for supported assets and the establishment of a decentralized governance system.

A year later, this became effective and Compound completed a process of gradual decentralization after the launch of the COMP tokens. This reduced the administrative privileges of the core tema by replacing the administrator contract with a timelock function and adding a Pause Guardian to the protocol. Community governance went live in April 2020 and the COMP token distribution started in June 202o (COMP tokens being distributed linearly over the next 4 years).

Encumber

Encumber was introduced on July 7, 2023.

Encumber serves as a mechanism that allows users to separate their token ownership from the ability to transfer those tokens. When a token owner encumbers their tokens to another account, they grant that account the exclusive right to transfer the tokens, all while retaining ownership. This functionality empowers token holders to commit to specific terms within a smart contract without actually transferring ownership of their tokens to an external address.

Through the use of Encumber, token holders can maintain certain ownership privileges like receiving airdrops, participating in governance decisions, or accessing content and events, all while actively engaging in DeFi activities. Encumber aligns with the non-custodial principles of DeFi, and it simplifies various DeFi use cases, including serving as collateral for lending markets, facilitating options contracts, and enabling swaps.

The Encumber functionality works by adding two main actions, encumber and release, to existing token standards. These actions are facilitated through the following functions:

The use cases for “encumber” are diverse and offer innovative ways to interact with tokens within the blockchain and DeFi ecosystems, including:

These use cases demonstrate how “encumber” can enhance the functionality of tokens in various scenarios, providing greater flexibility, security, and alignment of incentives within the blockchain and DeFi applications.

V2 Markets Deprecation

The Compound community had expressed interest in deprecating the v2 market along with Gauntlet recommendations, with the goal of pausing of supply for v2 tail assets.

Phase 1 of the v2 deprecation plan was executed on September 19, 2023.

Phase 2 was executed on October 20, 2023.

It is expected that users on v2 $USDC markets will eventually migrate over to V3.

Team

Compound Labs relinquished control of the Compound protocol to the Community in 2020, following the introduction of decentralized governance through the COMP token. Compound Labs is an open-source software development company building tools, products, and services for the decentralized finance (DeFi) ecosystem.

Compound Labs has a team of around 20 people. Some key members include:

Sector Outlook

According to DefiLlama, Compound V2 is the second most forked project after Uniswap.

Competitive Landscape

Decentralized money markets are one of the most liquid and dominant dApps on Ethereum mainnet. Since its launch, Compound has faced competition against prominent projects such as Aave and Maker. Although Maker has the largest TVL, its lending operation focuses on providing DAI-denominated loans. In contrast, protocols like Aave, Compound, or Euler focus on supporting multiple cryptocurrencies on both sides of the market (lending and borrowing).

While Maker, Compound, and Euler deploy on Ethereum mainnet, Aave has taken the lead when it comes to multi-chain expansion, especially across layer 2s. With the release of Aave Portals, Aave will facilitate interoperable protocol interactions across all deployments (users will be able to supply on one chain and borrow on another).

More specifically to Compound, it is worth noting that, while the absence of intermediaries removes the need for extra fees, it is still an overcollateralized protocol, which makes it capital inefficient. In practice, this means that users must be actively monitoring their collateral value and making sure that it does not drop below the predefined borrowing limit. At the same time, it is also worth noting that Compound has a yield-earning advantage since users can earn COMP rewards just for using the protocol.

Daily token holders for Compound, Aave, and Euler in the past 180 days

Daily fees for Compound, Aave, and Euler in the past 180 days

Daily revenue for Compound, Aave, and Euler in the past 180 days

Daily token incentives for Compound, Aave, and Euler in the past 180 days

Daily & Monthly Unique Active Users for Aave, Compound, and Euler

Deposits & Outstanding Loans for Aave, MakerDAO, and Compound

Institutional Adoption

The Compound Treasury offers cash management solutions for institutions and accredited investors, all of it is supported by the Compound Protocol and the Compound Treasury assets.

In 2021, Compound launched an institutional cash management solution powered by the Compound Protocol and offered a 4% APR on USD and USDC. Clients include fintech companies, crypto enterprises, and banks. In May 2022, the Compound Treasury became the first DeFi-backed company to receive a credit rating from a major agency. The Compound Treasury received a B- rating from S&P Global Ratings. A few months later, in September 2022, institutions were allowed to borrow from the Compound Treasury using digital assets as collateral.

After assigning the first credit rating to a DeFi company, S&P Global cited the uncertain regulatory regime for stablecoins (USDC), and stablecoins to fiat conversions, as the major risks. However, it was admitted that the “Compound Treasury is predictable, liquid, compliant, and transparent”. As part of ongoing discussions, Compound Treasury’s ratings could be upgraded in upside scenarios such as greater regulatory clarity for the digital assets industry.

Institutions can use BTC, ETH, or ERC20 tokens as collateral to borrow with an open-ended term and no repayment schedule. This provides flexibility for borrowers, who have the ability to draw liquidity and repay balances as they please as long as their positions remain overcollateralized.

Overall, the biggest threat to Compound’s success is the competitive landscape of money markets. The protocol has an advantage on the institutional side of things and could benefit from a multichain approach and expansion of its operations to other Ethereum-based layer 2s. The team is currently working on enabling cross-chain features.

Chains

Compound is available on the following chains:

For Users

Users who want to become lenders supply their tokens to a lending pool and start receiving interest on their deposit according to the current supply APY. Borrowers access the funds from the lending pool to take out loans and return the capital plus interest at a future date (there is no maturity date and all loans are perpetual by default).

Users deposit assets into a liquidity pool and these funds are then matched and passed down to borrowers. Compound achieves this by having depositors aggregate their funds in a lending pool. The assets supplied to a market are represented by an ERC20 token balance called cToken. cTokens entitle depositors to an increasing amount of the underlying asset that is being lent to borrowers. As borrowers take funds out of the pool (by pledging collateral), the lending pool for that market accrues interest. In this way, cTokens become convertible into an increasing amount of the underlying asset.

Lenders (depositors) provide funds to borrowers in return for interest on their deposit, and borrowers (loan takers) are willing to pay interest on the amount of money they borrowed in exchange for having access to capital immediately.

The interest that lenders receive and the interest that borrowers have to pay are determined by the ratio between the supplied and borrowed tokens in a particular market.

In other words, the interest that is paid by borrowers is the interest earned by lenders. This means that the borrow APY in a particular market will be higher than the supply APY.

cTokens

Every time there is a deposit, the protocol issues cTokens as a receipt. By minting cTokens, users earn interest through the cToken’s exchange rate. In this way, cTokens will increase in value relative to the underlying asset in order to represent the accrued interest from loan repayments. Because of that, cTokens can be used by depositors to reclaim their collateral and earn yield from interest.

cTokens are the primary means for users to interact with the protocol. Every time there is loan deposit, borrow, repayment, or liquidation, users will interact with the cToken smart contract.

How to Calculate Accrued Interest

Interest rates are updated on each market every time there is a block in which the ratio of borrowed assets to supplied assets has changed. The magnitude of the change in interest rates depends on both the interest rate model implemented on each specific market and the amount of change in the borrowed-to-supplied assets ratio.

Interest accrues to all suppliers and borrowers in a market. Whenever there is a deposit, withdraw, borrow, or loan repayment event, a function will trigger an update to reflect the accrued interest. This function will cause the interest to be added to the underlying balance of every lender and borrower in the market.

When a market is launched, the cToken exchange rate (e.g. how much ETH one cETH is worth) begins at 0.02. After that, this rate will increase at a rate equal to the compounding market interest rate.

Examples:

We assume 12 seconds per block (as in Ethereum Proof of Stake)

Interest Rate Model

Instead of having individual borrowers and lenders negotiate loan terms, Compound uses a dynamic interest rates model that achieves an interest rate equilibrium based on supply and demand.

According to economic theory, interest rates (the cost of money) should increase as a function of demand.

Compound measures this equilibrium with a Utilization Ratio for each market that unifies supply and demand forces into a single variable.

The utilization ratio can be described as the percentage of money that is borrowed out of the total money supplied by deposits

For example, if Alice supplies $500 and Bob supplies $500 in USDC, but Charles borrows $100 USDC, the total borrow is $100 and the total cash is $900 ($500 + $500 – $100), which results in an utilization rate of 10% (100 / (900 + 100)).

Thanks to this parameter, the demand curve can be expressed as a function of utilization:

This way, the interest rate earned by suppliers is implicit and equals the borrowing interest multiplied by the utilization rate.

Compound’s Standard Interest Rates Model

Compound’s borrowing rate calculation depends on an interest rate model – the algorithm used to determine the borrow and supply rates in a money market.

The interest rates model takes in two parameters:

Borrow Interest Rate = Base Rate + Multiplier * Utilization Rate

For example, using wBTC’s legacy model,  if there are 10,000 WBTC being supplied to the protocol and users are borrowing 1,000 WBTC, this means that the utilization rate is 10%.

With a base rate of 2% and multiplier of 30%, the borrow rate would be:

Borrow Rate = 2% + 30% * 10% = 5%

Assuming a reserve factor of 20%, we can calculate the supply rate as:

Supply Rate = 5% * 10% * (1 – 20%) = 0.4%

Note that interactive graphs on the Compound WBTC market’s summary page can be different due to the inclusion of COMP rewards APY

According to Proposal 31, the Reserve Factor is a percentage of the borrowers’ paid interest which can be used by governance or act as insurance against borrowers’ default (which protects depositors in situations where liquidations are untimely or inefficiently executed).

Hypothetical Scenarios

Following the example above, if a whale decided to withdraw 8,000 WBTC, the utilization ratio would now be 90% ((8,000 + 1,000) / 10,000)

This would yield:

Note that the Supply Rate has increased by 5,120% while the Borrow Rate has only increased by 480%. The reason for this is that the Supply Rate is proportional to the square of the utilization rate, whereas the Borrow Rate is only linearly proportional to the utilization rate.

Compound’s Jump Interest Rates Model

Some markets in Compound follow a jump rate model that has the following parameters:

Borrow Rate = Base Rate + Jump Multiplier * max (0, U – Kink)  + Multiplier * min (U, Kink)

For example, using the USDC rate model with the following parameters:

If the market had $180M in borrows and $20 in cash, then

Comptroller

The Comptroller is the risk management module of Compound; it determines how much collateral a user is required to maintain, and whether (and by how much) a user should be liquidated.

The Comptroller manages the risk exposure of the protocol by mapping user balances to the asset prices reported by a Price Oracle.

The Comptroller contract also designates a Pause Guardian address capable of disabling protocol functionality. This is only used in the event of unforeseen vulnerabilities.

COMP token holders designate the Pause Guardian address, which is held by the Community Multi-Sig

Collateral Factor

The collateral factor of any given cToken can range from 0 to 90%. This represents the proportional amount of liquidity that a borrower can receive by minting cTokens (upon supplying the underlying asset to the protocol).

The collateral factor determines how much can be borrowed based on the quality of the collateral.

Generally, large or highly liquid assets have high collateral factors, and small or illiquid assets have lower collateral factors. On a similar note, assets with a 0% collateral can’t be used as collateral, but they can still be borrowed.

Collateral factors can be increased/decreased through Governance, usually as a result of changes in market conditions.

Liquidations

Users who have negative liquidity in their accounts are subject to being liquidated by other users of the platform, which will return their accounts back to positive to ensure the solvency of the protocol.

When a liquidation occurs, a liquidator may repay some or all of an outstanding loan on behalf of the original borrower. In return, the liquidators will receive a discounted amount of the collateral held by the liquidated borrower.

The discount that a liquidator gets on a borrower’s collateral is the liquidation discount.

Liquidation Volume

Compound V3 – Comet

Launched in August 2022, Compound V3 is an updated and more simplified version of the Compound protocol. The major difference with Compound V2 is that users can only borrow USDC (instead of any asset that is available in the lending pool). Also, collateral deposits will not earn interest but can borrow more with less risk and a lower gas fee. This new borrowing model facilitates single-borrowable and interest-earning assets, while all the other supported assets function as collateral.

In Compound V2, if you were to borrow against an asset, say ETH, it was possible that ETH could be mixed with other available assets. Now in V3, users can only withdraw the collateral they have deposited.

There are separate interest rate models for each asset set by governance. Similar to V2, the supply and borrow interest rates are a function of the utilization rate of the base asset:

Supported interest rates models: https://observablehq.com/@jflatow/compound-interest-rates

Compound V3 employs Chainlink as the exclusive protocol price feed. Instead of relying on a custom price feed for price oracles, supply and borrow models can now be decoupled from other modules within the protocol and operate independently.

Liquidations are determined by liquidation collateral factors, which are separate and higher than borrow collateral factors (used to determine the initial borrowing capacity). This protects borrowers and the protocol. Whenever an account’s borrow balance exceeds the limits set by liquidation collateral factors, the position will become eligible for liquidation.

Individuals with long-term investments in assets that they do not want to sell can use Compound to get a higher return on their investment. By lending their assets to borrowers, they can collect interest payments paid out in the underlying asset they are lending. Other reasons include avoiding or delaying payments for capital gain taxes, or increasing leverage on a position.

dApps and exchanges can also use Compound as a source of monetization and incremental returns. On the one hand, lenders deposit assets to earn interest on loan repayments. On the other hand, borrowers take out funds deposited by lenders as loans. The yield received by lenders is the interest paid by borrowers on their loans.

Compound provides an option for holders of cryptocurrency to lend their tokens and generate income in both COMP (liquidity mining rewards) and the token they have deposited (interest). In the case of V3, users can only borrow the base asset, which is USDC.

Unlike other money markets, Compound does not have any minimum requirements on borrowing or lending amounts.

Borrowing Assets

Compound allows users to borrow from the protocol pool using cTokens as collateral. This means that borrowers must pledge collateral assets to the protocol in order to take out loans from the lending pool.

Unlike peer-to-peer protocols, borrowing from Compound does not require any sort of negotiation regarding loan terms, such as maturity dates, funding periods, or interest rates. Similar to supplying an asset, each market will have its own floating interest rate, which determines the borrowing costs for each asset as a function of market forces (supply and demand).

Collateral Value

Assets held by the protocol (represented by ownership of cTokens) are used as collateral to borrow from the protocol. In other words, every borrower must be a lender.

Each market has a collateral factor ranging from 0 to 1. This variable represents the portion of the underlying asset value that can be borrowed from the protocol. To ensure solvency, illiquid and small-cap assets have lower collateral factors; while liquid and high-cap assets have higher collateral factors.

Users are able to borrow up to, but not exceeding, their borrowing capacity. It is not possible for any account to raise the total value of borrowed assets above their borrowing capacity. This protects the protocol from default risk.

Risk and Liquidations

If the value of an account’s borrowing outstanding exceeds its collateral obligations (borrowing capacity), a portion of the outstanding capital being borrowed must be repaid in exchange for the user’s cToken collateral. This repayment is done at the current market price minus a liquidation discount. The reason for that is that the liquidation discount serves as an incentive for third-party liquidators to step in and reduce the borrower’s exposure, which at the same time protects the protocol against default risk. Liquidations can be performed by any Ethereum address that holds the borrowed asset. During the liquidation, the liquidator will exchange the borrowing asset for the borrower’s cToken collateral.

If a user decides to borrow funds from the protocol, the value of the borrowed capital must always stay lower than the value of their collateral times its collateral factor. As long as this condition holds, there is no limit on how long a user can borrow funds.

Liquidations allow participants (liquidators) to repay up to 50% of an outstanding loan in exchange of receiving a proportionate amount of the loan’s collateral at a discount (liquidation discount).

The proportion of outstanding borrows that can be closed is represented by a close factor, which ranges from 0 to 1. The process of liquidation can be continued until the user’s borrowing is less than their borrowing capacity.

Target Users

The function of a money market is to enable use cases for dApp consumers, traders, and developers:

Recursive borrowing or looping is a technique used in DeFi to gain access to leverage. This is achieved by repeatedly supplying and borrowing the same assets and then doing the same over and over again in order to increase your APY.

To gain leverage with looping, the user supplies an asset and borrows against it. After the first borrow, the user then deposits the borrowed money again into the protocol.

For Investors

Investing Strategies

Recursive lending and borrowing is one of the most used strategies in decentralized money markets. Due to how overcollateralized loans work in DeF, it is possible for a borrower to earn money from the supply APY at the same time, and even gain access to extra capital with the same amount of exposure to risk.

Recursive lending takes advantage of the fact that the net borrowing rate (after incentives or liquidity mining rewards) is higher than the net lending rate.

For example, if the supply rate for USDC is 2.25% and the borrow rate is 3.77% and, on top of these yields, lenders will receive 0.93% in COMP tokens and borrowers 1.38% in COMP, then it becomes possible to borrow USDC at 2.39% (3.77% – 1.38%) and lend at 3.18% (2.25% + 0.93%).

Since borrowing is overcollateralized, it is not possible to borrow indefinitely. However, with a collateral factor of 80%, users can borrow $80 with $100, then redeposit that $80 to borrow $64 (80% of $80), and so on…

At a collateral ratio of 80% it becomes possible to lend $5 (1 / (1 – 0.8)) with $1 of capital and borrow $4. The total ROI would then be equal to the Lending Rate + 4 * (lending – borrow rate), with the lending rate and borrow rate being net of COMP rewards.

The returns of this strategy are quite volatile, due to the intervention of multiple factors such as:

It is worth noting that the APY from COMP rewards will vary from time to time due to adjustments being made to the inflation rate or distribution between lending and borrow APY.

However, the same approach can be used in other money markets. For example, over $33M in cbETH was supplied to the Euler money market to make a profit by borrowing against cbETH.

For instance, this trader profited from a low utilization rate in cbETH and managed to pay  $2,500 in interest while earning $8,500 in EUL tokens.

Business Model

Compound has a protocol reserve that is generated in two ways:

Revenue Streams

Protocol revenue is represented by the amount of interest that the protocol receives through the Reserve Pool. This is calculated using the Reserve Factor for each token and using historical prices denominated in USD.

The Reserve Factor is the portion of interest from loans that is set aside to be kept by the protocol. Each market has its own Reserve Factor.

Economics

Treasury value per asset:

Fee Breakdown

Operating Expenses

Composition of Token Incentives:

Tokens

The COMP token is an ERC-20 token deployed on Ethereum mainnet to propose and vote on changes to the protocol.

COMP was explicitly not marketed as an investment, although it is implicitly regarded as a value-capture mechanism by users who believe in the decentralized governance protocol.

Token Allocation

Tokens were initially distributed to shareholders of Compound Labs. Afterward, as the user base increased and there was a need for decentralized governance, Compound began releasing COMP tokens. These COMP token rewards follow a continuous distribution over 4 years and are directed toward lenders and borrowers of the protocol as liquidity mining incentives.

Supply Schedule

There is no dedicated staking feature for COMP since the total supply was pre-mined. Rather than having users stake their tokens to receive COMP emissions, Compound relies on a reward system by which users can earn COMP tokens simply by interacting with the protocol by lending and borrowing. In other words, whenever a user deposits funds into the protocol, they become eligible to earn COMP tokens from liquidity mining incentives.

The initial token launch took place on June 15, 2020. COMP has a maximum supply capped at 1,000,000,000 tokens that will have an inflationary emission rate since genesis. The supply of COMP is expected to be fully vested by July 2024.

COMP Rewards Adjustments

On April 21st, 2022, Proposal-131 failed due to a majority of votes against it. This proposal suggested ending the current COMP rewards program and starting a new one with the sole purpose of kickstarting new markets.

This is one of the most controversial governance decisions ever held in the history of the protocol. The proposal suggested that the initial objective of COMP rewards was not being achieved, since most users instantly sold off the COMP tokens that they got just for using the protocol. This selloff was the result of a practice that would farm COMP tokens just to consolidate a profit, which brings no value to the protocol and its users.

Jeff Amico, partner at A16z claimed that newly-minted COMP rewards go to “recursive positions that are not a valuable use of limited supply of tokens. Amico estimated that it costs the Compound protocol ~$60M per year to pay these rewards. According to this, users were draining value from the protocol by depositing collateral to borrow more of the same asset and earn COMP tokens that were later sold on the market.

Those who voted against the proposal, including Compound’s co-founder and CTO Geoffrey Hayes, pointed out that the proposal could harm Compound’s level of decentralization. By distributing a token across a wider user base, this mechanism lessens the chances that the ownership of the protocol ends up being concentrated in a few hands.

Token Distribution of Holders

Governance

Compound is governed and updated by COMP token holders using 3 distinct components: the COMP token, the Governor Bravo Governance module, and a Timelock. Together, these contracts allow the community to propose, vote, and modify protocol parameters, support new markets, or introduce new functionality to the protocol.

COMP token holders can delegate their voting rights to themselves or an address of their choice, but only addresses that have been delegated to at least 25,000 COMP can create Governance Proposals. However, it is still possible for any address to lock 100 COMP tokens to create an Autonomous Proposal, which will become a Governance Proposal after being delegated 25,000 COMP.

When a governance proposal is created, it will be subject to a 48-hour review period. After that, a 72-hour voting period will begin. If at least 400,000 votes are casted and there is a majority vote, the proposal will be queued in the Timelock in order to be implemented after 48 hours. In total, this process is guaranteed to take at least one week.

Governance Roles

There are 3 key roles in Compound Governance:

Governance Proposals

Governance proposals can be of 4 types:

COMP

COMP is an ERC-20 governance token used by the protocol to delegate voting rights and participate in governance voting.

Governor Bravo

Governor Bravo is the governance module of the protocol. This framework allows addresses that hold more than 25,000 COMP tokens to propose changes to the protocol.

After a proposal has succeeded, it is moved into the Timelock by calling the queue functions, which will force a waiting period of 2 days. After the Timelock waiting period has elapsed, the proposal can be executed on-chain.

Timelock

Each protocol contract is controlled by the Timelock contract, which can modify system parameters, or smart contracts logic in a “time-delayed” upgrade. The Timelock follows a hard-coded delay of2 days.

List of proposals: https://compound.finance/governance/proposals

Governance in Compound V3

A key area of focus for Compound V3 is to give more governance control to the community. To improve user participation, the governance process will be managed in a single smart contract called “Configurator”. Compound also transferred exclusive control over all future deployments and adjustments of market parameters to the community.

All instances of Compound V3 are controlled by the Timelock contract, which is the same administrator as in Compound V2. The governance system has control over each proxy, the Configurator implementation, the Comet factory, and the Comet Implementation. Every time an immutable parameter is set via governance, a new Comet implementation must be deployed by the Comet factory. If the proposal is approved by the community, the proxy will point to the new implementation upon execution.

Currently, Compound V3 has introduced a business license to its codebase. This is a preventive measure that protects against unauthorized forks. All requests to modify or copy the codebase will require governance approval.

Governance in Compound V3

Compound currently has two pathways for funding:

Risks

Since interest rates are variable and they are not locked in at the time of borrowing, users are vulnerable to interest rates changes. Because of that, borrowers should be aware of the underlying interest rate model for the asset they are borrowing.

Protocols like Voltz and Ipor offer interest rate swaps as a way for borrowers and lenders to hedge their risk.

Security

All contract codes and balances are publicly verifiable, and security researchers are eligible for participation in bug bounty rewards.

Audits

Compound V2 has been reviewed and audited by Trail of Bits and OpenZeppelin

Compound V2 has been formally verified by Certora as well. The following issues were discovered and patched:

Compound V3 has been reviewed and audited by OpenZeppelin and ChainSecurity

Bug Bounty Program

Compound encourages the community of security researchers and auditors to disclose any issues of vulnerabilities they might find in the protocol’s contracts. This program is intended to recognize the value of working with independent researchers.

Compound offers economic rewards for all discoveries that can prevent the loss of assets, the freezing of assets, or harm to a user. Eligible discoveries will be compensated with payouts ranging from $500 to $150,000 based on the scope and degree of the vulnerability.

Economic Attack Vectors

Gauntlet has constructed a simulation-based market stress-testing platform to evaluate the economic security of the protocol as it scales and supports more assets. Gauntlet’s report rains stress tests on historical data and simulates the expected and worst economic outcomes for the protocol. The report concluded that Compound can scale to a larger size and handle high volatility scenarios.

Despite the fact that Compound has grown past 9 figures of USD value, without any depositors losing capital, it is still technically possible, under extreme conditions, for borrowers to default on their loans and cause lenders to lose their principal. This would be a combination of security risk, governance risk, and market risk.

From Gauntlet’s report, see below a simulation of liquidations during the worst day of price action in Ethereum’s history (February 5, 2018). This simulation assumes $100M of ETH daily trading volume and a total sum of outstanding debt value of $50M.

Dependencies and Access Controls

The top addresses by voting weight are largely dominated by VCs

In February 2022, Justin Sun borrowed 99,000 COMP tokens (worth over $13M at the time) that were later sent to Binance. One day later, an entity that owned $9M worth of COMP tokens on Binance made a proposal to add TUSD as a collateral asset on Compound. TUSD had been previously moved over to an Asia-based consortium that would work with TRON to support the development of TUSD on Ethereum and Tron. This example shows one of the most obvious problems attributed to token-weighted governance models.

Liquidity Risk

In order to borrow from Compound, a borrower must first deposit collateral with a value greater than the amount being borrowed (overcollateralization). If the value of that collateral declines below the amount being borrowed (before liquidators can close the position), the borrower is not incentivized to repay their position and the protocol may accumulate “bad debt”. If the total amount of “bad debt” is higher than the reserves held by the protocol, some users may not be able to withdraw assets from the protocol.

More specifically, the primary exogenous risks to the protocol come from:

Gauntlet was selected by the community to manage collateral requirements and assess the robustness of risk parameters on an ongoing basis.

Borrow Limit and Liquidation Risk

On Compound, users earn yield by supplying assets, but those same assets can also be used as collateral to borrow other tokens. By maintaining different collateral factors for each asset, borrowers must be aware of the capital amount they are actively borrowing at a given point in time. The reasoning behind this is to avoid the account exceeding its borrow limit, which would lead to a liquidation.

The risk of liquidation occurs when the value of the collateral becomes less than the value of the loan. 

The main levers for Compound to reduce the risk exposure of the protocol are the collateral factor and the liquidation incentive.

Under normal market conditions, when liquidations are independently distributed (uncorrelated), the collateral factor and the liquidation incentive control the borrower’s risk and the supplier’s ability to recoup their losses respectively. However, then liquidations are correlated (liquidation cascade), these parameters affect both borrower and supplier behavior.

Liquidation incentives create an arbitrage opportunity or a price discount for the liquidator in exchange for the reduction of Compound’s risk exposure. The higher the liquidation incentive, the higher the number of liquidators that will participate in the liquidation process, since they will get steeper discounts on the borrower’s collateral relative to the asset’s market price.

Collateral factors define the maximum borrowing capacity for each asset supported by the protocol. They are the signal for borrowers to manage their own debt and keep their loans overcollateralized. As collateral prices fluctuate, this margin of safety will dynamically adjust to reflect the borrower’s risk profile.

When market volatility is high, risk-averse borrowers maintain a high margin of safety to avoid having their collateral liquidated. On the opposite side, risk-seeking borrowers will maintain a lower margin of safety and actively refinance their debt obligations to optimize for the usage of the borrowed funds.

Liquidation incentives also have an influence on a borrower’s decisions to borrow an asset from the protocol. This is because when a borrower’s loan is liquidated, the liquidation incentive can be seen as a bonus amount of the borrower’s collateral that is given to the liquidator as a reward and to compensate for the risk of taking a liability off of the protocol’s balance sheet.

If the liquidation incentive is too high, a borrower might be unwilling to borrow that asset. As a rule of thumb, it is expected that increasing liquidation incentives have a negative impact on borrowing demand.

Project Investors

The token launch took place on June 15, 2020.

There have been 2 major investment rounds for COMP and a total raise of $33.2M:

Additional Information

Partnerships

Integration

De-Fi Integration

FAQ

What are the requirements for borrowing crypto assets from Compound?

How do cTokens earn interest?

Can I transfer cTokens?

Who sets the interest rates? When are they set?

Why is the supply rate lower than the borrow rate?

How do the protocol’s price feeds work?

Community Links

Revision History

Version 0.0 | Apr. 18, 2023 – Initial Release

Version 0.1 | September. 1, 2023 – Updated Sections (Chains, Team), Added Section (Encumber)

Version 0.2 | October 20, 2023 – Updated Roadmap to include V2 deprecation