Todos los artículos
Guías

¿Qué es un préstamo flash en Solana y cómo funciona?

Un préstamo flash en Solana presta sin colateral y se devuelve en la misma transacción. Cómo lo comprueba el prestamista, qué cuesta y dónde se rompe.

10 min de lectura J Tools Editorial
El préstamo flash en el panel explicativo de Flash Volume: los 100 SOL prestados se devuelven en la misma transacción y la billetera sigue en 2,41 SOL

Un préstamo flash en Solana te presta tokens sin colateral y sin mirar tu historial crediticio, con una sola condición: el dinero vuelve antes de que termine la transacción. Si la devolución falta o falla, la red rechaza la transacción entera y el préstamo nunca existió. Nunca queda nada pendiente, y por eso un protocolo de préstamos puede ofrecérselo a cualquier billetera.

Suena a truco. Son dos reglas corrientes que trabajan juntas: una transacción se ejecuta entera o no se ejecuta, y un programa puede leer las demás instrucciones de la transacción en la que corre. Todo lo que hace un préstamo flash en Solana, incluidas las formas en que falla, sale de esos dos hechos.

Cómo funciona un préstamo flash dentro de una transacción

Solana ejecuta una transacción como una lista de instrucciones, en orden. La documentación de Solana sobre transacciones lo dice sin rodeos: si cualquier instrucción falla, falla la transacción entera y se revierte cada cambio de estado. Un préstamo flash es una lista construida alrededor de esa regla.

  1. Pedir prestado. El programa de préstamos mueve tokens de su bóveda a tu cuenta de token.
  2. Usar. Tus propias instrucciones los gastan: un swap, una liquidación, un depósito en otro protocolo.
  3. Devolver. El programa de préstamos recupera la misma cantidad, más su comisión si cobra alguna.

Si el paso tres no puede ejecutarse, por ejemplo porque un swap devolvió menos de lo previsto, el paso uno se deshace junto con todo lo demás y la bóveda termina igual que empezó. Por la misma razón no hace falta colateral: un préstamo corriente lo necesita porque pasa tiempo entre pedir y devolver, y aquí ese tiempo no existe.

Panel explicativo de Flash Volume al abrirse la transacción: primero se toman prestados 100 SOL, el precio de J Token sigue plano y la billetera tiene 2,41 SOL

Cómo sabe el prestamista que la devolución llegará

El préstamo se ejecuta primero, así que tiene que decidir antes de que ocurra la devolución. Para eso lee por adelantado: Solana expone cada instrucción de primer nivel de la transacción en curso a través de una cuenta especial, la sysvar de instrucciones, y la guía de Solana sobre introspección de instrucciones nombra justo este uso: comprobar que una instrucción concreta está en la misma transacción.

Kamino Lend publica el código fuente de su programa, y ahí se ve la comprobación. Su préstamo flash recorre cada instrucción posterior a la suya y se niega a prestar si no encuentra exactamente una devolución que encaje:

  • la devolución indica la misma cantidad;
  • enumera las mismas cuentas, en el mismo orden;
  • apunta a la posición del préstamo;
  • no le sigue un segundo préstamo flash.

Igual que los otros dos prestamistas de la tabla de abajo, Kamino rechaza un préstamo pedido desde dentro de otro programa, porque la sysvar solo enumera instrucciones de primer nivel. marginfi plantea el préstamo de otra forma: una instrucción de inicio comprueba que más adelante en la transacción hay una instrucción de cierre, y el cierre ejecuta la comprobación de salud de la cuenta.

Los detalles importan. La devolución de Kamino lleva la posición del préstamo como un número, así que una billetera que inserta su propia instrucción de protección antes del préstamo hace que la devolución apunte a la instrucción equivocada, y se rechaza. El reembolso de Jupiter Lend no lleva ninguna posición, y esa es una de las razones por las que la herramienta Volumen flash pide prestado allí.

Qué prestamistas de Solana ofrecen préstamos flash

Tres protocolos de préstamos documentan los préstamos flash de Solana en su propia documentación para desarrolladores.

