Remove automatic COMP claims and COMP speed refresh
01Summary
This proposal optimizes the Comptroller contract by removing automatic COMP claims and COMP speed refresh functions, replacing them with governance-controlled _setCompSpeed. This reduces contract size and gas costs, enabling future vesting updates. The proposal upgrades the Comptroller implementation but does not immediately adjust COMP speeds.
- Type
- contract upgrade
Key changes
- Removes automatic COMP claims for users(high)
- Removes automatic COMP speed refresh functionality(high)
- Replaces automatic functions with governance-controlled `_setCompSpeed`(high)
- Implements gas optimizations to reduce Comptroller contract size(medium)
- Upgrades Comptroller to new implementation at 0xbe7616B06f71e363A310Aa8CE8aD99654401ead7(medium)
Notable concerns
- Removes automatic COMP claims, requiring alternative mechanisms for users to claim COMP
- Removes automatic COMP speed refresh, requiring governance to manually adjust speeds
- Code has changed since the QuantStamp audit, see PR for details
Generated by Kvorum
02Description
Remove automatic COMP claims and COMP speed refresh
Summary
In order to reduce the size of the Comptroller for both vesting updates and future changes, this proposal contains a number of size and gas optimizations. Currently, there is not enough space in the Comptroller for vesting changes, which is the main impetus for this proposal. We split this out from the remainder of the vesting changes, as these changes provide protocol users with some more immediate gas benefits. An itemized summary of the changes is as follows:
- This proposal removes automatic COMP claims for users and also removes automatic COMP speed refresh, replacing it with
_setCompSpeed, controlled by governance - Implements several related small changes related to the above to further optimize the Comptroller contract and reduce gas costs for users. Please note that this patch is not in itself making any immediate COMP speed adjustment, it is simply removing some redundant speed change functions and giving governance more direct control.
References
- Audit, by QuantStamp (please note that some of the code has changed since the audit, see PR for more details)
- Pull Request on GitHub
- Forum post
03Mismatch analysis
The proposal describes a logic-contract upgrade to the Comptroller that removes automatic COMP claim/speed-refresh behavior and replaces it with governance-controlled _setCompSpeed, along with minor gas optimizations. The decoded calldata contains exactly the standard two-step Compound upgrade pattern: _setPendingImplementation on the Unitroller proxy pointing to a new Comptroller implementation, followed by _become called on that new implementation to finalize the upgrade. This is the canonical, expected mechanism for deploying any Comptroller logic change in Compound governance, and it matches the referenced PR/audit for a Comptroller code change. The actual behavioral changes described (removing auto-claim, adding _setCompSpeed) live in the new implementation's bytecode, which is not independently visible in the decoded calldata beyond the address pointer — this is normal for this type of proposal and not evidence of a mismatch. No value transfers, no unexpected recipients, and no claims in the description exceed or contradict what the two actions accomplish. Confidence is medium rather than high because the substantive logic changes are encapsulated in un-decoded bytecode of the new implementation contract, so a full verification of removed functions is not possible from calldata alone, but the upgrade pattern itself is fully consistent with the description's stated intent and scope.
Generated by Kvorum
04Actions
- Target
- 0x3d98…cd3b
- Value
- 0 wei
- Function
- _setPendingImplementation(address)
- Arguments
{ "0": "0xbe7616B06f71e363A310Aa8CE8aD99654401ead7" }- Calldata
- Target
- 0xbe76…ead7
- Value
- 0 wei
- Function
- _become(address)
- Arguments
{ "0": "0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B" }- Calldata
05Tally
Summed from votes
06Voters
| Voter | Choice | % of total | Rationale | ||
|---|---|---|---|---|---|
| AC0xac57…faf6 | For | 105K | 18.11% | — | 6y ago |
| 540x54a3…e189 | For | 100.1K | 17.26% | — | 6y ago |
| 7E0x7e4a…19fa | For | 100K | 17.25% | — | 6y ago |
| 1D0x1d29…5d1f | For | 50K | 8.63% | — | 6y ago |
| 5D0x5d89…9e68 | For | 50K | 8.62% | — | 6y ago |
| 450x458c…730e | For | 50K | 8.62% | — | 6y ago |
| E50xe5b5…4b03 | For | 29.9K | 5.16% | — | 6y ago |
| 870x879d…0f11 | For | 24K | 4.14% | — | 6y ago |
| DAdakeshi.eth0xe3c9…6b21 | For | 20K | 3.45% | — | 6y ago |
| 0A0x0a09…b92e | For | 15K | 2.59% | — | 6y ago |
| A80xa8c6…3985 | For | 8K | 1.38% | — | 6y ago |
| 2B0x2b38…bf33 | For | 7.5K | 1.30% | — | 6y ago |
| 8D0x8d07…a265 | For | 7.5K | 1.30% | — | 6y ago |
| TEtennisbowling.eth0xc3aa…f546 | For | 5K | 0.86% | — | 6y ago |
| B80xb8a6…6406 | For | 5K | 0.86% | — | 6y ago |
| FC0xfc04…5ac2 | For | 2.3K | 0.40% | — | 6y ago |
| 4C0x4c1b…b8f7 | For | 224 | 0.04% | — | 6y ago |
| 7F0x7f84…4d0b | For | 102.5 | 0.02% | — | 6y ago |
| A50xa5c3…6a69 | For | 14.6 | 0.00% | — | 6y ago |
| 840x84e3…5a95 | For | 10.8 | 0.00% | — | 6y ago |
| D00xd0c3…391e | For | 6.1 | 0.00% | — | 6y ago |
| E80xe8d8…3f31 | For | 1.7 | 0.00% | — | 6y ago |
| 420x42ed…d691 | For | 1.6 | 0.00% | — | 6y ago |
| 740x74aa…017a | For | 1.1 | 0.00% | — | 6y ago |
| F10xf11d…24a3 | Against | 0.4 | 0.00% | — | 6y ago |
| 850x8579…213a | For | 0.3 | 0.00% | — | 6y ago |
| 1D0x1d03…02a7 | For | 0.3 | 0.00% | — | 6y ago |
| 020x02af…6516 | For | 0.3 | 0.00% | — | 6y ago |
| JTjthrack.eth0x44c6…aabd | For | 0.3 | 0.00% | — | 6y ago |
| 600x60a7…5f4d | For | 0.2 | 0.00% | — | 6y ago |
| 3E0x3e61…322b | For | 0.2 | 0.00% | — | 6y ago |
| A00xa0e4…ea1e | For | 0.1 | 0.00% | — | 6y ago |
| E40xe49e…f5ca | For | 0.1 | 0.00% | — | 6y ago |
| F80xf853…e619 | For | 0.1 | 0.00% | — | 6y ago |
| 000x0006…13f5 | For | 0 | 0.00% | — | 6y ago |
| 070x07fe…d682 | Against | 0 | 0.00% | — | 6y ago |
| 440x4464…c3e4 | Against | 0 | 0.00% | — | 6y ago |
| 320x3233…3049 | Against | 0 | 0.00% | — | 6y ago |
| EB0xebe4…d74a | For | 0 | 0.00% | — | 6y ago |
07Forum
- Comptroller Optimizations to enable Vesting ↗discourse · high confidence
Arguments for
- The removal of automatic COMP claims and speed refresh reduces comptroller size and saves gas for user operations.— tarun
Arguments against
None surfaced.
Notable participants
- tarunProposer who introduced the optimization changes and detailed the technical rationale.
- jmoParticipant who announced the proposal was live for voting.
Generated by Kvorum
08Similar proposals
- compoundexecutedCOMP Distribution Patch78%
- compoundexecutedSplit COMP rewards distribution and bug fixes76%
- compoundexecutedClose Deprecated Markets, Gas Savings73%
- compoundexecutedCOMP Speed Recalibration71%
- compoundexecutedFix COMP Accrual Bug71%
- compoundexecutedDistribute COMP to Users70%
- compoundcanceledTemporarily Disable COMP Rewards69%
- compoundexecutedReduce COMP emissions by 20%69%
- compoundexecutedCorrect Over-Accrued COMP68%
- compoundexecutedEnd cCOMP Borrow Rewards66%