Compound III
Compound III is a next-generation collateralized borrowing protocol, designed for security, capital efficiency, low gas costs, and streamlined governance.
Each deployment of Compound III features a single borrowable asset. Borrowers supply collateral, which is isolated and remains their property–it is never rehypothecated or withdrawable by other users (except during liquidation).
By removing every unnecessary feature and use-case, upgrading the risk engine (and capital efficiency), and focusing on a single borrowable asset, the protocol has the potential to be the safest & most appealing tool for borrowers ever designed.
Protocol Launch
How the protocol is used is up to Compound Governance, which has control over the protocol license, and all deployments. Eventually, Compound III could have a major footprint across blockchains & assets–but first, the protocol should be tested in a production environment at limited scale.
The first proposed market is USDC on Ethereum; the contracts have been tested, audited, and deployed to production, with help and input from OpenZeppelin, ChainSecurity, Certora, Gauntlet, Chainlink, and many members of the community.
The following initialization proposal creates supply caps for five collateral assets and seeds the market with initial reserves. Upon execution of the proposal, you can begin using the USDC market on Ethereum.
Initialization Proposal
The proposal itself performs 3 basic steps, broken into 7 Timelock actions.
The first 5 actions are to configure the new deployment to allow the market to become active, by raising the supply caps of each of the 5 collateral assets individually. The function called is updateAssetSupplyCap
in the Configurator. The supply cap changes are summarized below:
Collateral Asset | Current Supply Cap | Proposed Supply Cap |
---|---|---|
WETH | 0 | 27,000 |
WBTC | 0 | 2,100 |
LINK | 0 | 1,250,000 |
UNI | 0 | 1,250,000 |
COMP | 0 | 200,000 |
The next (6th) action is to deploy and upgrade to the newly configured implementation for the market. The proposal calls the deployAndUpgradeTo
function of the ProxyAdmin contract, which is the only contract capable of changing the implementation of the proxy. This wrapper function also takes care of deploying the new implementation from the factory contract, using the previously set configuration in the Configurator.
The final (7th) action is a simple ERC20 transfer
from the Timelock to the new market, adding 500,000 USDC of reserves. Reserves create a liquidity and loss cushion for users, and enable new dynamics introduced by the upgraded interest rate models in Compound III.
Additional resources: