Flash Loans en DeFi: Préstamos Sin Garantía en Finanzas Algorítmicas

Los flash loans son préstamos que se piden y se devuelven en una misma transacción. Pueden abrir un nuevo terreno en el futuro de las finanzas algorítmicas.

Esta es una versión traducida y adaptada del artículo “What Are Flash Loans in DeFi?” publicado en la Binance Academy.

La mayoría entiende cómo funciona un préstamo tradicional. Pero vale la pena reiterar algunos conceptos para entender la novedad que traen los flash loans.

Hay dos grandes tipos de préstamos: sin garantía y con garantía.

En un préstamo sin garantía no hay un activo que el prestamista pueda quedarse si no devolvemos el dinero. Típicamente, esto requiere cierto tipo de aprobación del crédito.

El prestamista estudiará tu historial crediticio para estimar tu capacidad de repago. Si ve que has tomado muchos créditos y los has devuelto a tiempo, seguramente pensará: “Esta persona es bastante confiable. Vamos a prestarle algo de dinero”.

Pero, a veces, un buen historial crediticio no es suficiente. Aunque tengas un historial impecable de haber devuelto todos tus préstamos al día a lo largo de décadas, esto no bastará para pedir una suma importante.

Para reducir su riesgo, el prestamista podría pedirte que pongas algún activo en garantía (joyas, una propiedad, etc.) que pasará a ser del prestamista si no le devuelves el dinero a tiempo. Esto es un préstamo con garantía.

¿Cómo Funciona un Flash Loan?

Un flash loan es un préstamo sin garantía en el que tampoco necesitas pasar por ninguna revisión de riesgo crediticio. Simplemente pides al prestamista si puede prestarte 50.000 dólares en ETH, y te responde: “Claro que sí. Aquí tienes”.

Pero, ¿cómo es posible? Si no ponemos ninguna garantía ni tenemos una verificación de riesgo, ¿cómo puede saber el prestamista que no huiremos con el dinero?

La explicación es que el flash loan debe ser devuelto en la misma transacción en la que ha sido solicitado.

Si esto nos parece poco intuitivo es porque estamos acostumbrados a formatos típicos de transacciones donde los fondos se mueven de un usuario a otro. Como cuando pagamos por bienes y servicios o cuando depositamos tokens en un exchange.

Pero Ethereum nos brinda una plataforma muy flexible en la que podemos programar un flash loan como una transacción que se desarrolla en tres etapas:

  1. Recibir el préstamo.

  2. Hacer algo con el préstamo.

  3. Devolver el préstamo.

Y todo esto ocurre en un flash.

Gracias a la magia del blockchain, la transacción es enviada a la red, los fondos te son prestados temporalmente. Puedes hacer con ellos lo que quieras siempre que los devuelvas a tiempo.

Si no lo haces, la red rechazará la transacción, lo que significa que el prestamista recupera sus fondos. De hecho, en lo que a la blockchain respecta, los fondos NUNCA salieron del control del prestamista.

Y esto explica por qué el prestamista puede prestarte el dinero sin que pongas ningún activo en garantía. El contrato de repago es ejecutado por el código mismo.

Un video con una explicación gráfica del funcionamiento de los flash loans.

Flash Loans para Arbitraje en Finanzas Descentralizadas

Una buena pregunta es para qué querríamos pedir un flash loan. Si todo ocurre en la misma transacción, no podemos usar los fondos para comprar algo, ¿cierto?

El objetivo no es usar los fondos para comprar algo sino para ejecutar alguna operación financiera. La idea es que colocaremos los fondos en un smart contract, obtendremos un beneficio, y devolveremos el préstamo al final de la transacción.

La aplicación más popular de los flash loans está en el arbitraje en protocolos de DeFi en los que tomamos ventaja de disparidades de precio a lo largo de diferentes sitios de trading.

Imagina que un token cotiza a 10$ en el Exchange Descentralizado A, pero a 10,50$ en el Exchange B. Suponiendo que no hubiese comisiones, comprar 10.000 tokens por 100.000$ en el Exchange A y venderlos por 105.000$ en el Exchange B generaría un beneficio de 5000$.

Si tomamos un flash loan (a través del protocolo Aave, por ejemplo), podríamos aprovechar oportunidades de arbitraje como esta en exchanges descentralizados. Así es como se vería la transacción:

  • Tomamos un préstamo de 100.000$.
  • Compramos tokens en el Exchange A.
  • Vendemos los tokens en el Exchange B.
  • Devolvemos el préstamo y el interés.
  • Nos quedamos con el beneficio.