Prestamista Comisión del prestamista
Jupiter Lend Ninguna según su documentación, aunque su administrador controla un ajuste de comisión
Kamino Lend Se fija por reserva; una reserva puede desactivar los préstamos flash
marginfi (su documentación está ahora bajo el nombre Project 0) Ninguna según su documentación

Para qué se usan los préstamos flash

Cada uno de estos trabajos necesita una cantidad grande durante unas pocas instrucciones y nada después.

  • Arbitraje. Compras donde un token está barato, vendes donde está caro y devuelves. Si la diferencia ya se cerró, la venta no cubre la devolución y la transacción se revierte.
  • Liquidaciones. El préstamo paga la deuda de un prestatario en mala salud; el colateral que se recibe con descuento se cambia de vuelta y con eso se devuelve el préstamo.
  • Cambios de colateral y refinanciación. Devuelves un préstamo con tokens prestados, retiras el colateral, lo cambias o lo llevas a otro prestamista, vuelves a pedir prestado y devuelves.
  • Autoliquidación. Reducir la deuda con tu propio colateral te ahorra la prima que se llevaría un liquidador. El flujo de Kamino para devolver con colateral hace justo esto.
  • Looping. Pides prestado, cambias al activo de colateral, lo depositas, pides prestado contra él y devuelves. Multiply de Kamino funciona así.
  • Volumen de trading. Compras un token y lo vendes de vuelta en el mismo pool; la billetera paga solo la ida y vuelta.

Ese último caso es lo que hace la herramienta Volumen flash: pide SOL prestado a Jupiter Lend, compra tu token en un pool de PumpSwap, Raydium, Orca o Meteora, lo vende de vuelta, devuelve el préstamo y paga su comisión con una sola firma, y enseña el precio completo de la operación antes de que se abra tu billetera. Quien lea la transacción ve un préstamo, una compra y una venta desde una billetera. Para quedarte con los tokens, usa en su lugar un swap de tokens enrutado por Jupiter.

Cuánto cuesta un préstamo flash en Solana

El principal no es un coste: vuelve dentro de la misma transacción. Pagas todo lo que lo rodea.

La comisión del prestamista. Jupiter Lend y marginfi documentan préstamos flash sin comisión, y Kamino fija una comisión por reserva. El administrador de Jupiter Lend todavía puede cambiar su ajuste de comisión, así que Volumen flash lo lee antes de cada préstamo y se niega a construir la transacción si no está en cero.

Comisiones de swap e impacto en el precio. Cada swap dentro del préstamo paga la comisión de su pool, y una cantidad grande contra un pool poco profundo mueve el precio en tu contra dos veces, a la entrada y a la salida, como muestra cómo funciona la profundidad de un pool de liquidez. Fija una salida mínima en cada swap, porque una devolución que se queda corta lo hunde todo; cómo elegir el valor de slippage explica el equilibrio.

Comisiones de red. La tarifa base es de 5 000 lamports por firma, más una comisión de prioridad que se cobra por cada unidad de cómputo que solicitas, y un préstamo flash pide mucho más cómputo que una transferencia. Cuánta comisión de prioridad pagar explica cómo ajustarla.

Un préstamo fallido es barato, no gratis: una transacción incluida en un bloque que se revierte paga igualmente su comisión de red, como dicen tanto la documentación de Solana como la guía de préstamos flash de Jupiter. Una que falla en la simulación y nunca se envía no cuesta nada.

Panel explicativo de Flash Volume antes de empezar: una billetera con 2,41 SOL, el botón para comprar y vender 100 SOL y una línea de precio de J Token plana

Simula antes de firmar. Un préstamo flash que fallaría aparece como una simulación fallida, y en ese punto todavía no te ha costado nada.

Límites: tamaño de la transacción, cómputo y lo que tiene el prestamista

Un préstamo flash no puede crecer más allá de una transacción: las transacciones v0 que usan estos préstamos llevan como máximo 1 232 bytes y 1 400 000 unidades de cómputo. El préstamo, la devolución, los swaps y sus cuentas tienen que caber, y por eso quienes los construyen se apoyan en las tablas de búsqueda de direcciones (address lookup tables).

Tampoco puede abarcar dos transacciones. La sysvar solo enumera la transacción en curso, así que una devolución en una segunda transacción es invisible para el préstamo, incluso dentro de un mismo bundle de Jito. Qué garantiza un bundle de Jito es otra cuestión.

