Tutti gli articoli
Guide

Cos'è un prestito flash su Solana e come funziona

Un prestito flash su Solana si ottiene senza collaterale e si restituisce nella stessa transazione. Come lo verificano i protocolli, costi e limiti.

9 min di lettura J Tools Editorial
Il prestito flash nel pannello esplicativo di Flash Volume: i 100 SOL presi in prestito vengono restituiti nella stessa transazione e il wallet resta a 2,41 SOL

Un prestito flash su Solana ti presta token senza collaterale e senza verifica del merito creditizio, a una sola condizione: i soldi tornano indietro prima che la transazione finisca. Se il rimborso manca o fallisce, la rete rifiuta l'intera transazione e il prestito non è mai esistito. Non resta mai niente in sospeso, ed è per questo che un protocollo di prestito può offrire un prestito flash a qualsiasi wallet.

Sembra una scappatoia. In realtà sono due regole ordinarie che lavorano insieme: una transazione riesce tutta o per niente, e un programma può leggere le altre istruzioni della transazione in cui gira. Tutto quello che fa un prestito flash su Solana, compresi i punti in cui si rompe, discende da questi due fatti.

Come funziona un prestito flash dentro una sola transazione

Solana esegue una transazione come una lista di istruzioni, in ordine. La documentazione di Solana sulle transazioni lo dice senza giri di parole: se un'istruzione fallisce, fallisce l'intera transazione e ogni modifica di stato viene annullata. Un prestito flash è una lista costruita attorno a questa regola.

  1. Prendere in prestito. Il programma di prestito sposta token dal suo vault al tuo account token.
  2. Usare. Le tue istruzioni li spendono: uno swap, una liquidazione, un deposito altrove.
  3. Restituire. Il programma di prestito si riprende lo stesso importo, più la sua commissione se ne applica una.

Se il terzo passo non può girare, per esempio perché uno swap ha reso meno del previsto, il primo passo viene annullato con tutto il resto e il vault torna esattamente al punto di partenza. Per lo stesso motivo non serve collaterale. Un prestito normale lo richiede perché tra il prestito e il rimborso passa del tempo. Qui non ne passa.

Pannello esplicativo di Flash Volume all'apertura della transazione: per primi vengono presi in prestito 100 SOL, il prezzo di J Token è piatto e il wallet ha 2,41 SOL

Come fa il prestatore a sapere che il rimborso arriverà

L'erogazione gira per prima, quindi deve decidere prima che il rimborso sia avvenuto. Legge in avanti: Solana espone ogni istruzione di primo livello della transazione in corso attraverso un account speciale, la sysvar delle istruzioni. La guida di Solana all'introspezione delle istruzioni indica proprio questo uso: controllare che una certa istruzione si trovi nella stessa transazione.

Kamino Lend pubblica il codice sorgente del suo programma, e lì il controllo si vede bene. Il suo flash borrow scorre ogni istruzione successiva alla propria e si rifiuta di prestare se non trova esattamente un rimborso corrispondente:

  • il rimborso indica lo stesso importo;
  • elenca gli stessi account, nello stesso ordine;
  • rimanda alla posizione dell'erogazione;
  • non segue un secondo flash borrow.

Come gli altri due prestatori più sotto, Kamino rifiuta un'erogazione chiamata dall'interno di un altro programma, perché la sysvar elenca solo le istruzioni di primo livello. marginfi inquadra il prestito in un altro modo: un'istruzione di inizio controlla che più avanti nella transazione ci sia un'istruzione di fine, e la fine esegue il controllo di salute dell'account.

I dettagli contano. In Kamino il rimborso porta la posizione dell'erogazione come numero. Se un wallet inserisce una propria istruzione di protezione prima dell'erogazione, il rimborso punta all'istruzione sbagliata e viene rifiutato. Il rimborso di Jupiter Lend non porta alcuna posizione, ed è uno dei motivi per cui lo strumento Volume flash prende in prestito lì.

Quali prestatori su Solana offrono prestiti flash

Tre protocolli di prestito documentano i prestiti flash su Solana nella propria documentazione per sviluppatori.

