Deploy Compound III on Scroll

Deploy Compound III on Scroll

Preamble
Type: Multichain Deployment
Title: Deploy Compound III on Scroll
Author: Shahryar Hasnani - Partnerships Manager @Scroll_zkEVM

Proposal Introduction
We propose the deployment of a Minimal Viable Product deployment of Compound v3 on Scroll mainnet (with a completed preceding instance on our Goerli testnet), specifically the borrowing and lending functionality with several potential collaterals and one borrowable asset market.

Scroll Overview

Scroll is an EVM-equivalent ZK-Rollup built upon Ethereum, designed for scaling without sacrificing security, developer, or user experience:

  • EVM Equivalence & Developer Friendliness: Scroll is bytecode-compatible and builds upon Geth, enabling seamless migration of infrastructure and will support all existing development tools, including debuggers. Developers can work with a familiar development environment. No bytecode re-audits are required, minimizing the risk surface tremendously.
  • Ethereum-native & Community First: Scroll originated in close collaboration with the Ethereum Foundation’s zkEVM research within the PSE (Privacy and Scaling Explorations) group—in fact, our team has contributed ~50% of the upstream PSE zkEVM codebase over the past 2 years! Scroll has been open source & peer reviewed since day one, our testnet has been permissionless since its inception, and we continuously publish research in an effort to demystify the inner works of zk circuits and cryptography.
  • Decentralization & Security: Scroll has continually made upgrades across testnets to make it more trustless, and is committed to decentralizing both its sequencing and proving. In addition, Scroll has a strong in-house security team that found and reported bugs in fellow ZK-Rollup’s proving systems in the past.

ZK-Rollups are widely considered to be the Holy Grail of Ethereum scaling. Scroll’s vision is to build a fully EVM-compatible ZK-Rollup that any existing Ethereum application can easily migrate to; our short-to-long-term roadmap includes significant user cost reductions, increased compatibility, improved security and proving, and other EVM optimizations such as parallelization. Scroll launched mainnet on October 17th, 2023, and since then, we’ve had significant traction, seeing:

  • ~55M bridged TVL / ~25M DeFi TVL
  • 10M+ transactions (averaging over 100k+ tx/day)
  • 2.5M+ unique wallet addresses

In addition, between our Alpha (Goerli) and Beta (Sepolia) Testnets, we’ve ~60M transactions, 10M wallet addresses, and 7M blocks produced.

We’ve also seen 150+ projects deployed on Scroll, ranging from established DeFi protocols to brand-new Scroll-native applications. We support all necessary infrastructure for a Compound deployment, as well as protocols that support a familiar Compound user experience, including Chainlink, Etherscan, The Graph, etc.

Proposal

