Manipulación de exchange-rate en Hundred Finance
Hundred Finance en Optimism perdió 7 M$ por un ataque de donación: un bug de redondeo en el fork de Compound v2 dejó vaciar el pool con hWBTC mínimo.
- Fecha
- Víctima
- Hundred Finance
- Cadena(s)
- Estado
- Fondos robados
El 15 de abril de 2023, el protocolo de préstamo multicadena Hundred Finance fue explotado en su despliegue en Optimism por aproximadamente 7 millones de dólares. La vulnerabilidad era un bug de precisión/redondeo en el cálculo del exchange-rate de Compound v2: el mismo código forkeado que más adelante costaría 20 M$ a Sonne Finance en 2024.
Qué ocurrió
Hundred Finance era un fork de Compound v2. Sus mercados de préstamo calculaban el exchange-rate entre un token de depósito (p.ej., WBTC) y su cToken correspondiente (hWBTC) usando una fórmula que dependía de:
totalCash: cuánto subyacente retiene el contratototalBorrowsytotalReserves: préstamos pendientes y asignaciones a reservastotalSupply: total de cTokens acuñados
El ataque usó un préstamo flash y un patrón de donación a mercado vacío:
- El atacante encontró un mercado de Hundred con suministro insignificante de cTokens.
- Usando un préstamo flash, donó WBTC directamente al contrato (transferencia cruda, sin mint), inflando
totalCashsin cambiartotalSupply. - El exchange-rate (
totalCash / totalSupply) se disparó: un solo cToken ahora representaba una vasta cantidad de subyacente. - Redimieron su pequeña posición preexistente de cToken, reclamando casi todo el pool de WBTC como redención.
- La función de redención del protocolo también tenía un error de redondeo que impedía a las matemáticas bloquear el ratio absurdo.
- Repetir en los mercados vulnerables drenó aproximadamente 7 M$ antes de que Hundred pausara.
Consecuencias
- Hundred pausó los mercados de Optimism y anunció un análisis post-mortem.
- Los fondos se lavaron mediante puentes cross-chain y mezcladores. En abril de 2024 el atacante comenzó a mover los activos robados de nuevo tras un año de inactividad.
- Hundred había sido explotada anteriormente en marzo de 2022 (un ataque de reentrada en el despliegue de Gnosis Chain, junto con Agave, por 11 M$) y nunca se recuperó del todo entre incidentes.
Por qué importa
Hundred Finance fue una advertencia temprana de lo que más tarde se desplegó a escala: los forks de Compound v2 desplegados en L1 y L2 alternativos tienden a heredar el modelo de seguridad del Compound v2 vanilla, incluidos sus footguns conocidos pero fáciles de pasar por alto. El patrón de donación/precisión ha producido desde entonces incidentes en Sonne, Midas, Onyx y otros: cada vez la misma forma, cada vez la misma causa raíz.
Fuentes y evidencia 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