Manipulation du taux de change de Hundred Finance
Hundred Finance sur Optimism a perdu 7 M$ : un bug de précision dans le fork Compound v2 a permis à un minuscule hWBTC de drainer le pool.
- Date
- Victime
- Hundred Finance
- Chaîne(s)
- Statut
- Fonds dérobés
Le 15 avril 2023, le protocole de prêt multi-chaînes Hundred Finance a été exploité sur son déploiement Optimism pour environ 7 millions de dollars. La vulnérabilité était un bug de précision/arrondi dans le calcul du taux de change de Compound v2 — le même code forké qui coûterait plus tard 20 M$ à Sonne Finance en 2024.
Ce qui s'est passé
Hundred Finance était un fork de Compound v2. Ses marchés de prêt calculaient le taux de change entre un token de dépôt (par ex. WBTC) et son cToken correspondant (hWBTC) en utilisant une formule qui dépendait de :
totalCash— combien de sous-jacent le contrat détienttotalBorrowsettotalReserves— prêts en cours et allocations de réservestotalSupply— total des cTokens mintés
L'attaque a utilisé un prêt flash et un pattern de donation à marché vide :
- L'attaquant a trouvé un marché Hundred avec offre négligeable de cTokens.
- Utilisant un prêt flash, il a donné du WBTC directement au contrat (transfert brut, sans mint), gonflant
totalCashsans changertotalSupply. - Le taux de change (
totalCash / totalSupply) a explosé — un seul cToken représentait désormais une vaste quantité de sous-jacent. - Il a redeemé sa minuscule position cToken préexistante, réclamant presque tout le pool WBTC comme redemption.
- La fonction de redemption du protocole avait aussi une erreur d'arrondi qui empêchait la math de bloquer le ratio absurde.
- Répéter sur les marchés vulnérables a drainé environ 7 M$ avant que Hundred ne se mette en pause.
Conséquences
- Hundred a mis en pause les marchés Optimism et annoncé un post-mortem.
- Les fonds ont été blanchis via des ponts cross-chain et des mixers. En avril 2024, l'attaquant a recommencé à déplacer les actifs volés après un an de dormance.
- Hundred avait déjà été exploité en mars 2022 (une attaque de réentrance sur le déploiement Gnosis Chain, conjointement avec Agave, pour 11 M$) et ne s'est jamais complètement remis entre les incidents.
Pourquoi c'est important
Hundred Finance était un avertissement précoce de ce qui s'est joué plus tard à grande échelle : les forks de Compound v2 déployés sur des L1 et L2 alternatifs tendent à hériter du modèle de sécurité de Compound v2 vanilla, y compris ses footguns connus mais faciles à manquer. Le pattern donation/précision a depuis compté pour des incidents chez Sonne, Midas, Onyx et d'autres — à chaque fois, la même forme, à chaque fois, la même cause racine.
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-hundred-finance-hack-april-2023
- [02]cryptotimes.iohttps://www.cryptotimes.io/2023/04/17/hundred-finance-hacked-for-over-7-million/
- [03]blocksec.comhttps://blocksec.com/blog/6-hundred-finance-incident-catalyzing-the-wave-of-precision-related-exploits-in-vulnerable-forked-protocols