We propose a Minimal Viable Product deployment of Compound v3 on Scroll mainnet (and a preceding instance on testnet) with one market—based on current conversations and progress, we expect USDC to be the most likely borrowable asset, and see several potential collateral options, such as WETH, WBTC, and wstETH. However, we encourage the Compound community to provide feedback here or suggest alternatives if applicable. Community members and risk service providers are also encouraged to contribute their feedback and suggestions regarding risk parameters. We have also already deployed a Compound v3 instance on our Alpha Testnet for reference here: (Scroll Alpha testnet deployment by kevincheng96 · Pull Request #813 · compound-finance/comet · GitHub), and are currently finalizing our audit, which we will add as soon as it’s completed.

This MVP deployment aims to set the foundation for a longer-term relationship between the Scroll and Compound communities. We will begin with a simple deployment and initialization of one market and may look to scale up the number of markets, liquidity, and incentives as the Scroll user and developer community grows.

Compound’s community represents a global group of pioneering DeFi builders and users, focused on engagement, safety, and governance. We see an opportunity to collaborate with the unique parts of our community as well—devs and users focused on ZK tech, scaling Ethereum, and decentralization. Additionally, the Scroll ecosystem is made up of builders and users from every continent, and we offer localized content and support for different languages and regions across the globe. This allows us to also engage communities where other L2s have less of a presence, such as East/SE Asia and the Middle East, making them critical drivers of liquidity and engagement as we move into the next cycle.

We firmly believe that ZK-rollups are the future of Ethereum, and that Scroll would be the ideal platform for Compound to deploy on next as part of its L2 expansion. Scroll’s ecosystem is nascent, and Compound has the opportunity to establish a strategic presence early on. Alongside Compound, there are various other projects already live and in the process of deployment on mainnet, and will allow Compound to be part of a vibrant new ecosystem that spans across the globe. We’re interested in having long-term collaborations with projects and are willing to leverage our community to bootstrap and expand Compound’s role on Scroll.

Initialization Process (technical specification)

Our aim is to initially proceed cautiously and conservatively with the most basic functionality and then iterate and scale up over time based on performance and demand. However, we would like to defer to the community, Compound labs, and other stakeholders to determine what the optimal parameters and specifications are for deployment.

Security Considerations

Although Scroll aims to be fully bytecode-compatible and is based off Geth, significantly reducing its risk surface, there are still several common L2 concerns that apply to Scroll:

  • Scroll’s prover and sequencer set will start off centralized and remain in that state for a period of time
  • Some of the core smart contracts and parameters can be upgraded through a multisig
  • More information about our codebase and security considerations can be found in our github

Copyright Waiver

Copyright and related rights waived via CC0.

License Exemption

We are requesting an exemption that will allow the Scroll network to obtain a Compound Business Source License (BSL) to use the Licensed Work, update compound-community-licenses.eth, and deploy it on Scroll mainnet, provided that the deployment is subject to Ethereum Layer 1 Compound Protocol governance and control.

12 Likes

Hey @Scroll_zkEVM , excited to see an initiative for Compound Integration with Scroll. Once the proposal gets more feedback from the community, the procedure from the DAO involves a Risk Assesment from @Gauntlet and audit from @cylon OpenZepplin to suggest the best course of action for the Compound community.

I lead the Compound Growth Program, we are interested to know what incentives can Compound users recieve for using the protocol on Scroll as well as the liquidity you can commit to supplying on the protocol . Alongside that, would be great to understand what opportunities for partnerships/integration does compound have in the Scroll ecosystem. In the meantime, if you need any assistance or clarification within the community, we would be happy to assist.

2 Likes

Gauntlet Scroll v3 USDC Initial Asset Listing Recommendations

Simple Summary

Gauntlet recommends the following initial parameter recommendations for the Scroll v3 USDC comet based on current liquidity conditions as of Jan 2024. Since the official launch of Scroll on Mainnet, the total assets circulating have reached $64M.

Risk Parameters

Asset Collateral Factor Liquidation Factor Liquidation Penalty Supply Cap
WETH 80% 85% 10% 300 ($757k)
wstETH 75% 80% 15% 50 ($145k)

Storefront Price Factor: 60%

IR Curve Parameters

IR Curve: Same as BASE USDbC

IR Parameter Value
borrow per year interest rate base 0.015
borrow per year interest rate slope low 0.053
borrow kink 0.85
borrow per year interest rate slope high 1.8
supply per year interest rate base 0
supply per year interest rate slope low 0.048
supply kink 0.85
supply per year interest rate slope high 1.6

Supporting Data

Since the initialization of the chain on October 17, 2023, circulating supply of tokens has increased to $64M with $29M in TVL.

Contracts and Tokenomics

Token Contract Circulating Supply Token Holders DEX 25% Slippage
WETH 0x5300000000000000000000000000000000000004 1,465 38,036 1000
wstETH 0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32 2,852 5,347 45

Next Steps

We welcome community feedback.

4 Likes

Thank you @Gauntlet. We support the deployment of Comet on Scroll! This presents a great opportunity for Compound to enter the zkEVM L2s.

3 Likes

We support the MVP deployment of Compound v3 on Scroll with Gauntlet’s recommendations!

3 Likes

Scroll Alpha Comet Deployment Audit

OpenZeppelin audited the proposed Comet market deployment targeting Scroll Alpha, the Goerli testnet. The final report is published on the OpenZeppelin blog for your review.

2 Likes

Great to see the support from the community on this and the development work currently being undertaken by the Scroll team!

Looks like native USDC currently does not exist on Scroll yet, so this proposal is to launch a bridged USDC market. However, from my understanding, Scroll’s version of bridged USDC is different from that on other chains like Base in that it is upgradeable. It seems like if Circle were to launch a native USDC on Scroll, it would do so by upgrading the existing bridged USDC to native USDC directly, removing any need to migrate to a new Comet instance. Can someone from Scroll or Circle confirm this is true?

3 Likes

Hey @kevin, great question—you’re correct that since it’s an upgradeable token, there won’t be any need to migrate to a new market if Circle were to upgrade the bridged USDC to native (a huge benefit as you can imagine, which is why we’re using this standard).

While we’re on this topic, one detail the Circle team would like to share is that during the upgrade, the USDC bridge on Scroll will be temporarily paused; this means users will not be able to bridge USDC to and from Scroll during that period until the final step of enabling bridging via CCTP is completed. The token would be freely transferable throughout this time (before, during, and after), so this shouldn’t present any issues for users on Compound, but we wanted to share these details regardless so that the Compound team can be aware.

And as a final separate note—we will be following up in the forum soon with details to prepare for the on-chain vote!

7 Likes

Following the conversations on this thread, GitHub, etc., a cUSDCv3 market has been deployed to Scroll from this pull request.

The parameters to enable the market are being finalized on this pull request. It includes Gauntlet’s recommended risk parameters for the following assets:

  • WETH: $757k supply cap (300 tokens), 80% CF, 85% LCF, and 10% liquidation penalty
  • wstETH: $145k supply cap (50 tokens), 75% CF, 80% LCF, and 15% liquidation penalty

The interest rate model is currently configured the same as cUSDbCv3 on Base. After the launch of the market, Gauntlet will monitor and consider recommendations to the interest rate model based on preliminary utilization & growth.

The assets and price feeds of the deployment use the following inputs:

  • The base asset, USDC, uses 0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4
  • For WETH, 0x5300000000000000000000000000000000000004
  • For wstETH, 0xf610A9dfB7C89644979b4A0f27063E9e7d7Cda32

Additional Details

Deployed Contracts

cUSDCv3: 0xB2f97c1Bd3bf02f5e74d13f02E3e26F93D77CE44

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: 0x487D668AbaFD140A634C657E544Fe752Db727295

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

cUSDCv3 Ext: 0x27E24C49f95DfF7E231eF1C2849F760cDF25a5Ad

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: 0xECAB0bEEa3e5DEa0c35d3E69468EAC20098032D7

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: 0x77831F8997De34ead958DA207e43e4be70771C79

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

Proxy Admin: 0x87A27b91f4130a25E9634d23A5B8E05e342bac50

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: 0x85Bfa13eB2BC22A742Ca552566131d31677Bd41e

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

Bridge Receiver: 0xC6bf5A64896D679Cf89843DbeC6c0f5d3C9b610D

Receives bridged governance messages from the Scroll gateway contracts and forwards them to the bridge timelock.

Bridge Timelock: 0xF6013e80E9e6AC211Cc031ad1CE98B3Aa20b73E4

The governor of the Comet deployment, exclusively receiving input from Ethereum mainnet governance through the bridge receiver.

Initialization Proposal

To initialize the market, the deployment process is similar to the initialization of cUSDCv3 on Ethereum mainnet, the primary difference being the bridging of governance actions to Scroll, instead of taking place directly on the governance chain (Ethereum mainnet).

The initialization proposal will take the following actions:

  1. Set Comet configuration and deploy new Comet on Scroll. This sends the encoded setConfiguration , deployAndUpgradeTo and setRewardConfig calls across the bridge to the governance receiver on Scroll. Though the Rewards contract will be initialized, the speed is currently set to 0, as per Gauntlet’s recommendation to hold off on rewards on this market for now.
  2. Approve Scroll’s L1 Scroll-Custom Gateway to take Timelock’s USDC, in order to seed the market reserves through the bridge.
  3. Deposit initial reserves of 10K USDC from mainnet to Scroll Comet, via the Scroll L1GatewayRouter.
  4. Write the ENS TXT record v3-official-markets on v3-additional-grants.compound-community-licenses.eth containing the official markets JSON.

The deployment and proposal migrations have been built using the Comet scenario framework and deployed using the Comet deployment manager. The deployment was run through a GitHub action using seacrest and the scenario checks can be seen from the proposal branch CI checks.

6 Likes

The proposal has been created and will start voting in 2 days.

3 Likes

Proposal will revert if executed

OpenZeppelin reviewed Proposal 221 and suspects it will revert if executed at line 344 with message Insufficient msg.value. @Michigan_Blockchain please cancel the proposal.

Below is an excerpt from the Seatbelt report 221.md, zipped with other Compound proposal reports (203 MB), which confirms the expected revert.

Initialize cUSDCv3 on Scroll

Updated as of block 19369821 at 3/5/2024, 10:20:35 AM ET

Checks

Reports all state changes from the proposal :x: Failed

Errors:

Transaction reverted with reason: Insufficient msg.value

4 Likes

Thank you for pointing this out. The proposal has just been canceled.

2 Likes

We just resubmitted the proposal at this tx. Special thanks to @jbass-oz from OpenZeppelin and the Scroll Team @Scroll_zkEVM

1 Like