Y todo en una transacción.

Ataques de Flash Loans

DeFi es una industria en fase experimental. Cuando hay tanto dinero en juego, es cuestión de tiempo hasta que se empiecen a descubrir vulnerabilidades.

En 2020, dos ataques de flash loans hicieron que los atacantes ganaran casi 1 millón de dólares.

El Primer Ataque

En el primer hackeo, el atacante pidió un préstamo en Ether en la plataforma de lending dYdX. Luego, dividió ese préstamo y envió los fondos a otras dos plataformas de lending: Compound y Fulcrum.

En Fulcrum (construida sobre el protocolo bZx), el hacker usó una parte del préstamo para shortear al ETH contra el wrapped Bitcoin (WBTC), lo que significaba que ahora Fulcrum tenía que comprar WBTC.

Esta información fue enviada a otro protocolo de DeFi, Kyber, que completó una orden en Uniswap. Pero como Uniswap tenía baja liquidez, el precio del WBTC subió significativamente, por lo que Fulcrum pagó de más por el WBTC que compró.

Al mismo tiempo, el atacante tomó un préstamo de WBTC en Compound utilizando la parte restante del préstamo de dYdX. Cuando el precio aumentó, el atacante vendió el WBTC que había pedido prestado en Uniswap con un gran beneficio.

Finalmente, devolvió el préstamo que había recibido en dYdX y se quedó con el ETH restante.

Puede parecer un trabajo duro, y hasta difícil de entender. En concreto, el atacante utilizó cinco protocolos diferentes de DeFi para manipular el mercado. Increíblemente, todo esto ocurrió en el tiempo que llevó al flash loan original ser confirmado.

La vulnerabilidad explotada estaba en el protocolo bZx utilizado por Fulcrum. A través de su manipulación del mercado, el atacante logró engañar a Fulcrum para que creyera que el WBTC valía más de lo que realmente valía.

El Segundo Ataque

Unos pocos días después, el protocolo bZx sufrió un segundo ataque. Esta vez, el hacker tomó un flash loan y convirtió parte de los fondos en la stablecoin sUSD. Esta moneda seguía el precio del dólar. Cuando el atacante puso una enorme orden de compra de sUSD, el precio se duplicó en Kyber.

bZx pensó que el sUSD valía $2 en lugar de $1. El atacante luego tomó un préstamo en ETH mucho más grande de lo que habría podido hacer normalmente en bZx gracias a que su moneda de $1 valía $2 en ese protocolo.

Finalmente, repagó el préstamo inicial y huyó con el resto.

¿Son Riesgosos los Flash Loans?

Estos ejemplos nos muestran cuán sofisticados pueden llegar a ser los ataques. Es sencillo mirar de manera retrospectiva a los métodos que utilizaron y decir: “bZx debió haber usado un oráculo de precio diferente para obtener su información”.

La realidad es que este tipo de ataques son increíblemente baratos. No requieren mucha inversión de la parte del atacante. No había ningún incentivo financiero que pudiera disuadirlo de intentarlo.

Tradicionalmente, grandes cantidades de cripto eran necesarias para manipular el mercado. Pero con los flash loans, cualquiera puede ser una ballena por unos instantes. En unos pocos segundos, podrías marcharte con cientos de miles de dólares en ETH.

El lado positivo es que el resto de los jugadores de la industria van a aprender de estos dos ataques. ¿Podría alguien más tener éxito en uno de estos ataques ahora que todos saben sobre ellos? Quizá.

Los oráculos tienen una serie de debilidades y necesitan mucho trabajo para que esas vulnerabilidades sean eliminadas.

Pero esto no es culpa de los flash loans. Las vulnerabilidades explotadas estaban en otros protocolos. Los flash loans sólo se utilizaron para financiar los ataques. Más allá de esta utilización maliciosa, los flash loans podrían tener casos de uso muy interesantes en el DeFi del futuro, ya que presentan bajo riesgo tanto para prestamistas como para prestatarios.

Conclusión

Los flash loans son una herramienta nueva en el espacio del DeFi pero ya generaron una fuerte impresión. El concepto de préstamos sin garantía, ejecutados sólo por código, abre un mundo de posibilidades para un nuevo sistema financiero.

Los casos de uso son limitados por el momento, pero los flash loans ya han sentado las bases para aplicaciones innovadoras en el campo de las finanzas descentralizadas.

Subscribe to Federico Ast
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.