Compound Proposal 62 COMP-Bug
Bug in Compounds Proposal-62-Upgrade zahlte bis zu 147 Mio. USD an ungewollten COMP-Rewards aus. Meist freiwillig zurückgegeben, ein Teil behalten.
- Datum
- Opfer
- Compound Finance
- Chain(s)
- Status
- Teilweise zurückerlangt
Am 30. September 2021 führte Compound Finance Proposal 62 aus — ein Governance-Vote, der die Verteilung der COMP-Belohnungen über die Lending-Märkte des Protokolls feinjustieren sollte. Der aktualisierte Comptroller-Vertrag wurde mit einem kritischen Bug ausgeliefert, der einige Nutzer weit mehr COMP erhalten ließ, als die Regeln erlaubten. Die maximale theoretische Exposition: bis zu ~147 Millionen US-Dollar COMP zu den Tagespreisen, je nachdem wie aggressiv Nutzer claimten.
Was geschah
Der alte Comptroller hatte COMP-Belohnungen in einer festen 50:50-Aufteilung zwischen Liquidity-Suppliern und Borrowern verteilt. Proposal 62 führte ein flexibleres Schema ein, das es Governance erlaubte, unterschiedliche Verhältnisse pro Markt zu spezifizieren. Der Implementierungsvertrag — geschrieben von Compound Labs und von Governance genehmigt — enthielt einen Bug in der Rewards-Tracking-Logik: Unter bestimmten Claim-Sequenzen würde der Vertrag das aufgelaufene COMP des Nutzers basierend auf veralteter oder doppelter Buchhaltung berechnen und weit mehr auszahlen, als der tatsächliche Reward-Zeitplan vorsah.
Innerhalb von Stunden nach dem Live-Gang von Proposal 62 hatten Nutzer bereits ~168.000 COMP (~50 Mio. USD zur Zeit) beansprucht, auf die sie keinen Anspruch hatten. Die Analyse des Teams zeigte, dass die Worst-Case-Exposition — wenn Nutzer durch jeden zugänglichen Buchhaltungspfad weiter claimten — bei rund 280.000 COMP (~84 Mio. USD) aus dem unmittelbaren Verteilungs-Vertrag lag, mit zusätzlicher Exposition aus Compounds breiteren Reserve-Drawdowns, die den Verlust potenziell auf den von Rekt und anderen zitierten Bereich von ~147 Mio. USD ausdehnen.
Der Fehler war von Teamseite nicht bösartig — es war ein Software-Bug in einem governance-genehmigten Upgrade. Aber die Verträge waren non-upgradeable auf Patch-Ebene, und der Bug konnte nur durch einen weiteren Governance-Vorschlag adressiert werden.
Folgen
- Compound-Governance verabschiedete Proposal 63, um die weitere COMP-Verteilung zu stoppen, während ein Patch vorbereitet wurde, und Proposal 64 („Fix COMP Accrual Bug"), um den Patch auszuliefern.
- Robert Leshner, Compounds Gründer, forderte öffentlich, dass Nutzer, die überschüssiges COMP erhalten hatten, es zurückgeben — mit dem Hinweis, dass jeder, der es nicht tat, dem IRS als Einkommen gemeldet würde.
- Ein bedeutsamer Anteil der missbräuchlich angeeigneten COMP wurde innerhalb von Wochen freiwillig zurückgegeben. Einige Nutzer — besonders diejenigen, die geclaimt und sofort in andere Assets getauscht hatten — gaben keine Mittel zurück.
Warum es wichtig ist
Der Compound-Proposal-62-Vorfall ist eines der saubersten Beispiele dafür, wie governance-genehmigte Upgrades dasselbe Risiko wie jede Vertragsänderung erben — und oft ohne die Sorgfalt von Pre-Deployment-Audit-Zyklen. Gegen einen fehlerhaften Vorschlag zu stimmen, erfordert, dass Governance-Voter die vorgeschlagenen Verträge tatsächlich lesen; in der Praxis gehen die meisten Votes mit oberflächlicher Prüfung durch.
Die defensive Antwort, die in den folgenden Jahren entstand:
- Timelocks auf allen governance-kontrollierten Upgrades, die White-Hat-Reviewern ein Fenster geben, Bugs vor der Ausführung zu markieren.
- OpenZeppelin Defender und ähnliches Tooling für Governance-Action-Simulation.
- Verpflichtende Drittpartei-Audits für jeden Vorschlag, der Reward-Verteilung, Share-Accounting oder andere invariant-kritische Codepfade berührt.
Compounds Bug ist auch einer einer kleinen Zahl von Vorfällen, in denen der „Angreifer" nicht wirklich ein Angreifer ist — er ist eine Population von Nutzern, die einem Bug ausgesetzt waren und individuell entschieden, ob sie den Glücksfall behalten oder zurückgeben. Die On-Chain-ethische Frage — was zu tun ist, wenn ein Protokoll dich mehr bezahlt, als es beabsichtigt hat — bleibt umstritten.
Quellen & On-Chain-Belege
- [01]beincrypto.comhttps://beincrypto.com/compound-finance-passes-proposal-to-fix-comp-distribution-bug/
- [02]theblock.cohttps://www.theblock.co/linked/119086/compound-bug-comp-risk-misreward
- [03]newsbtc.comhttps://www.newsbtc.com/news/compound-finance-suffers-bug/