Luego está lo que tiene el prestamista. Un préstamo tira de su bóveda, algunos prestamistas añaden un tope por préstamo y los préstamos se pueden pausar, así que el tamaño máximo es una lectura del momento, no una constante. Kamino y marginfi además permiten un solo préstamo flash por transacción.

Riesgos: avisos de la billetera y ataques al oráculo

Cuenta con un aviso de la billetera. Phantom avisa cuando no puede simular una transacción limpiamente, y entre las causas cita un tamaño cercano al límite y las transacciones que fallan. Un préstamo flash es grande y llama a la vez a un prestamista y a un DEX. Cuando un precio se ha movido demasiado, su simulación falla, y eso es la billetera diciéndote que el préstamo no se devolvería.

Además, todo préstamo flash es público. Cualquiera puede abrir la transacción en un explorador, y el análisis masivo de billeteras de Wallet Scope muestra las operaciones y el PnL de las billeteras que hay detrás.

La historia más oscura pertenece a otros protocolos. Un ataque con préstamo flash tuerce un precio dentro de una sola transacción: el tamaño prestado empuja un pool poco profundo, y un protocolo que lee ese pool como su fuente de precio actúa sobre la cifra distorsionada. La documentación de Kamino describe los precios ponderados en el tiempo y las bandas de precio como defensa. Tus propias salidas mínimas también limitan los ataques sándwich alrededor de un swap grande.

Préstamo flash frente a préstamo normal y margen

Préstamo flash Préstamo con colateral Margen
Colateral Ninguno Vale más que el préstamo Tu depósito más la posición
Duración Una transacción Hasta que devuelves Mientras la cuenta siga sana
Si no se paga La transacción se revierte Se liquida el colateral Se liquida la posición
Pagas Comisión del prestamista si la hay, comisiones de swap y de red Intereses mientras está abierto Intereses más comisiones de trading

Los préstamos con colateral y el margen acumulan riesgo con el tiempo, porque los precios se mueven mientras están abiertos. Un préstamo flash en Solana no tiene ese "mientras": puedes perder la comisión de una transacción revertida, más cualquier pérdida de trading que cubra tu propio saldo.

Este artículo explica cómo funcionan los préstamos flash y no es asesoramiento financiero, de inversión, legal ni fiscal. Las operaciones dentro de un préstamo pueden perder dinero, y los prestamistas pueden cambiar sus condiciones o pausar los préstamos.

Preguntas frecuentes sobre el préstamo flash

¿Es gratis un préstamo flash en Solana?

El préstamo en sí puede serlo: Jupiter Lend y marginfi documentan préstamos flash sin comisión, mientras que Kamino fija una comisión por reserva. Sigues pagando las comisiones de swap, la comisión de red y cualquier comisión de la herramienta que uses.

¿Necesito colateral o un estudio de crédito?

No. La devolución solo tiene que estar en la misma transacción y salir bien. Tu billetera sigue necesitando SOL para la comisión de red y para cualquier déficit que dejen las operaciones.

¿Qué pasa si el préstamo no se puede devolver?

Se rechaza la transacción entera y se deshace cada cambio que contenía, el préstamo incluido. Una transacción incluida en un bloque paga igualmente su comisión de red; una que falló en la simulación y nunca se envió no paga nada.

¿Puede un préstamo flash abarcar dos transacciones o un bundle de Jito?

No. El prestamista encuentra la devolución a través de la sysvar de instrucciones, que solo enumera la transacción en curso, así que una devolución en otro sitio no cuenta, ni siquiera dentro del mismo bundle.

¿Por qué aparecen los préstamos flash en los informes de exploits?

Porque permiten a cualquiera manejar una cantidad grande durante una transacción. Los exploits golpearon a protocolos que confiaban en el precio al contado de un pool poco profundo, uno que el tamaño prestado podía mover. Los precios promediados en el tiempo lo ponen mucho más difícil.

J
Autor
J Tools Editorial

Un artículo del equipo de J Tools.

Ver todos los artículos de J Tools Editorial →

Artículos relacionados