Update Linea and Scroll Comets to the service patch version
01Summary
WOOF! proposes upgrading Comet markets on Linea and Scroll to a service patch version introducing extended pause controls, price feed improvements, collateral deactivation mechanism, utilization capping at 200%, index accrual fixes, and gas optimizations. The upgrade has been audited by Certora and uses a trustless bytecode repository for deterministic deployment.
- Type
- contract upgrade
Key changes
- Extended Pause Controls: collateral interactions can now be paused independently per collateral asset(medium)
- Price Feed Patch: skips price feed calls for assets with zero collateral factor to prevent unnecessary reverts(high)
- Collateral Deactivation Mechanism: Guardian-controlled emergency mechanism to deactivate unsafe collateral assets with governance-required reactivation(high)
- Utilization Peaking Protection: caps utilization at 200% to prevent additional borrowing when post-borrow utilization exceeds threshold(high)
- Borrow Index Fix: prevents borrow interest accrual in empty markets without active borrowers(medium)
- Supply Index Fix: ensures supply index only accrues when lenders are present(medium)
- Lender Illiquidity Fix: prevents reserve depletion by capping supply rate to zero in zero-borrow markets with exhausted reserves(high)
- Accrue Interest on Collateral Actions: collateral actions now trigger interest accrual for affected accounts(medium)
Notable concerns
- Price feed patch and collateral deactivation mechanism are responses to the USDM incident, indicating previous protocol vulnerabilities
- Guardian-controlled collateral deactivation introduces centralized emergency control that requires monitoring
- Utilization capping at 200% changes borrowing mechanics and may affect existing positions
Generated by Kvorum
02Description
Update Linea and Scroll Comets to the service patch version
Proposal summary
WOOF! proposes upgrading the Linea cUSDCv3, cWETHv3, and Scroll cUSDCv3 Comet markets to a new service patch version introducing several improvements and security enhancements:
- Extended Pause Controls: collateral interactions can now be paused independently per collateral asset.
- Price Feed Patch (Post-USDM incident response): skips price feed calls for assets with zero collateral factor, preventing unnecessary reverts.
- Collateral Deactivation Mechanism: introduces a Guardian-controlled emergency mechanism to deactivate unsafe collateral assets, with reactivation requiring a governance proposal.
- Utilization Peaking Protection: caps utilization at 200%, preventing additional borrowing when post-borrow utilization exceeds this threshold, while preserving lender withdrawals.
- Borrow Index Fix (Empty Market): prevents borrow interest accrual in markets without active borrowers.
- Supply Index Fix (Empty Market): ensures supply index only accrues when lenders are present.
- Lender Illiquidity Fix in Zero-Borrow Markets: prevents reserve depletion in markets with no borrowers by capping supply rate to zero when utilization is zero and reserves are exhausted.
- Accrue Interest on Collateral Actions (Post-USDM incident response): collateral actions (supply, withdraw, transfer) now trigger interest accrual for affected accounts.
- Technical Improvements: includes removal of redundant arguments in supplyInternal() and optimized price caching in absorbInternal(), improving gas efficiency without affecting protocol behavior.
This proposal takes the governance steps recommended and necessary to update Compound III USDC and WETH markets on Linea and Scroll. Simulations have confirmed the market’s readiness, as much as possible, using the Comet scenario suite.
Detailed information can be found on the corresponding proposal pull request.
Bytecode Repository
This update is done with the use of the bytecode repository, which provides trustless and deterministic deployments.
Further details on the deployment can be found in the Bytecode Repository git and forum discussion.
Audit
Both service patch Comet update and Bytecode Repository have been audited by Certora and full reports can be found here:
Proposal Actions
The first action sets the factory to the newly deployed factory, extension delegate to the newly deployed contract and deploys and upgrades Comet to a new version on Linea.
The second action sets the factory to the newly deployed factory, extension delegate to the newly deployed contract and deploys and upgrades Comet to a new version on Scroll.
03Mismatch analysis
The description states two governance actions: an upgrade for Linea markets (cUSDCv3, cWETHv3) and an upgrade for a Scroll market (cUSDCv3), each performing setFactory, setExtensionDelegate, and deployAndUpgradeTo. The decoded calldata for action 0 shows a Linea cross-chain message containing two repeated sets of the three named function selectors (setFactory, setExtensionDelegate, deployAndUpgradeTo) with distinct address pairs, consistent with two markets being upgraded on Linea. Action 1 shows a Scroll cross-chain message with a single set of the same three function selectors, consistent with one market (cUSDCv3) being upgraded on Scroll. The function names and structure directly match the prose's description of the mechanism (bytecode-repository-based factory/extension-delegate/upgrade pattern). The only notable addition not mentioned in the prose is the 0.05 ETH value attached to the Scroll message, which is standard for L1->L2 bridge fee payments and does not represent a misdirected transfer, so it is flagged only as a low-severity omission. No value mismatches, target mismatches, or extra/missing strategic actions were found. Confidence is medium because the specific market/collateral addresses embedded in the nested calldata could not be independently verified against the actual on-chain Comet market addresses for Linea/Scroll, but the structural pattern and counts strongly support the description's claims.
Discrepancies
- lowomitted in description
Action 1 sends 0.05 ETH (50000000000000000 wei) as msg.value, presumably to cover the Scroll L1->L2 message execution fee. The description does not mention this ETH expenditure, though it is a standard bridging fee mechanism rather than a fund transfer to an unrelated party.
Generated by Kvorum
04Actions
- Target
- 0xd19d…876f
- Value
- 0 wei
- Function
- sendMessage(address,uint256,bytes)
- Arguments
{ "_to": "0x1F71901daf98d70B4BAF40DE080321e5C2676856", "_fee": "0", "_calldata": "0x00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000970ffd8e335b8fa4cd5c869c7cac3a90671d5dc3000000000000000000000000970ffd8e335b8fa4cd5c869c7cac3a90671d5dc30000000000000000000000004b5dee60531a72c1264319ec6a22678a4d0c8118000000000000000000000000970ffd8e335b8fa4cd5c869c7cac3a90671d5dc3000000000000000000000000970ffd8e335b8fa4cd5c869c7cac3a90671d5dc30000000000000000000000004b5dee60531a72c1264319ec6a22678a4d0c81180000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000001b736574466163746f727928616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000025736574457874656e73696f6e44656c656761746528616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000236465706c6f79416e6455706772616465546f28616464726573732c61646472657373290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b736574466163746f727928616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000025736574457874656e73696f6e44656c656761746528616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000236465706c6f79416e6455706772616465546f28616464726573732c61646472657373290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000008d38a3d6b3c3b7d96d6536da7eef94a9d7dbc99100000000000000000000000074a241aa5e2c0d62ac267fc481790f3474ed5aaf00000000000000000000000000000000000000000000000000000000000000400000000000000000000000008d38a3d6b3c3b7d96d6536da7eef94a9d7dbc991000000000000000000000000bc7b80c97b560e83a229a6417ed4fc2d75fc12090000000000000000000000000000000000000000000000000000000000000040000000000000000000000000970ffd8e335b8fa4cd5c869c7cac3a90671d5dc30000000000000000000000008d38a3d6b3c3b7d96d6536da7eef94a9d7dbc991000000000000000000000000000000000000000000000000000000000000004000000000000000000000000060f2058379716a64a7a5d29219397e79bc55219400000000000000000000000074a241aa5e2c0d62ac267fc481790f3474ed5aaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000060f2058379716a64a7a5d29219397e79bc55219400000000000000000000000078ee842bf092caaa68de542a8b1d1bf337ead33f0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000970ffd8e335b8fa4cd5c869c7cac3a90671d5dc300000000000000000000000060f2058379716a64a7a5d29219397e79bc552194" }- Calldata
- Target
- 0x6774…b367
- Value
- 50000000000000000 wei
- Function
- sendMessage(address,uint256,bytes,uint256)
- Arguments
{ "_to": "0xC6bf5A64896D679Cf89843DbeC6c0f5d3C9b610D", "_value": "0", "_message": "0x00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000ecab0beea3e5dea0c35d3e69468eac20098032d7000000000000000000000000ecab0beea3e5dea0c35d3e69468eac20098032d700000000000000000000000087a27b91f4130a25e9634d23a5b8e05e342bac5000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001b736574466163746f727928616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000025736574457874656e73696f6e44656c656761746528616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000236465706c6f79416e6455706772616465546f28616464726573732c616464726573732900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000b2f97c1bd3bf02f5e74d13f02e3e26f93d77ce44000000000000000000000000f27f2346d71ffa71b769ab781b7587b8238090fd0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000b2f97c1bd3bf02f5e74d13f02e3e26f93d77ce44000000000000000000000000987fddf251fc26cbf29ea76666058eddaa14230d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000ecab0beea3e5dea0c35d3e69468eac20098032d7000000000000000000000000b2f97c1bd3bf02f5e74d13f02e3e26f93d77ce44", "_gasLimit": "1000000" }- Calldata
05Tally
Summed from votes
06Voters
| Voter | Choice | % of total | Rationale | ||
|---|---|---|---|---|---|
| 3F0x3fb1…4c8a | For | 104.8K | 17.58% | — | 5mo ago |
| 660x66cd…65f9 | For | 80.2K | 13.46% | — | 5mo ago |
| B40xb49f…7948 | For | 60K | 10.06% | — | 5mo ago |
| 050x0579…ca09 | For | 60K | 10.06% | — | 5mo ago |
| 170x1729…b879 | For | 60K | 10.06% | — | 5mo ago |
| B70xb792…89d7 | For | 60K | 10.06% | — | 5mo ago |
| B90xb933…8dd1 | For | 60K | 10.06% | — | 5mo ago |
| B30xb356…c826 | For | 59K | 9.89% | — | 5mo ago |
| 070x0703…961b | For | 51.7K | 8.68% | — | 5mo ago |
| 1F0x1f3d…0591 | For | 440.7 | 0.07% | — | 5mo ago |
| C50xc554…7759 | For | 11.2 | 0.00% | — | 5mo ago |
| 9F0x9f77…2768 | For | 1 | 0.00% | — | 5mo ago |
| 2F0x2f2f…f78a | For | 0.5 | 0.00% | — | 5mo ago |
07Forum
No forum thread is confidently linked to this proposal.
08Similar proposals
- compoundexecutedUpdate All L2 Comets to the service patch version91%
- compoundcanceledUpdate cWETHv3 and cWstETHv3 Comets on Mainnet to the service patch version91%
- compoundexecutedUpdate Comet version on Linea and Scroll89%
- compoundcanceledProposal summary79%
- compoundexecutedComplete Arbitrum and Base Comet Upgrade78%
- compoundexecutedInitialize cUSDTv3 on Linea network78%
- compoundcanceledInitialize cUSDTv3 on Linea network78%
- compoundcanceledInitialize cUSDCv3 on Scroll78%
- compoundexecutedInitialize cUSDCv3 on Scroll78%
- compoundcanceledInitialize cUSDSv3 on Base77%