Zum Inhalt springen
Gegr. MMXXVIBd. VI · № 273RSS
Blockchain Breaches

Ein Archiv von Sicherheitsvorfällen im Kryptobereich — Hacks, Exploits, Bridge-Ausfälle und Rug Pulls, dokumentiert mit On-Chain-Belegen.

Dossier № 057Smart-Contract-Bug

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
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

  1. [01]beincrypto.comhttps://beincrypto.com/compound-finance-passes-proposal-to-fix-comp-distribution-bug/
  2. [02]theblock.cohttps://www.theblock.co/linked/119086/compound-bug-comp-risk-misreward
  3. [03]newsbtc.comhttps://www.newsbtc.com/news/compound-finance-suffers-bug/

Verwandte Einträge