Prestatore Commissione del prestatore
Jupiter Lend Nessuna secondo la sua documentazione, anche se l'admin dispone di un'impostazione della commissione
Kamino Lend Fissata per riserva; una riserva può disattivare i prestiti flash
marginfi (documentazione ora sotto il nome Project 0) Nessuna secondo la sua documentazione

A cosa servono i prestiti flash

Ogni uso qui sotto richiede un importo grande per poche istruzioni, e dopo più niente.

  • Arbitraggio. Compri dove un token costa poco, vendi dove costa di più, restituisci. Se il divario si è chiuso, la vendita non copre il rimborso e la transazione viene annullata.
  • Liquidazioni. Il prestito ripaga il debito di un debitore in cattiva salute. Il collaterale ricevuto a sconto, riconvertito con uno swap, restituisce il prestito.
  • Scambio di collaterale e rifinanziamento. Ripaghi un prestito con token presi in prestito, ritiri il collaterale, lo scambi o lo sposti su un altro prestatore, prendi di nuovo in prestito, restituisci.
  • Autoliquidazione. Ridurre il debito con il proprio collaterale fa risparmiare il premio che si prenderebbe un liquidatore. Il flusso di Kamino per rimborsare con il collaterale fa proprio questo.
  • Looping. Prendi in prestito, scambi nell'asset di collaterale, depositi, prendi in prestito su quel deposito, restituisci. Multiply di Kamino funziona così.
  • Volume di trading. Compri un token e lo rivendi nello stesso pool; il wallet paga solo l'andata e ritorno.

Quest'ultimo caso è quello che fa lo strumento Volume flash. Prende SOL in prestito da Jupiter Lend, compra il tuo token in un pool su PumpSwap, Raydium, Orca o Meteora, lo rivende, restituisce il prestito e paga la propria commissione con una sola firma, mostrando il prezzo completo dell'operazione prima che si apra il wallet. Chi legge la transazione vede un'erogazione, un acquisto e una vendita da un solo wallet. Se vuoi tenere i token, usa invece uno swap di token instradato da Jupiter.

Quanto costa un prestito flash su Solana

Il capitale non è un costo: torna nella stessa transazione. Paghi tutto quello che gli sta attorno.

La commissione del prestatore. Jupiter Lend e marginfi documentano prestiti flash senza commissioni, mentre Kamino fissa una commissione per riserva. L'admin di Jupiter Lend può comunque cambiare l'impostazione della commissione. Per questo Volume flash la legge prima di ogni prestito e si rifiuta di costruire la transazione se non è a zero.

Commissioni di swap e impatto sul prezzo. Ogni swap dentro il prestito paga la commissione del suo pool, e un importo grande contro un pool sottile ti sposta il prezzo contro due volte, in entrata e in uscita. Il perché lo spiega la guida alla profondità di un pool di liquidità. Imposta un output minimo su ogni swap, perché un rimborso che resta corto fa saltare tutto; la guida su come impostare lo slippage su Solana spiega il compromesso.

Commissioni di rete. La commissione base è di 5.000 lamport per firma, più una priority fee calcolata su ogni unità di calcolo richiesta, e un prestito flash chiede molto più calcolo di un trasferimento. Quanto pagare di priority fee spiega come dimensionarla.

Un prestito fallito costa poco, ma non è gratis: una transazione inclusa in un blocco e poi annullata paga comunque la sua commissione di rete, come dicono sia la documentazione di Solana sia la guida di Jupiter ai prestiti flash. Una transazione che fallisce in simulazione e non viene mai inviata non costa nulla.

Pannello esplicativo di Flash Volume prima di ogni azione: un wallet con 2,41 SOL, il pulsante per comprare e rivendere 100 SOL e una linea di prezzo di J Token piatta

Simula prima di firmare. Un prestito flash che fallirebbe si presenta come una simulazione fallita, e a quel punto non ti è costato niente.

Limiti: dimensione della transazione, calcolo e cosa tiene il prestatore

Un prestito flash non può superare una transazione. Le transazioni v0 che usano questi prestiti contengono al massimo 1.232 byte e 1.400.000 unità di calcolo. Erogazione, rimborso, swap e i loro account devono starci tutti, ed è per questo che chi sviluppa si appoggia alle address lookup table.

