★ Public initialize() without initializer modifier
Compound V3 (Comet)'s assessment for RD-F-022 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
Comet.sol initializeStorage() uses state-based guard: if (lastAccrualTime != 0) revert AlreadyInitialized(). OZ audit noted front-run risk and recommended constructor-based approach; team mitigated via governance atomicity (deploy+initialize called atomically). No exploit in 44+ months.
Sources #
- Audithttps://www.openzeppelin.com/news/compound-iii-auditretrieved 2026-04-28
- https://github.com/compound-finance/comet/blob/main/contracts/Comet.solretrieved 2026-04-28
- https://github.com/compound-finance/comet/issues/405retrieved 2026-04-28
Methodology #
Determine whether any implementation contract exposes `initialize(…)` without the OpenZeppelin `initializer` modifier or equivalent initialization lock.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol compound-v3 factor RD-F-022 score green collected_at 2026-04-28 00:20:50