¿Qué es un flash loan y cómo funciona dentro de DeFi?

¿Qué es un flash loan?
Un flash loan es un préstamo on-chain temporal que debe reembolsarse dentro de la misma transacción, incluida una prima si corresponde. On-chain significa que toda la operación se realiza directamente en la blockchain.
En un flash loan directo, un smart contract recibe liquidez de forma temporal sin que el solicitante tenga que bloquear por adelantado una garantía para ese flash loan. La liquidez es, en este contexto, la cantidad disponible de cripto o tokens que un protocolo puede prestar. Por tanto, el préstamo no es un préstamo convencional que permanezca abierto durante días, semanas o meses.
Los flash loans son, sobre todo, un componente programable dentro de DeFi. DeFi hace referencia a aplicaciones financieras que funcionan en una blockchain mediante smart contracts. Por ello, un usuario no suele ejecutar un flash loan de forma manual como si se tratase de un préstamo tradicional. Un smart contract programado previamente solicita el préstamo y, a continuación, ejecuta automáticamente todos los pasos necesarios.
En Aave V3, un denominado contrato receiver recibe los tokens prestados. Este es el smart contract que recibe el flash loan y ejecuta las acciones planificadas. Después, el protocolo invoca un callback: un momento predeterminado en el que el contrato receiver ejecuta su propio código. Ese código puede, por ejemplo, intercambiar tokens (swap), ajustar una posición existente y, a continuación, reembolsar el préstamo más la prima.
La condición es estricta: todos los pasos deben completarse correctamente dentro de una sola transacción. Por ello, un flash loan es especialmente adecuado para acciones DeFi rápidas y compuestas, y no para crédito personal o financiación a largo plazo.
Puntos clave
- Un flash loan es un préstamo on-chain temporal que, por lo general, se liquida dentro de una sola transacción.
- En un flash loan directo, no se requiere bloquear una garantía por adelantado para el préstamo temporal.
- Los smart contracts ejecutan automáticamente el préstamo, las acciones posteriores y el reembolso.
- Si no se logra el reembolso del principal y la prima, la transacción se revierte.
- Los flash loans pueden utilizarse, entre otras cosas, para arbitraje, intercambios de colateral y el ajuste de posiciones DeFi.
¿Cómo funciona un flash loan?
Un flash loan funciona porque un smart contract toma prestados tokens de forma temporal, ejecuta acciones programadas previamente y reembolsa el préstamo más la prima antes de que termine esa misma transacción.
El proceso suele ser el siguiente:
- Iniciar el flash loan: Un smart contract invoca la función de flash loan de un protocolo. El protocolo envía la cripto seleccionada al contrato receiver.
- Ejecutar la acción planificada: El contrato receiver utiliza la liquidez temporal para los pasos programados. Por ejemplo, pueden ser swaps, o el repago y la reconfiguración de una posición DeFi.
- Asegurar saldo suficiente: Tras esas acciones, el contrato receiver debe disponer de suficientes tokens para el principal y la prima del flash loan. Esta prima es una comisión por poner liquidez a disposición de forma temporal.
- Habilitar el reembolso: El contrato receiver concede a la pool autorización para retirar el importe adeudado. Esto se denomina token approval: el contrato permite al protocolo debitar un número determinado de tokens.
- Finalizar la transacción: El protocolo retira el principal y la prima. Solo entonces se procesa definitivamente toda la transacción.
Aave V3 dispone de una función flashLoanSimple para una única reserva. Una reserva es la pool con liquidez disponible de un criptoactivo específico. La función más amplia flashLoan puede admitir varios activos a la vez.
En esa función más amplia, bajo ciertas condiciones también existe otra vía. Si esa vía está configurada de ese modo y existe suficiente garantía, el importe prestado puede abrirse como una posición de deuda regular en lugar de reembolsarse de inmediato. Esto es diferente de un flash loan directo estándar. Mediante flashLoanSimple, esta posibilidad no existe.
¿Por qué debe reembolsarse un flash loan dentro de una sola transacción?
Un flash loan directo debe reembolsarse dentro de una sola transacción porque así todos los pasos pueden ejecutarse de forma atómica. Atómica significa que toda la secuencia de acciones se completa por entero o se revierte por completo.
Piense en una transacción como un paquete sellado con múltiples instrucciones. En ese paquete, un contrato puede tomar prestados tokens, intercambiarlos (swap), saldar una deuda y reembolsar el préstamo. Solo cuando cada instrucción se ha ejecutado correctamente, el paquete se procesa en la blockchain.
Esto protege a la pool de liquidez frente a un préstamo abierto y no garantizado. Al final de la transacción, la pool retira el importe prestado más la prima. Si no lo consigue, la transacción se rechaza.
A menudo, la explicación de que un flash loan se realiza dentro de un solo bloque es útil en la práctica, pero es menos precisa. La regla de seguridad importante es que toda la operación se liquida de forma atómica dentro de una sola transacción.
¿Qué sucede si no se produce el reembolso?
Si un flash loan directo no puede reembolsarse por completo, la transacción se revierte. Revertir significa que la blockchain deshace los cambios de esa transacción fallida.
El protocolo no se queda con un flash loan impagado. Los tokens prestados temporalmente no permanecen como deuda pendiente en el contrato receiver. Asimismo, los swaps, depósitos y otros cambios que formaban parte de esa misma transacción fallida se deshacen.
No obstante, el remitente puede perder gas. El gas es la compensación por el trabajo computacional necesario para ejecutar una transacción en una blockchain. Parte de ese trabajo puede haberse realizado antes de que la transacción se revierta, por lo que pueden seguir adeudándose gas fees.
Solo con la función más amplia flashLoan de Aave V3 puede una ruta elegida, bajo ciertas condiciones, dar lugar a una posición de deuda regular. Para ello debe existir suficiente garantía y los controles del protocolo deben permitirlo. Esto no aplica a flashLoanSimple.
¿Para qué se utilizan los flash loans?
Los flash loans se utilizan para combinar múltiples acciones DeFi dependientes en una única transacción atómica. Esto puede resultar útil cuando un paso solo es posible después de que otro se haya ejecutado inmediatamente antes o después.
Las aplicaciones habituales incluyen:
- arbitraje entre mercados;
- el intercambio de colateral dentro de una posición de préstamo;
- saldar una deuda con colateral;
- cerrar o reestructurar una posición DeFi.
Un flash swap sigue un principio similar. Permite retirar tokens de una pool y pagar o devolver tokens solo al final de la misma transacción. Un flash swap y un flash loan no son técnicamente lo mismo, pero ambos utilizan liquidez temporal dentro de una ejecución atómica.
¿Cómo funcionan el arbitraje y las diferencias de liquidez con flash loans?
El arbitraje intenta aprovechar una diferencia de precio para los mismos activos, o activos económicamente comparables, entre distintos mercados. Un flash loan puede aportar capital de negociación temporal para ello, de modo que quien ejecuta no tenga que poseer por adelantado el importe completo.
Una estrategia de arbitraje sencilla puede ser la siguiente:
- Un smart contract toma prestados tokens temporalmente mediante un flash loan.
- El contrato vende o intercambia esos tokens (swap) en un mercado donde el precio es relativamente alto.
- Recompra el mismo activo en otro mercado donde el precio es más bajo.
- El contrato reembolsa el flash loan y la prima.
- Solo permanece un posible excedente como resultado.
Ejemplo: Suponga que un token puede venderse en una pool a un precio ejecutable más alto que el precio al que puede recomprarse en otra pool. Un smart contract puede tomar prestados tokens temporalmente, ejecutar los dos swaps y saldar el préstamo. Si, tras todos los costes, queda un excedente, entonces la transacción fue rentable.
Una diferencia de precio visible no es automáticamente una oportunidad de beneficio. El rendimiento real debe ser superior al principal, la prima del flash loan, las comisiones de swap, los costes de ruta, el gas y el slippage.
También influye el price impact. El price impact es el cambio de precio que su propia operación provoca en una pool de liquidez. Un swap grande en una pool con poca liquidez puede modificar el precio de tal manera que la diferencia de precio original desaparezca.
¿Cómo pueden utilizarse los flash loans para intercambios de colateral?
Un swap de colateral sustituye la garantía de una posición de préstamo en una sola transacción. El colateral es la cripto que un usuario deposita en un protocolo de préstamo como garantía de un préstamo.
Este tipo de swap puede ayudar cuando un usuario desea sustituir el colateral de una posición de préstamo existente sin disponer primero de fondos propios suficientes para saldar la deuda. Un flash loan puede aportar temporalmente la liquidez necesaria para ejecutar todos los pasos intermedios dentro de una sola transacción. El orden exacto depende del protocolo y de la lógica de smart contracts utilizada.
Un posible swap de colateral con ayuda de un flash loan es el siguiente:
- Tomar prestado temporalmente el activo de la deuda: El smart contract toma prestado mediante un flash loan el activo en el que está denominada la deuda existente.
- Saldar la deuda existente: Con los tokens prestados temporalmente, se salda la deuda, lo que permite liberar el colateral original.
- Retirar el colateral original: El smart contract retira la garantía liberada de la posición de préstamo.
- Intercambiar el colateral: El colateral original se intercambia (swap) por el nuevo criptoactivo de colateral deseado.
- Depositar el nuevo colateral: El nuevo activo se deposita como colateral en el protocolo de préstamo.
- Reabrir la deuda: Contra el nuevo colateral, se toma prestado de nuevo el activo de la deuda.
- Reembolsar el flash loan: Con esos tokens, el contrato reembolsa el préstamo temporal más una prima si corresponde.
Al final de la transacción, el usuario vuelve a tener una posición de préstamo, pero con otro colateral. Si falla un paso necesario o el flash loan no puede reembolsarse por completo, se revierte toda la transacción.
Un flujo relacionado pero diferente es saldar deuda con colateral. En ese caso, el contrato toma prestado temporalmente el activo de la deuda, salda la deuda existente, retira el colateral liberado e intercambia (swap) una parte de ese colateral para reembolsar el flash loan. Aquí el objetivo no es reabrir la misma posición de deuda con otro colateral, sino saldar total o parcialmente la deuda existente.
Que un flujo de este tipo sea ejecutable depende, entre otras cosas, de los activos admitidos, la liquidez disponible, el LTV y los parámetros de liquidación. El LTV indica qué parte del valor del colateral puede tomarse prestada como máximo. Los parámetros de liquidación determinan cuándo una posición está insuficientemente cubierta y puede liquidarse.
¿Siguen siendo rentables los flash loans?
Los flash loans no son automáticamente rentables, porque solo proporcionan financiación temporal para una estrategia específica. Que una transacción genere beneficios depende del resultado final tras todos los costes y riesgos.
En arbitraje, una estrategia solo tiene sentido si el rendimiento obtenido es superior a:
- la prima del flash loan;
- gas fees;
- costes de swap y de ruta;
- price impact;
- slippage.
La prima del flash loan no es un porcentaje universal fijo. Puede variar según el protocolo, la chain, la implantación y la configuración, y puede ajustarse. El gas también es variable. Los costes dependen, entre otros factores, de la cantidad de trabajo computacional, la base fee y la priority fee que corresponden a una transacción en Ethereum.
Además, la competencia hace que las oportunidades pequeñas sean vulnerables. Buscadores automatizados pueden intentar aprovechar con rapidez las mismas diferencias de precio. Asimismo, una simulación o una cotización no garantizan que la ejecución real mantenga el mismo precio y rendimiento.
Por tanto, los flash loans no son un método para un rendimiento fijo. Son una herramienta técnica que solo puede aportar valor cuando una transacción concreta sigue siendo favorable tras todos los costes.
¿Cuáles son las ventajas de los flash loans?
Los flash loans ofrecen a los smart contracts acceso temporal a liquidez sin que el iniciador tenga que bloquear por adelantado el principal completo como garantía para ese préstamo temporal.
Las principales ventajas son:
- Acceso temporal a liquidez: Una estrategia puede ejecutarse con un importe mayor del que el ejecutor tiene disponible de antemano para ese préstamo específico.
- Sin ejecución parcial: Gracias a la atomicidad, todos los cambios de estado se deshacen si falla un paso necesario. De este modo, el usuario no se queda con una posición ajustada a medias.
- Múltiples acciones en una sola transacción: Tomar prestado, hacer swaps, reembolsar, retirar y volver a depositar pueden ejecutarse como un único conjunto.
- Gestión de posiciones más eficiente: Los swaps de colateral y otros ajustes de posiciones DeFi pueden agruparse sin que cada paso intermedio tenga que financiarse por separado.
Sin capital inicial no significa sin costes. Para una transacción de flash loan, normalmente siguen siendo necesarios tokens nativos para el gas. También puede requerirse saldo para cubrir una prima o una ejecución desfavorable.
¿Qué riesgos y limitaciones tienen los flash loans?
Los flash loans conllevan riesgos técnicos, financieros y de ejecución, a pesar de que el préstamo directo se revierte si el reembolso falla. El diseño atómico protege principalmente al proveedor de liquidez frente a un préstamo directo sin reembolso. No elimina todos los riesgos para el usuario o el desarrollador.
Una transacción de flash loan es compleja. El receiver, los token approvals, los swaps, los controles de precio y el reembolso deben funcionar conjuntamente sin errores. Un fallo en un componente puede hacer que toda la transacción se revierta y generar costes de gas.
Asimismo, la capacidad de préstamo es limitada. Un protocolo solo puede prestar lo que esté disponible en la reserva o pool correspondiente. Por tanto, el tamaño deseado no siempre está disponible.
Además, una transacción puede tener éxito técnico y aun así ser financieramente desfavorable. Por ejemplo, un swap puede ejecutarse a un precio desfavorable si el slippage permitido se ha configurado con un margen demasiado amplio.
¿Cómo pueden explotarse los errores de smart contracts?
Un flash loan puede explotar a gran escala un error existente en otro protocolo, ya que un atacante puede controlar temporalmente muchos tokens. El flash loan no provoca ese error, pero puede aportar el capital necesario para aprovechar la debilidad dentro de una sola transacción.
Un diseño arriesgado es, por ejemplo, un protocolo que confía en un precio spot directamente manipulable. Un precio spot es el precio visible en una pool en ese momento exacto. Un atacante puede influir temporalmente en el precio con una operación grande, ejecutar una acción dependiente y revertir la operación dentro de la misma transacción atómica.
La titularidad temporal de tokens también puede ser peligrosa cuando un protocolo la utiliza, sin protección adicional, como señal de seguridad o de governance. La governance es el proceso mediante el cual los participantes deciden sobre reglas o cambios de un protocolo.
La protección reside principalmente en un diseño sólido del protocolo. Algunos ejemplos son oráculos de precios más robustos, datos de precios ponderados en el tiempo cuando corresponda, controles de límites económicos y desarrollo defensivo y auditorías de smart contracts.
¿Qué papel desempeñan los costes de transacción y el slippage?
Los costes de transacción y el slippage suelen determinar si una estrategia con flash loan es realmente rentable. Incluso cuando la acción principal se completa, estos costes pueden eliminar por completo un rendimiento esperado.
Las gas fees son los costes del trabajo computacional ejecutado en Ethereum. Las transacciones complejas con múltiples smart contracts, swaps y token approvals suelen consumir más gas que una transferencia sencilla. Una transacción que se revierte durante la ejecución puede seguir costando gas.
Price impact y slippage no son lo mismo:
- Price impact es el cambio de precio que provoca su propia operación. Este efecto suele ser mayor cuando la operación es grande en relación con la liquidez de una pool.
- Slippage es la diferencia entre el resultado esperado de un swap y lo que realmente se recibe. El precio puede cambiar entre el momento en que se prepara una transacción y el momento en que se ejecuta.
Un límite de slippage demasiado bajo puede hacer que una transacción se revierta. Un límite demasiado alto, en cambio, puede permitir que el swap continúe a un precio mucho peor. Por ello, el gas, la prima, el price impact y el slippage deben restarse de la ganancia bruta antes de considerar una estrategia como rentable.
¿Cuál es la diferencia entre los flash loans y el crypto borrowing?
Los flash loans y el crypto borrowing son dos formas de tomar cripto prestada, pero funcionan de manera fundamentalmente distinta. En el crypto borrowing, un usuario suele abrir una posición de préstamo que puede existir durante más tiempo. En cambio, un flash loan está pensado para utilizar liquidez de forma temporal dentro de una sola transacción de blockchain.
En el crypto borrowing, un usuario suele depositar cripto como garantía para poder tomar prestado otro criptoactivo. La deuda permanece entonces abierta hasta que se reembolsa. Durante ese periodo, puede acumularse interés sobre el préstamo. Si el valor de la garantía cae demasiado en relación con la deuda, la posición puede liquidarse.
En un flash loan directo, no es necesario bloquear una garantía por adelantado para el préstamo temporal. Sin embargo, el importe prestado debe reembolsarse, junto con una prima si corresponde, dentro de la misma transacción. Si no sucede, se revierte toda la transacción y se deshacen los cambios ejecutados.
Las diferencias son claras:
- Duración: El crypto borrowing puede dar lugar a una posición de deuda que permanece abierta durante días, meses o más. Un flash loan directo solo existe dentro de una sola transacción.
- Garantía: En el crypto borrowing, normalmente se requiere colateral. En un flash loan directo, no se requiere colateral por adelantado para el préstamo temporal.
- Riesgo de liquidación: En el crypto borrowing, una posición puede liquidarse cuando la garantía no ofrece cobertura suficiente. Un flash loan directo no tiene una posición a largo plazo que pueda liquidarse: si el reembolso no se logra, la transacción se revierte.
- Costes: En el crypto borrowing, puede acumularse interés mientras la deuda permanezca abierta. En un flash loan, normalmente se paga una prima por el uso temporal de la liquidez.
- Uso: El crypto borrowing se utiliza para tomar prestado capital sin vender de inmediato la garantía. Los flash loans se utilizan principalmente para acciones DeFi automatizadas como el arbitraje, los swaps de colateral y la reestructuración de posiciones de préstamo.
En resumen, el crypto borrowing está pensado para mantener un préstamo durante más tiempo, mientras que un flash loan aporta liquidez temporal para una serie de acciones que se ejecutan dentro de una sola transacción.
Aave V3 introduce aquí un matiz. Mediante la función más amplia flashLoan, una transacción puede, bajo ciertas condiciones, finalizar en una posición de deuda regular cuando existe suficiente colateral. En ese caso, ya no se trataría de un flash loan directo estándar, sino, en la práctica, de crypto borrowing.
Reflexión final
Un flash loan es un componente de DeFi que permite a un smart contract utilizar liquidez de forma temporal y reembolsarla dentro de la misma transacción. Su fuerza reside en la atomicidad: todos los pasos se completan juntos, o la blockchain revierte toda la transacción.
Por ello, los flash loans pueden ser útiles para acciones compuestas como el arbitraje, los swaps de colateral y el ajuste de posiciones de préstamo. No proporcionan un rendimiento automático y tampoco son un préstamo convencional para uso prolongado. El resultado final depende del código, la liquidez disponible, las gas fees, el price impact, el slippage y la estrategia elegida.
Especialmente para desarrolladores y estrategias DeFi automatizadas, los flash loans son una herramienta potente. Al mismo tiempo, un uso seguro requiere smart contracts fiables, buenos controles de precios y un cálculo realista de todos los costes y riesgos.