¿Qué son los Flash Loans y cómo funcionan?

flash loans

El mundo DeFi ha crecido rápidamente desde 2018. Soluciones como Maker DAO abrieron un espectro de posibilidades al poder prestar y tomar prestado dinero vía DAI (una stablecoin pegada al USD) en las famosas -y ya antiguas- CDPs (Posiciones de Deuda Colateralizadas): si tengo ETH (o BAT) y quiero comprarme un coche, por ejemplo, puedo dejar el ETH colateralizado en un smart contract y tomar prestado hasta el 66% de dicha cantidad en DAI, sin análisis de riesgo, avales personales ni condiciones similares.

¿Qué son los Flash Loans?

Los Flash Loan, son préstamos rápidos que plataformas como AAVE y ahora parece que lo van a implementar en Uniswap, nos permiten sacar un préstamo sin garantía con la obligación de devolverlo en la misma transacción si queremos que todo se ejecute. En caso de no poder devolver el Flash Loan en la misma transacción, todo lo anterior queda invalidado.

Aave es un protocolo de lending para poder ejecutar flash loans (entre otras cosas). Un flash loan tiene varias características que lo hacen único:

  • Es instantáneo, es decir, forma parte de una única transacción: tú lo pides y lo devuelves en la misma transacción. La «magia» se basa en lo que puede hacer el smart contract por el camino: tu contrato puede interactuar y dar muchas vueltas aunque forme parte de la misma transacción, y obtener por ello un rendimiento económico.
  • No lleva colateral, ya que el principal se devuelve en el momento de solicitarlo (en la misma transacción), así como los intereses vinculados.

Como funcionan los Flash Loans?

El funcionamiento suele ser el siguiente:

  1. Pides un préstamo Flash en AAVE de X ETH.
  2. Creas una lógica de intercambios entre diferentes DEX, compras, ventas, intentando sacar un profit. (Aquí es donde se complica de verdad).
  3. Devuelves el préstamo.

Si consigues devolver el préstamo, la transacción funciona y genera tu profit.
Sino consigues devolverlo, todo lo anterior se revierte no pierdes nada de lo que has pedido.

que son los flash loansEs una forma fácil de jugar con liquidez sin tenerla, y no arriesgar nada. Es una fórmula muy discutida dentro de la comunidad de Ethereum pero se están encontrando muchos usos que merecen la pena.

Muchos de nosotros hemos dado el paso de meternos hasta el fondo del mundo DeFI gracias a la noticia de Febrero donde se hablaba como alguien había hackeado una plataforma de protocolo descentralizado llamada bZx consiguiendo un beneficio en una sola interacción de 1.193 ETH, lo que es lo mismo, unos 150.000 €. Cuatro días después, el mismo u otro atacante, consiguió sacar de la misma plataforma un saldo de 2.378 ETH, aproximadamente, 300.000€. ¿De verdad fue un hackeo? Realmente no, solo uso los mecanismos de los que disponía para encontrar un punto de fallo en una lógica muy bien pensada.

Los pasos fueron los siguientes:

  1. Se pide un Flash Loan de muchos miles de Ethers sin ninguna garantía.
  2. Cambias esos ethers buscando una combinación entre diferentes DEX y mercados para ir consiguiendo profit.
  3. En este caso, consigues comprar mucha cantidad de golpe de un ERC20 que simula una stablecoin y poder elevar su precio.
  4. Intercambias esa moneda en las casas de cambio aprovechando el disparatado precio y devuelve el préstamo.
  5. Todo en una única transacción en la red de Ethereum.

flash loans

Se supone, que después del primer ataque se resolvió el problema de seguridad y en el segundo ataque fue manipulando un oráculo, que ya sabemos que son una pieza fundamental para un smart contract. El smart contract se nutre de estos oráculos para obtener cualquier precio de cualquier coin o información y actuar, por lo que es un claro punto de posible fallo.

Para facilitar estos intercambios atómicos, llamados swaps, en los diferentes DEX, tenemos diferentes ERC20 creados para ello llamados wrapped, como wBTC o wETH… Y cada DEX tiene sus particularidades. El éxito de estos intercambios es que ocurren en la misma transacción dotando al sistema de Flash Loan de más sentido aún.

Comentarios
advertise width me