¿Qué es un exploit de flash loan y cómo funciona este ataque en los protocolos DeFi?

¿Qué es un exploit de flash loan?
Un exploit de flash loan es un ataque en el que alguien toma prestada temporalmente una gran cantidad de cripto para aprovechar un error en un protocolo DeFi. Un flash loan es un préstamo que debe reembolsarse dentro de una sola transacción de blockchain.
Ese tipo de flash loan no está garantizado. Por tanto, no es necesario depositar primero garantía propia, pero existe una condición importante: el préstamo, incluida la comisión, debe haberse devuelto antes de que termine esa misma transacción. ¿No se consigue? Entonces la blockchain revierte toda la transacción como si nunca hubiera ocurrido.
Eso se denomina ejecución atómica. Puede verse como un solo paquete: todos los componentes tienen éxito juntos o no ocurre nada. Los flash loans también se utilizan normalmente, por ejemplo, para arbitraje, liquidaciones y el intercambio de garantía.
En un exploit, un atacante utiliza esa liquidez temporal para golpear un punto débil en otro lugar. A menudo se trata de un protocolo que, para tomar una decisión importante, confía en el precio spot de un único DEX. Ese precio puede desplazarse temporalmente de forma notable mediante un swap muy grande.
Supongamos que un protocolo de lending toma ese precio temporalmente inflado como si fuera el precio real de mercado. Entonces un atacante puede hacer que la garantía se valore mucho más de lo debido y pedir prestada más cripto contra ella de la que sería segura en realidad. Otros ataques no giran en torno a los precios, sino, por ejemplo, al peso temporal de voto en la gobernanza on-chain o a un error en la lógica de negocio de los smart contracts.
Puntos clave
- Un flash loan es un préstamo sin garantía que debe reembolsarse dentro de la misma transacción.
- Un exploit de flash loan suele aprovechar un error en otro protocolo DeFi, no en el flash loan en sí.
- Un ataque frecuente manipula temporalmente el precio spot en un pool de DEX.
- Gracias a la ejecución atómica, todo el ataque tiene éxito o todo se revierte.
- La flash liquidity también puede utilizarse para aprovecharse de la gobernanza o de errores en las reglas del protocolo.
¿Cómo funciona un exploit de flash loan?
Un exploit de flash loan suele funcionar porque un atacante utiliza temporalmente mucho capital para cambiar un precio o el estado de un protocolo, tras lo cual el protocolo objetivo toma una decisión incorrecta. Todo ocurre dentro de una única transacción atómica.
¿Cómo funciona exactamente? Primero, el atacante hace que su propio smart contract tome un flash loan. Después, ese contrato puede ejecutar directamente varias acciones, como intercambiar tokens, depositar garantía y pedir cripto prestada
En una manipulación de oráculo, el atacante compra o vende una gran cantidad de un token en un pool de DEX mediante un swap grande. Como resultado, las reservas de ese pool cambian y el precio spot local sube o baja temporalmente de forma brusca. Un oráculo de precios es, en pocas palabras, el componente que le dice a un protocolo cuánto vale algo.
El peligro surge si otro protocolo lee ese precio alterado como si fuera el precio normal del mercado en general. Entonces el atacante puede, por ejemplo, pedir prestados demasiados activos con una garantía inflada o provocar una liquidación incorrecta.
Al final, el contrato atacante convierte suficientes ingresos en efectivo para devolver el flash loan y la comisión. Lo que queda después es el beneficio. ¿No hay suficiente para el reembolso? Entonces toda la transacción se revierte.
Eso limita el riesgo para el atacante: todos los pasos deben funcionar de una sola vez. Para el protocolo víctima, sin embargo, el daño puede ser permanente. Por ejemplo, el protocolo ya habrá prestado demasiada cripto basándose en un precio que solo estuvo mal durante un instante.
No todos los ataques siguen exactamente este patrón. En los ataques de gobernanza, la liquidez temporal puede utilizarse sobre todo para obtener mucho peso de voto. En otros exploits, el fallo está precisamente en un cálculo o en una regla de acceso del protocolo.
¿Qué pasos incluye un ataque de flash loan?
Un ataque de flash loan suele seguir cinco pasos lógicos, aunque en la práctica los atacantes pueden combinar varios préstamos, protocolos y swaps.
-
Encontrar un punto débil El atacante busca primero un error que sea interesante desde el punto de vista financiero. Piense en un precio spot de DEX que sea fácil de influir, una valoración incorrecta de LP tokens o participaciones de vault, o una gobernanza en la que los tokens prestados otorguen derecho de voto de inmediato.
-
Tomar capital temporalmente prestado Después, un smart contract atacante toma un flash loan. No se necesita garantía previa, pero el préstamo debe reembolsarse dentro de la misma transacción.
-
Influir en el precio o en el estado Con el capital prestado, el contrato ejecuta swaps grandes, depósitos, préstamos, minting, votos u otras llamadas al contrato. El objetivo es cambiar temporalmente un precio, el valor de las reservas u otra entrada importante.
-
Extraer valor del protocolo Mientras el precio o el estado incorrectos sigan vigentes, el contrato puede, por ejemplo, pedir prestados demasiados activos, acuñar demasiados tokens o ejecutar una acción de gobernanza perjudicial.
-
Liquidar el préstamo Por último, el contrato devuelve el principal y la comisión. Los activos restantes son el beneficio. Si el reembolso no se completa, todo se revierte.
Ejemplo: En el ataque a bZx del 18 de febrero de 2020, el atacante tomó prestados 7.500 ETH mediante un flash loan. Después, el precio de sUSD se elevó mediante swaps. El atacante utilizó aproximadamente 1,1 millones de sUSD como garantía sobrevalorada para pedir prestados 6.796 ETH y luego devolvió el flash loan. Al final, el atacante obtuvo un beneficio de aproximadamente 2.378 ETH.
¿Qué protocolos DeFi son vulnerables a los exploits de flash loan?
No existe un único tipo de protocolo DeFi que sea automáticamente vulnerable. El riesgo aparece cuando un protocolo toma decisiones valiosas basándose en información que puede manipularse de forma barata dentro de una sola transacción.
Los protocolos de lending y borrowing pueden correr riesgo si utilizan el precio spot de un único DEX como única fuente de precios para la garantía, los límites de préstamo o las liquidaciones. Un swap grande puede cambiar temporalmente ese precio local, mientras que el precio en el resto del mercado cripto es muy distinto.
Los agregadores de rendimiento y los vaults también pueden ser vulnerables. Especialmente cuando el precio para acuñar o canjear participaciones de vault depende de reservas de pool que un atacante puede modificar temporalmente. Los depositantes existentes pueden verse perjudicados.
Los protocolos de stablecoins, derivados y activos sintéticos afrontan riesgos similares cuando procesos importantes, como la determinación de la garantía, el beneficio y la pérdida (PnL), el funding o las liquidaciones, dependen de un precio poco fiable. PnL significa el beneficio o la pérdida de una posición.
La gobernanza on-chain es otro punto de atención. Si el poder de voto depende directamente de tokens que alguien posee o toma prestados solo durante un periodo muy breve, un atacante puede reunir temporalmente suficiente influencia para sacar adelante una propuesta. Esto resulta aún más peligroso si una propuesta aprobada puede iniciar de inmediato código ejecutable o acciones con una tesorería de DAO.
Es importante saberlo: un flash loan no siempre es necesario. Alguien con suficiente capital propio, o con otra fuente de liquidez temporal, a veces también puede aprovechar el mismo defecto de diseño.
Ejemplos de exploits de flash loan
Los exploits de flash loan pueden verse de formas muy distintas. Los ejemplos conocidos muestran bien que no solo pueden atacarse los oráculos de precios, sino también las reglas de valoración y la gobernanza.
-
bZx, 15 de febrero de 2020: el atacante utilizó un flash loan de 10.000 ETH en un ataque combinado contra varios protocolos DeFi. Al elevar el precio de WBTC mediante swaps grandes y aprovechar un error en la lógica de margen de bZx, el daño reportado fue de aproximadamente 1.271 ETH, entonces unos 350.000 dólares.
-
bZx, 18 de febrero de 2020: unos días después siguió un segundo ataque con un flash loan de 7.500 ETH. El precio de sUSD fue manipulado, lo que permitió usar sUSD como garantía sobrevalorada para pedir prestados 6.796 ETH. El beneficio reportado fue de 2.378 ETH, entonces unos 633.000 dólares.
-
Harvest Finance, 26 de octubre de 2020: en este ataque económico, los valores de USDC y USDT en el pool Y de Curve se vieron afectados repetidamente. Eso permitió al atacante acuñar participaciones de vault a un precio favorable y canjearlas después por el precio normal de la participación. Se retiraron aproximadamente 24 millones de dólares de los vaults implicados.
-
PancakeBunny, 19 de mayo de 2021: aquí un atacante manipuló el precio de BUNNY mediante un flash loan. Un error en la valoración de los LP tokens de PancakeSwap provocó después la acuñación de una cantidad excesiva de tokens BUNNY.
-
Beanstalk, 17 de abril de 2022: el atacante utilizó un flash loan para manipular la gobernanza on-chain y se llevó aproximadamente 77 millones de dólares en activos de usuarios no Bean. Después, el protocolo se pausó y la gobernanza on-chain se desactivó temporalmente.
Las cantidades en este tipo de incidentes pueden variar según cómo se mida el daño. Piense en activos brutos retirados, beneficio neto, fondos devueltos y el precio en ese momento.
¿Cuáles son las consecuencias de un exploit de flash loan?
Un exploit de flash loan puede hacer que usuarios, proveedores de liquidez y una DAO pierdan cripto de forma inmediata. El daño normalmente no recae en el proveedor del flash loan, sino en el protocolo cuya lógica de precios, valoración, gobernanza o smart contracts ha sido aprovechada.
En un protocolo de lending, un precio de garantía manipulado puede provocar una deuda que no esté bien cubierta. Cuando el precio vuelve a la normalidad, la garantía resulta valer menos que la cripto prestada. Entonces el protocolo se queda con un déficit.
En un ataque contra participaciones de vault, los depositantes existentes suelen sufrir dilución. Dicho de forma simple, el atacante obtiene temporalmente más participaciones de las que le corresponderían. Cuando esas participaciones se canjean más tarde, el atacante extrae más del vault de lo que realmente se había depositado.
También suele haber consecuencias prácticas. Un protocolo puede pausar contratos, desactivar o modificar la gobernanza, obligar a los usuarios a migrar a un nuevo contrato y poner en marcha un largo proceso de recuperación o compensación.
Eso también ocurrió tras el ataque a Beanstalk. Además de la pérdida directa, el protocolo se pausó y la gobernanza on-chain se desactivó. Harvest, tras su incidente, recuperó los fondos restantes de los pools implicados y limitó las conversiones durante la investigación.
¿Cómo pueden prevenir los protocolos DeFi los exploits de flash loan?
Los protocolos DeFi no pueden prevenir los exploits de flash loan con una sola medida. Una buena seguridad consta de varias capas que, en conjunto, dificultan la manipulación de precios, los errores de cálculo y el abuso de la gobernanza.
-
No confíe en el precio spot de un solo DEX. No utilice un precio directamente manipulable de un único pool como único oráculo para préstamos, liquidaciones, minting o fijación del precio de participaciones.
-
Utilice feeds de precios más amplios. Un oráculo con varias fuentes de datos independientes y una cobertura de mercado más amplia reduce la probabilidad de que un único pool manipulado temporalmente determine el resultado.
-
Use un TWAP cuando sea apropiado. Un time-weighted average price, o TWAP, es un precio medio calculado durante un periodo determinado. Una ventana más larga encarece la manipulación, pero también hace que el precio reaccione con menos rapidez a cambios reales del mercado.
-
Incorpore controles claros. Piense en desviaciones máximas de precio, comprobaciones de que los datos de precio siguen siendo recientes, liquidez mínima, límites conservadores de loan-to-value y topes por activo. Ante datos de oráculo extraños, un protocolo puede bloquear o pausar acciones sensibles.
-
Pruebe por separado los LP tokens y las participaciones de vault. El valor de estas posiciones suele depender de las reservas y de las posiciones subyacentes. Por ello, pruebe también un slippage extremo y depósitos y retiradas dentro de la misma transacción.
-
Limite el peso de voto temporal. La gobernanza puede usar snapshots predefinidos, establecer un retraso entre la votación y la ejecución, y limitar qué acciones puede ejecutar una propuesta. Tras el ataque de abril de 2022, Beanstalk eliminó la gobernanza on-chain y pasó temporalmente a votos de Snapshot con ejecución mediante una multisig comunitaria de 5 de 9.
-
Pruebe los ataques de forma preventiva. Las auditorías independientes, las simulaciones de ataques económicos y las pruebas en forks deben incluir flash loans, manipulación de oráculos, reentrancy y transacciones compuestas. Reentrancy significa que un contrato externo puede volver a llamar inesperadamente a una función antes de que la primera ejecución haya terminado de forma segura.
-
Prepare la respuesta ante incidentes. La supervisión de cambios extremos en precios y reservas, un mecanismo de pausa cuidadosamente diseñado y procedimientos de emergencia claros pueden limitar el daño. Una pausa de este tipo no puede revertir un ataque que ya se ha completado de forma atómica, pero sí puede ayudar a evitar daños adicionales.
Conclusión
Un exploit de flash loan no gira en torno a un flash loan inseguro, sino a un error en el protocolo DeFi que se ataca después. El flash loan proporciona al atacante mucho capital de forma temporal, con el que puede influir en un precio, una valoración o un proceso de gobernanza.
Especialmente los protocolos que confían ciegamente en el precio de un solo DEX, en reglas de valoración vulnerables o en un peso de voto temporal ejecutable de inmediato corren riesgo. Unos buenos oráculos, límites inteligentes, smart contracts bien probados y un buen plan de emergencia hacen que este tipo de ataques sean mucho más difíciles. Para los usuarios, la lección principal sigue siendo sencilla: DeFi puede ofrecer muchas posibilidades, pero los riesgos técnicos de un protocolo son al menos tan importantes como la rentabilidad potencial.