Cascade oracle DAI de Compound
Compound a liquidé 89 M$ de positions sur-collatéralisées après que le DAI a brièvement tradé à 1,30 $ sur Coinbase Pro, source unique de l'oracle.
- Date
- Victime
- Compound Finance
- Chaîne(s)
- Statut
- Fonds dérobés
Le 26 novembre 2020 — matin de Thanksgiving aux États-Unis — environ 89 millions de dollars de positions sur-collatéralisées ont été liquidés sur Compound Finance en une seule heure. Il n'y avait pas d'exploit de smart contract. Le protocole fonctionnait exactement comme conçu. Le problème était que son oracle lisait le prix du DAI depuis un seul lieu — Coinbase Pro — et le DAI a brièvement tradé à 1,30 $ là-bas dans une liquidité de vacances mince.
Ce qui s'est passé
L'oracle de prix de Compound à l'époque utilisait Coinbase Pro comme source d'ancrage pour les prix de stablecoins, avec une vérification de bon sens exigeant que le prix reporté reste dans 20 % d'un TWAP Uniswap. Le garde-fou de 20 % était généreux — le DAI bougeait rarement de plus d'une fraction de pourcent, même dans les marchés stressés.
Entre environ 12:00 et 13:00 PT, trois choses se sont produites simultanément :
- L'ETH a chuté de ~8 % globalement, poussant les ratios de collatéral de nombreux emprunteurs plus près des seuils de liquidation.
- Le prix du DAI sur Coinbase Pro a bondi à ~1,30 $ sur les paires DAI/USDC, DAI/USD et ETH/DAI — une prime de 30 % conduite par une liquidité mince de matin de vacances et des achats concentrés.
- L'oracle de Compound a ingéré le prix DAI de 1,30 $ (dans la tolérance TWAP Uniswap de 20 % uniquement parce que le pool DAI Uniswap a aussi brièvement dérivé).
Pour les utilisateurs Compound ayant emprunté du DAI contre du collatéral ETH, le protocole calculait maintenant leur dette à 30 % au-dessus de sa valeur de marché réelle. Des dizaines de millions en positions sont devenues instantanément sous-collatéralisées. Les bots de liquidation — opérant exactement comme Compound l'avait prévu — ont fondu.
~89 M$ d'emprunts libellés en DAI ont été liquidés dans la fenêtre, les emprunteurs perdant à la fois leurs prêts et le collatéral saisi au discount de liquidation.
Conséquences
- Le prix Coinbase du DAI s'est normalisé à ~1,00 $ dans l'heure. Quand cela s'est produit, les liquidations étaient finales.
- La gouvernance Compound a débattu d'indemniser les utilisateurs liquidés. Après une discussion contentieuse, l'équipe a refusé de rembourser — caractérisant les liquidations comme s'étant produites selon les règles du protocole, même si ces règles avaient échoué aux utilisateurs.
- L'incident a dramatiquement accéléré la migration de Compound vers les flux de prix basés sur Chainlink avec médianes multi-sources et contrôles de déviation plus serrés.
Pourquoi c'est important
L'incident DAI Compound est le cas canonique de pourquoi « le protocole a fonctionné comme conçu » n'est pas une défense. Chaque paramètre dans un système DeFi — source d'oracle, tolérance de déviation, seuil de liquidation, période de grâce — représente une promesse implicite sur la réalité. Quand la réalité cesse de correspondre aux hypothèses, « selon les règles » produit des dénouements auxquels les utilisateurs du protocole n'auraient jamais souscrit.
La leçon — que les flux de prix d'un seul lieu sont un point unique de défaillance, même quand le lieu est Coinbase — a piloté le mouvement à l'échelle de l'industrie vers l'agrégation Chainlink/multi-sources. Le schéma du bug, cependant, récidive chaque fois qu'un protocole se lance avec un flux de prix mince et apprend la même leçon que ses prédécesseurs ont payée.
Sources & preuves on-chain
- [01]decrypt.cohttps://decrypt.co/49657/oracle-exploit-sees-100-million-liquidated-on-compound
- [02]cryptobriefing.comhttps://cryptobriefing.com/compound-user-liquidated-49-million-price-oracle-blamed/
- [03]blockonomi.comhttps://blockonomi.com/chainlink-compound-liquidations/