Non può nemmeno estendersi su due transazioni. La sysvar elenca solo la transazione in corso, quindi un rimborso in una seconda transazione resta invisibile all'erogazione, anche dentro un unico bundle Jito. Cosa garantisce davvero un bundle Jito è un'altra questione.

Poi c'è quello che tiene il prestatore. Un prestito attinge al suo vault, alcuni prestatori aggiungono un tetto per singolo prestito e l'erogazione si può mettere in pausa. La dimensione massima è quindi una lettura del momento, non una costante. Kamino e marginfi permettono inoltre un solo prestito flash per transazione.

Rischi: avvisi del wallet e attacchi all'oracolo

Aspettati un avviso del wallet. Phantom avverte quando non riesce a simulare una transazione in modo pulito, e tra le cause cita una dimensione vicina al limite e le transazioni che falliscono. Un prestito flash è grande e chiama insieme un prestatore e un DEX. Quando un prezzo si è mosso troppo, la sua simulazione fallisce: è il wallet che ti dice che il prestito non verrebbe restituito.

Ogni prestito flash è anche pubblico. Chiunque può aprire la transazione in un explorer, e l'analisi in blocco di Wallet Scope mostra i trade e il PnL dei wallet che ci stanno dietro.

La storia più cupa appartiene ad altri protocolli. Un attacco con prestito flash piega un prezzo dentro una sola transazione: l'importo preso in prestito spinge un pool sottile, e un protocollo che legge quel pool come fonte di prezzo agisce su un numero distorto. La documentazione di Kamino indica i prezzi ponderati nel tempo e le bande di prezzo come difesa. I tuoi output minimi limitano anche gli attacchi sandwich attorno a uno swap grande.

Prestito flash, prestito normale o margine

Prestito flash Prestito con collaterale Margine
Collaterale Nessuno Di valore superiore al prestito Il tuo deposito più la posizione
Durata Una transazione Finché non restituisci Finché l'account resta in salute
Se non ripaghi La transazione viene annullata Il collaterale viene liquidato La posizione viene liquidata
Paghi Commissione del prestatore se c'è, commissioni di swap e di rete Interessi finché è aperto Interessi più commissioni di trading

I prestiti con collaterale e il margine portano un rischio nel tempo, perché i prezzi si muovono finché restano aperti. Un prestito flash su Solana non ha un «finché». Puoi perdere la commissione di una transazione annullata, più qualsiasi perdita di trading coperta dal tuo saldo.

Questo articolo spiega come funzionano i prestiti flash e non è una consulenza finanziaria, di investimento, legale o fiscale. Le operazioni dentro un prestito possono perdere denaro, e i prestatori possono cambiare le condizioni o sospendere i prestiti.

Domande frequenti sul prestito flash

Un prestito flash su Solana è gratis?

Il prestito in sé può esserlo: Jupiter Lend e marginfi documentano prestiti flash senza commissioni, mentre Kamino fissa una commissione per riserva. Paghi comunque le commissioni di swap, la commissione di rete e l'eventuale commissione dello strumento che usi.

Servono un collaterale o una verifica del merito creditizio?

No. Il rimborso deve solo trovarsi nella stessa transazione e andare a buon fine. Il tuo wallet ha comunque bisogno di SOL per la commissione di rete e per qualsiasi ammanco lasciato dai trade.

Cosa succede se il prestito non può essere restituito?

L'intera transazione viene rifiutata e ogni modifica al suo interno viene annullata, erogazione compresa. Una transazione inclusa in un blocco paga comunque la commissione di rete. Una che è fallita in simulazione e non è mai stata inviata non paga nulla.

Un prestito flash può coprire due transazioni o un bundle Jito?

No. Il prestatore trova il rimborso tramite la sysvar delle istruzioni, che elenca solo la transazione in corso. Un rimborso altrove non conta, neanche nello stesso bundle.

Perché i prestiti flash compaiono nei resoconti degli attacchi?

Permettono a chiunque di disporre di un importo grande per la durata di una transazione. Gli attacchi hanno colpito protocolli che si fidavano del prezzo spot di un pool sottile, che l'importo preso in prestito poteva muovere. I prezzi mediati nel tempo rendono tutto questo molto più difficile.

J
Autore
J Tools Editorial

Un articolo del team di J Tools.

Vedi tutti gli articoli di J Tools Editorial →

Articoli correlati