El 12 de noviembre de 2020, el protocolo DeFi de ahorros Akropolis perdió aproximadamente 2 millones de dólares en DAI de sus pools de ahorro yCurve y sUSD. El atacante desplegó un token ERC-20 falso cuyo transferFrom re-entraba en la lógica de depósito de Akropolis, permitiéndoles ser acreditados con shares del pool sin entregar colateral real.
Qué ocurrió
Los pools de ahorro de Akropolis seguían un patrón estándar: un usuario llama a deposit, el pool extrae los tokens del usuario vía transferFrom, y luego acredita al usuario con shares del pool proporcionales al depósito.
El pool no validaba que el token depositado fuera un activo legítimo y esperado, y la ruta de depósito carecía de protección contra reentrada. El atacante explotó ambas omisiones juntas:
- Desplegó un token ERC-20 falso cuyo
transferFromcontenía un callback hacia la funcióndepositde Akropolis. - Llamó a
depositespecificando el token falso. - Cuando el pool invocó el
transferFromdel token falso, el callback re-entró endeposit— y, vía DAI real obtenido por préstamo flash usado dentro de la llamada re-entrante, manipuló la contabilidad del pool para que el atacante fuera acreditado con shares del pool muy superiores a su aporte real. - Retiró la posición de shares inflada por DAI real del pool.
- Drenó ~$2M en los pools afectados.
Consecuencias
- Akropolis pausó los pools afectados y publicó un post-mortem.
- El equipo se comprometió a un plan de compensación; la recuperación del atacante fue mínima.
- El token AKRO y la reputación del protocolo quedaron significativamente dañados.
Por qué importa
Akropolis es uno de los primeros exploits compuestos de "token falso + reentrada" en DeFi — anterior a las instancias más conocidas e idéntico patrón de Grim Finance (2021), BurgerSwap (2021) y Orion Protocol (2023).
El bug compuesto es siempre las mismas dos omisiones:
- Sin validación de que el token depositado/intercambiado sea un activo legítimo esperado (la clase de "dirección confiable desde llamador no confiable" de Pickle / Cashio).
- Sin guard de reentrada en la ruta de depósito (la clase de The DAO).
Cualquiera de los dos por separado suele ser sobrevivible; juntos forman una primitiva de drenaje completa. Akropolis en noviembre de 2020 es una de las primeras instancias limpias del catálogo — y el hecho de que el mismo bug compuesto exacto se repitiera durante años después, a través de cadenas y equipos, es una de las demostraciones más claras del catálogo de que conocer una clase de vulnerabilidad como industria no impide que equipos individuales la sigan enviando. Las primitivas defensivas (allowlists de tokens + nonReentrant) estaban libremente disponibles en 2020 y siguen estando libremente disponibles; el bug se sigue enviando igualmente.
Fuentes y evidencia on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-akropolis-hack-november-2020
- [02]decrypt.cohttps://decrypt.co/48081/defi-platform-akropolis-admits-to-being-hacked-for-2-million
- [03]rekt.newshttps://rekt.news/akropolis-rekt