Arbitraggio on-chain: cicli atomici, flash loan e l'asta che devi vincere
Esiste un comodo mito secondo cui l'arbitraggio on-chain è difficile perché la scoperta è difficile — che da qualche parte nel grafo dei prezzi c'è un ciclo nascosto che solo l'algoritmo più intelligente può vedere, e chi lo calcola più velocemente viene pagato. La verità è quasi l'opposto. Su una catena pubblica, il ciclo redditizio è visibile a tutti nello stesso istante, calcolato da decine di bot che eseguono codice quasi identico contro le stesse riserve. Il rilevamento è un problema risolto e standardizzato. Ciò che è difficile — ciò che decide effettivamente chi ottiene il denaro — è vincere l'ordinamento: far atterrare la tua transazione nello slot giusto del blocco giusto, prima di ogni altro ricercatore che ha trovato esattamente la stessa cosa. L'arbitraggio on-chain è facile da rilevare e difficile da vincere, e il divario tra questi due verbi è dove vive l'intera economia del settore.
Questo articolo prende il punto di vista del ricercatore. In Anatomia del MEV abbiamo mappato la foresta oscura dalla prospettiva della vittima e abbiamo promesso un seguito sull'estrazione benigna — l'arbitraggio e il backrunning che mantengono onesti i prezzi on-chain. In Liquidazioni on-chain abbiamo costruito un contratto di esecuzione di flash loan e un bundle di backrun dell'oracolo e abbiamo rimandato qui per il trattamento generale del primitivo. Questo pezzo salda entrambi i debiti. Si presume che tu sappia già cosa sono un mempool, un bundle e una priority fee; in caso contrario, leggi prima il pezzo sul MEV. Qui costruiamo la macchina dell'arbitraggista: la transazione atomica che non può perdere, il capitale preso in prestito che rimuove il vincolo di capitale, la ricerca nel grafo che è la metà facile, e l'asta che mangia quasi tutto il margine.
Atomicità: il trade che si annulla in caso di perdita
La proprietà distintiva dell'arbitraggio on-chain — ciò che lo rende categoricamente più sicuro di qualsiasi trade cross-venue che un trader CEX possa eseguire — è l'atomicità. Un arbitraggio multi-hop non è una sequenza di trade che si lanciano sperando che atterrino insieme. È una singola transazione che esegue ogni tappa del ciclo, e se il saldo finale non è strettamente maggiore del saldo iniziale, l'intera transazione si annulla: ogni cambiamento di stato viene annullato come se non fosse mai avvenuto, e si perde solo il gas per una transazione fallita.
Questo cambia completamente il profilo di rischio. Un trader CEX che acquista BTC su un exchange per venderlo su un altro detiene l'inventario nel frattempo — per secondi, minuti, per tutto il tempo che il trasferimento e il secondo riempimento richiedono — e subisce qualsiasi cosa faccia il prezzo durante quella finestra. L'arbitraggista on-chain detiene l'inventario per zero tempo in qualsiasi senso economicamente significativo: l'acquisto e la vendita sono la stessa operazione indivisibile. Non c'è rischio di prezzo a metà ciclo perché non c'è metà ciclo. O l'intero ciclo si chiude in modo redditizio in un unico passo atomico, o non avviene affatto.
La guardia che impone questo è un singolo confronto alla fine del percorso di esecuzione. Concettualmente, un contratto di arbitraggio atomico non fa altro che:
// The whole cycle runs inside one transaction. If the closing balance
// does not clear the opening balance (plus costs), the require() throws,
// and the EVM reverts every trade that came before it.
function executeCycle(bytes calldata path, uint256 minProfit) external {
uint256 start = IERC20(baseToken).balanceOf(address(this));
_hopA(path); // e.g. USDC -> WETH on Uniswap
_hopB(path); // e.g. WETH -> DAI on Sushiswap
_hopC(path); // e.g. DAI -> USDC on Curve
uint256 end = IERC20(baseToken).balanceOf(address(this));
require(end >= start + minProfit, "unprofitable"); // atomic safety net
}
Il require è l'intero modello di sicurezza. Una quotazione obsoleta, una transazione concorrente che ha spostato il pool uno slot prima della tua, una commissione inaspettata — qualsiasi cosa renda il ciclo non redditizio fa semplicemente scattare la guardia e annulla la transazione. Non vendi mai l'ultima tappa a un prezzo peggiore di quello che avevi modellato e non subisci la perdita; il trade che avrebbe perso denaro non viene eseguito. Questo è il motivo per cui l'arbitraggio è la parte benigna della tassonomia MEV dal pezzo MEV: non c'è una vittima il cui riempimento è degradato, e l'arbitraggista non porta alcun rischio di inventario direzionale. L'unico costo reale di un tentativo fallito è il gas — che, come vedremo, è esattamente il costo che l'asta competitiva è progettata per gonfiare.
I flash loan rimuovono il vincolo di capitale
L'atomicità consente qualcosa di più forte: l'arbitraggio senza capitale proprio. Un flash loan ti permette di prendere in prestito una quantità arbitraria da un pool di prestito con una sola condizione: lo rimborsi, più una commissione, prima che la transazione termini. Poiché il prestito, l'arbitraggio e il rimborso vivono tutti all'interno di un'unica transazione atomica, il pool non affronta alcun rischio di default: se non puoi rimborsare, l'intera transazione si annulla e il prestito non viene effettuato. Il prestatore è protetto dallo stesso annullamento che protegge te.
Il modello è un callback. Chiami la funzione di flash loan del pool; il pool ti invia i token e poi ti richiama; all'interno di quel callback esegui il ciclo e devi lasciare abbastanza per rimborsare:
// Called by the lending pool in the middle of the flash loan.
function receiveFlashLoan(address token, uint256 amount, uint256 fee, bytes calldata data)
external
{
// 1. buy the asset cheap on venue A with the borrowed `amount`
uint256 bought = _swap(VENUE_A, token, ASSET, amount, data);
// 2. sell it dear on venue B, back into the borrowed token
uint256 repaidIn = _swap(VENUE_B, ASSET, token, bought, data);
// 3. must be able to return principal + fee, or the whole tx reverts
require(repaidIn >= amount + fee, "arb cannot cover loan");
IERC20(token).transfer(msg.sender, amount + fee); // repay in-tx
// whatever remains — repaidIn - amount - fee — is profit, kept here
}
La commissione è piccola e dipende dalla sede: Aave v3 addebita 5 bps (0,05%) su un flash loan, Balancer storicamente addebitava 0 bps, e Uniswap v3 espone la stessa capacità tramite flash swap dove la commissione è solo la normale commissione di swap del pool. Cinque punti base sono un costo reale che deve essere coperto dal margine del ciclo, ma è insignificante rispetto all'alternativa di immobilizzare sei o sette cifre del proprio inventario per catturare una dislocazione che dura un blocco.
La conseguenza per la struttura del mercato merita di essere esposta chiaramente: i flash loan disaccoppiano il profitto da arbitraggio dal capitale. Il vincitore di una data opportunità non è il ricercatore con il bilancio più profondo — un bot con pochi dollari di gas può prendere in prestito dieci milioni di dollari per la durata di una transazione. Il capitale non è il fossato. Tutti possono prendere in prestito la stessa dimensione contro la stessa opportunità, ed è proprio per questo che la competizione si riduce all'unica cosa che non è standardizzata: ottenere l'ordinamento per primi.
Un ciclo cross-DEX elaborato
I numeri rendono la meccanica concreta. Prendiamo due pool WETH/USDC a prodotto costante con la commissione dello 0,30% (), e supponiamo che un grande acquisto abbia appena spinto il pool B al di sopra del pool A — il tipo di dislocazione che la prossima sezione mostra essere la fonte dei cicli. Usiamo riserve arrotondate e chiaramente illustrative:
- Pool A (economico): WETH, USDC prezzo USDC/WETH.
- Pool B (caro): WETH, USDC prezzo USDC/WETH.
Il ciclo è: flash-prendere in prestito USDC, comprare WETH a buon mercato su A, venderlo caro su B, rimborsare. Prendere in prestito USDC. Il salto 1 vende USDC nel pool A per WETH:
Il salto 2 vende quel WETH nel pool B per USDC:
Hai preso in prestito 100.000, ricevuto 100.723 e devi una commissione flash del 5 bps di 50 USDC. Netto: circa $673 di profitto lordo su un capitale iniziale pari a zero, prima del gas e prima dell'offerta prioritaria. Due cose da notare. Primo, i due salti muovono i pool l'uno verso l'altro — comprare su A aumenta il suo prezzo, vendere su B diminuisce il suo prezzo — quindi il profitto non è lineare in termini di dimensioni: spingi troppo e l'impatto sul prezzo mangia il divario, esattamente come nell'ottimizzazione del sandwich dal pezzo MEV. Il ricercatore esegue una ricerca unidimensionale su per trovare la dimensione del prestito che massimizza il profitto netto. Secondo, quel $673 è un numero deterministico che ogni bot concorrente calcola allo stesso valore dalle stesse riserve — che è l'intero problema, e l'oggetto della sezione sull'asta qui sotto.

Il rilevamento è la metà facile
Dato il mercato come un grafo — asset come nodi, coppie di trading come archi pesati — un ciclo di arbitraggio è un loop il cui prodotto dei tassi di cambio supera uno. Prendiamo il logaritmo di ogni tasso, lo neghiamo, e un ciclo redditizio diventa un ciclo a peso negativo; lo strumento classico per trovarne uno è Bellman-Ford, con SPFA e il più recente algoritmo RICH come varianti più veloci ottimizzate per i grafi piccoli e in rapido cambiamento che i mercati reali producono. L'intero toolkit — la trasformazione logaritmica, la condizione del ciclo negativo, le implementazioni Rust, i pesi degli archi aggiustati per le commissioni che uccidono la maggior parte dei cicli teorici — è l'argomento di algoritmi grafici per il rilevamento dell'arbitraggio, e non è necessario ripeterlo qui.
Ciò che conta per questo articolo è un singolo punto contabile: la commissione deve andare nel peso dell'arco, altrimenti il ciclo è un miraggio. Un loop a tre gambe paga tre commissioni di pool più, se hai preso in prestito, la commissione del flash loan, e il test del ciclo negativo deve vederle tutte:
from math import log
def cycle_log_gain(rates, pool_fee=0.003, loan_fee=0.0005):
"""Log-gain around a cycle. > 0 means gross profit before gas and priority bid.
`rates[i]` = units of the next asset per unit of the current one on hop i."""
gross = 1.0
for r in rates:
gross *= r * (1 - pool_fee) # each hop pays the venue's swap fee
gross *= (1 - loan_fee) # one flash-loan fee for the whole cycle
return log(gross) # still ignores gas and the auction bid
Ecco l'osservazione portante. Quella funzione è deterministica. Forniscile le attuali riserve on-chain — che ogni nodo detiene in modo identico, perché la catena è una macchina a stati condivisa e replicata — e ogni ricercatore calcola lo stesso cycle_log_gain allo stesso valore alla stessa altezza del blocco. Non c'è segnale privato, nessun set di dati proprietario, nessun vantaggio informativo. Quando un grande swap o un nuovo blocco rimescola le riserve, decine di bot che eseguono codice di rilevamento strutturalmente identico si accendono tutti sullo stesso ciclo entro millisecondi l'uno dall'altro. La ricerca restituisce la stessa risposta a tutti.
Una nota sulla topologia, perché essa modella quanto sia difficile la ricerca. I cicli più economici sono triangolari e intra-DEX — WETH → USDC → DAI → WETH interamente all'interno di una singola implementazione Uniswap: tre hop, tre commissioni di pool, nessuna coordinazione cross-venue. I cicli cross-DEX (comprare su Uniswap, vendere su Sushiswap) aggiungono venue ma lasciano la guardia atomica identica. Cicli più lunghi ed esotici concatenano ancora più hop — ma ogni hop extra moltiplica un altro fattore nel prodotto, quindi la condizione del ciclo negativo aggiustata per le commissioni uccide rapidamente i cicli lunghi. Questo è esattamente il motivo per cui i veri ricercatori limitano la lunghezza del ciclo a tre o cinque hop e potano aggressivamente; è la ricerca stratificata e a lunghezza limitata che l'algoritmo RICH del pezzo sugli algoritmi grafici è costruito per eseguire.
Quindi il rilevamento non ti fa vincere il trade; ti qualifica solo per competere per esso. Il test log(gross) > 0 ti dice che un'opportunità esiste — non dice nulla sul fatto che tu sarai l'indirizzo che la catturerà. Questo viene deciso un livello più in basso, nell'ordinamento, e l'ordinamento non è qualcosa che il tuo algoritmo calcola. È qualcosa per cui offri. Tutto ciò che è difficile nell'arbitraggio on-chain accade dopo che il ciclo è stato trovato.

Backrunning: la forma benigna di MEV
Da dove provengono questi cicli in primo luogo? In stragrande maggioranza, dalle transazioni di altre persone. Un grande swap su un pool Uniswap sposta il prezzo di quel pool lontano dal mercato più ampio; il pool è ora prezzato in modo errato rispetto a Binance, rispetto a un pool Curve, rispetto a Sushiswap; e l'atto di riallinearlo è un arbitraggio redditizio. Il ricercatore che fa questo posiziona la sua transazione immediatamente dopo lo swap che ha creato la dislocazione. Questo è il backrunning, ed è la forma dominante e benigna di MEV on-chain.
Ricordiamo la meccanica del prodotto costante dal pezzo MEV. Un pool detiene riserve con e prezzo spot . Qualcuno vende una grande quantità dell'asset base in esso; per l'invariante il pool paga
e il nuovo prezzo spot è più basso — il venditore lo ha spinto verso il basso. Se il prezzo di mercato esterno è ancora , il pool ora quota al di sotto di , e il backrun che massimizza il profitto acquista dal pool esattamente fino a quando il suo prezzo marginale non risale a — cioè, fino a quando le riserve non soddisfano di nuovo . L'arbitraggista cattura l'area tra la curva di esecuzione del pool e il prezzo esterno piatto — il valore che il grande swap ha lasciato sul tavolo spostando il pool.
Il fatto strutturale critico — quello che colloca il backrunning sul lato benigno del bilancio — è che un backrun puro non degrada l'esecuzione del target. Si esegue strettamente dopo lo swap della vittima. Nel momento in cui il backrun viene eseguito, il prezzo dello swapper è già bloccato; nulla di ciò che il backrunner fa può tornare indietro e peggiorarlo. Contrasta questo con il sandwich tossico dal pezzo MEV, dove un frontrun viene inserito prima della vittima proprio per peggiorare il suo riempimento in modo che il backrun possa raccogliere la dislocazione ingrandita. Stessa meccanica di backrun, moralità opposta: il sandwich produce il mispricing a spese della vittima; il backrun benigno si limita a ripulire un mispricing che la vittima avrebbe comunque creato. L'arbitraggista è il meccanismo attraverso il quale i prezzi on-chain seguono il mondo esterno — lo stesso ruolo che rende l'arbitraggio cross-venue una forza stabilizzatrice ovunque nella finanza.
Questo è anche il motivo per cui la moderna pila di protezione MEV cerca di preservare e ridistribuire i backrun sopprimendo i sandwich. MEV-Share di Flashbots e le aste di flusso di ordini consentono a un utente di esporre suggerimenti parziali sulla propria transazione, invitare i ricercatori a fare offerte per il diritto di backrunarla e rimborsare la maggior parte del profitto risultante all'utente che ha creato l'opportunità. Il backrun avviene comunque — il prezzo viene comunque riallineato — ma il valore torna alla transazione che lo ha generato invece di essere rubato da chiunque sia stato più veloce.
Da dove provengono i cicli
Quasi ogni ciclo redditizio è a valle di qualche altro evento on-chain che ha spostato un prezzo. Conoscere le fonti è la differenza tra interrogare l'intero grafo alla cieca e osservare la manciata di trigger che effettivamente creano gli archi:
- Grandi swap. La fonte canonica, elaborata sopra: qualsiasi trade abbastanza grande da spostare un pool fuori dal mercato più ampio apre un backrun per riallinearlo. Più grande è lo swap e più sottile è il pool, più grande è il ciclo.
- Aggiornamenti dell'oracolo. Ogni sede che prezza in base a un oracolo — mercati monetari, DEX perpetui — diventa arbitrabile nel momento in cui il feed si muove. Il backrun di aggiornamento dell'oracolo che guida le liquidazioni, analizzato nel pezzo sulle liquidazioni, è la stessa mossa applicata a un feed di prezzi invece che a uno swap: l'aggiornamento è il via, e il ricercatore atterra immediatamente dietro di esso.
- Liquidità nuova o rimossa. Un grande mint o burn di LP sposta la profondità di un pool e può lasciarlo momentaneamente fuori prezzo; la liquidità just-in-time (JIT) è la versione avversaria, che aggiunge profondità attorno a un singolo swap in sospeso e la ritira immediatamente dopo.
- Residuo di routing cross-pool. Un router che divide uno swap tra più pool raramente li lascia tutti esattamente allo stesso prezzo, e i piccoli squilibri che lascia sono cicli backrun-abili.
Il risultato pratico: un bot di arbitraggio è principalmente un ascoltatore di eventi, non un risolutore di grafi. Osserva questi trigger, ricalcola solo il sottografo che ognuno di essi tocca e spara un bundle — motivo per cui il design di aggiornamento incrementale del pezzo sugli algoritmi grafici è molto più importante della velocità di ricerca grezza sull'intero grafo.

L'asta si mangia il margine
Ora la parte scomoda. Hai trovato il ciclo. Anche tutti gli altri. L'opportunità è deterministica, atomica e senza capitale — il che significa che l'unica variabile rimasta è chi atterra nello slot vincente, e questo viene deciso da un'asta prioritaria.
Dalla migrazione alla separazione proponente-costruttore e a MEV-Boost (l'infrastruttura dettagliata nel prossimo Catena di approvvigionamento MEV: PBS e MEV-Boost), i ricercatori non combattono più guerre pubbliche per il gas nel mempool. Invece, inviano i bundle privatamente ai costruttori di blocchi, allegando un'offerta — sia come commissione di priorità elevata che come pagamento diretto al costruttore. Il costruttore assembla il blocco più prezioso che può e lo inoltra al proponente. Dal punto di vista del ricercatore, questa è un'asta a busta chiusa per il diritto di essere l'indirizzo che esegue un premio noto e deterministico.
Modelliamolo. Sia il profitto lordo da arbitraggio — i $673 dal ciclo elaborato sopra, per esempio — e sia il costo di ogni ricercatore (gas, commissione flash loan) . Per vincere lo slot, offri contro ogni altro ricercatore che ha calcolato lo stesso . Il tuo netto se vinci è
Vuoi il più basso possibile; vuoi anche vincere. Ma i tuoi concorrenti affrontano la stessa aritmetica contro lo stesso . In un'asta a busta chiusa su un premio di valore comune che tutti possono calcolare esattamente, l'offerta di equilibrio sale fino a consumare quasi l'intero surplus: , e il vincitore mantiene solo , il margine sottilissimo con cui ha superato il secondo classificato. Quei $673 non rimangono a chi ha trovato il ciclo; quasi tutto viene offerto direttamente al costruttore e, in ultima analisi, al proponente che ha venduto l'ordinamento. Questo non è un fallimento del mercato; è ciò che un'asta competitiva dovrebbe fare.
Il revert non è gratuito — economia del tasso di fallimento
C'è un secondo costo che il modello ingenuo omette, ed è quello che separa effettivamente gli operatori. Quando perdi l'asta, il tuo bundle semplicemente non atterra — non paghi nulla, che è il punto cruciale dell'invio di bundle rispetto alle vecchie guerre pubbliche per il gas. Ma quando vinci l'asta con un bundle la cui simulazione era obsoleta — le riserve si sono mosse tra la tua lettura e l'inclusione — la tua guardia require(end >= start + minProfit) si attiva e la transazione si annulla on-chain, e paghi il gas per l'annullamento. L'atomicità protegge il tuo capitale, non il tuo gas.
Quindi il valore atteso reale del ricercatore per opportunità è
dove è il gas bruciato su un bundle atterrato ma annullato. Spingere la tua offerta più in alto vince più slot ma vince anche più slot obsoleti, aumentando il termine di annullamento. Gli operatori che sopravvivono non sono quelli che trovano più cicli — tutti trovano gli stessi cicli — ma quelli con un inferiore (percorsi di esecuzione più economici e più stretti), una probabilità di annullamento inferiore (simulazione più fresca, migliore previsione di inclusione) e la disciplina di non fare offerte su opportunità marginali dove il costo di annullamento atteso supera il sottile surplus. Il vantaggio, per quanto tale, risiede interamente in questi costi di secondo ordine.
La forma empirica corrisponde al modello. Quando molti bot simulano la stessa opportunità on-chain con la stessa cifra di profitto, il bundle vincente di routine destina la stragrande maggioranza del profitto lordo al costruttore e al validatore — la stessa perdita di oltre il 90% che abbiamo misurato per le liquidazioni, per la stessa ragione: informazioni perfette su un premio comune più un'asta a busta chiusa equivalgono a margini ridotti al costo del perdente marginale. Il vantaggio del ricercatore non è la dimensione di , che tutti vedono. È qualsiasi vantaggio privato in (esecuzione più economica, routing migliore, tasso di fallimento inferiore) o nel vedere prima della folla.
Il che ti dice esattamente dove il profitto sopravvive ancora:
- Catene a coda lunga e mercati di costruttori immaturi. Su catene dove operano pochi ricercatori sofisticati e l'asta del costruttore è scarsa o assente, l'offerta rimane bassa perché non c'è nessuno che ti faccia salire l'offerta. Lo stesso ciclo che rende sulla mainnet di Ethereum può rendere la maggior parte di su una L2 tranquilla o una alt-L1. Il vantaggio è la concorrenza, non l'astuzia.
- Pool a bassa concorrenza e asset esotici. Le opportunità la cui uscita redditizia richiede di consumare liquidità DEX sottile e dipendente dal percorso sono difficili da simulare correttamente. Un ricercatore che modella l'intero viaggio di andata e ritorno — inclusa lo slippage in uscita su un token illiquido — cattura cicli che i bot ingenui o mancano o prezzano in modo errato in un revert. Qui il vantaggio è genuinamente la qualità dell'esecuzione, non la latenza.
- Arbitraggio CEX-DEX. La categoria più grande — e quella che rompe l'atomicità. Ottiene una sezione a sé stante, la prossima.
Il riassunto onesto del gioco atomico on-chain: è un modo superbo per imparare le interne dell'EVM, l'infrastruttura del costruttore e la teoria delle aste nel modo più difficile. È un modo brutale per guadagnarsi da vivere, perché ciò che stai vendendo — la capacità di trovare ed eseguire un ciclo deterministico — è esattamente ciò che i tuoi concorrenti stanno vendendo, e l'asta lo prezza al costo.

Arbitraggio CEX-DEX: la categoria più grande, e non è atomica
La più grande fonte singola di valore estraibile on-chain non è il ciclo atomico ordinato. È l'arbitraggio CEX-DEX: il prezzo di un asset su un exchange centralizzato diverge dal suo prezzo su un DEX, e un ricercatore scambia entrambi i lati per colmare il divario. Studi sull'arbitraggio non atomico — più direttamente Non-Atomic Arbitrage in Decentralized Finance (2024) di Heimbach, Pahari e Schertenleib — attribuiscono centinaia di milioni di dollari di valore estratto agli arbitraggisti cross-exchange in un arco di più anni, superando le categorie atomiche, puramente on-chain. Se vuoi capire dove si trova effettivamente il denaro nel MEV, è qui.
E viola la proprietà che rendeva tutto quanto sopra sicuro. Una gamba del trade vive su un exchange centralizzato; l'altra vive on-chain. La gamba on-chain è atomica — o atterra in un blocco o si annulla — ma la gamba CEX è un ordine separato su un motore di matching separato, che si regola secondo la propria tempistica. Le due gambe non possono essere avvolte in un unico revert. Non esiste un require(end >= start) che copra entrambi i luoghi. Il ricercatore esegue un backrun su uno swap su Uniswap per comprare WETH a buon mercato on-chain, e separatamente vende WETH su Binance per realizzare lo spread — e tra questi due eventi, il prezzo può muoversi. L'arbitraggio CEX-DEX comporta il rischio di inventario che l'arbitraggio atomico elimina.
Quel rischio cambia l'intera forma del business:
- Devi pre-posizionare l'inventario su entrambe le sedi. Non puoi fare un flash-loan per la gamba CEX. Per vendere WETH su Binance nell'istante in cui il tuo acquisto on-chain si conferma, devi già detenere WETH su Binance (e valuta di quotazione on-chain, e viceversa per l'altra direzione). Il capitale, che il flash loan aveva bandito dall'arbitraggio atomico, torna subito come un requisito stringente — inventario su più exchange, esposto.
- Devi coprire la gamba aperta. Tra il riempimento on-chain e il riempimento CEX sei direzionalmente lungo o corto sull'asset. Gli operatori CEX-DEX seri gestiscono questo come un libro continuamente gestito in delta: coprono l'esposizione su un future perpetuo, trattano il costo di finanziamento di quella copertura come un costo di fare affari e gestiscono la base tra spot e perp. Questo non è un problema nuovo — è esattamente il meccanismo dell'arbitraggio del tasso di finanziamento cross-exchange, dove l'intero gioco consiste nel detenere gambe compensative tra le sedi e finanziare la copertura attraverso il finanziamento. L'arbitraggio CEX-DEX è quella disciplina con una gamba ancorata a un blocco.
- Il vantaggio è in parte informativo e strutturale. Poiché il prezzo CEX precede il prezzo DEX (i libri ordini centralizzati si aggiornano continuamente; le quotazioni AMM si muovono solo quando qualcuno scambia), un ricercatore che legge il libro ordini CEX sa in quale direzione dovrebbe andare il prossimo backrun prima che il prezzo on-chain si allinei. E sempre più spesso, i costruttori stessi internalizzano questo flusso: un costruttore che gestisce anche un desk CEX-DEX può ordinare il blocco attorno ai propri scambi. Questo sfuma il confine tra ricercatore e costruttore ed è una delle forze centralizzanti nella catena di approvvigionamento MEV — le entità che vedono il maggior flusso di ordini e controllano il maggior ordinamento catturano anche il maggior arbitraggio non atomico.
Quindi il compromesso è esattamente invertito rispetto al caso atomico. L'arbitraggio atomico è sicuro (revert-on-loss, nessun inventario, nessun capitale) ma spietatamente competitivo (premio deterministico, l'asta si mangia il margine). L'arbitraggio CEX-DEX è pericoloso (rischio di inventario reale, capitale reale, una copertura da finanziare e gestire) ma molto più grande e meno perfettamente conteso, proprio perché il pericolo e il requisito di capitale tengono fuori i bot che possono eseguire solo il loop atomico senza rischi. Il rendimento extra è una compensazione per il rischio extra — che è il fatto più ordinario della finanza, che finalmente si riafferma su una catena che ha passato un'intera sezione a fingere che ci fossero soldi senza rischi sul tavolo.
Cosa portare via
Comprimiamo l'argomento ai suoi punti portanti:
- L'atomicità è l'intero modello di sicurezza. Un arbitraggio multi-hop è una transazione con una guardia
require(end >= start + minProfit); qualsiasi cosa lo renda non redditizio si annulla, quindi l'arbitraggista non detiene mai il rischio di inventario a metà ciclo e non vende mai l'ultima gamba in perdita. - I flash loan disaccoppiano il profitto dal capitale. Prendi in prestito, arbitra e rimborsa all'interno di una singola transazione atomica; il prestatore è protetto dallo stesso annullamento che protegge te. Il vincitore non è il ricercatore con più capitale — il capitale non è il fossato.
- Il rilevamento è la metà facile e standardizzata. La ricerca del ciclo negativo degli algoritmi grafici per l'arbitraggio è deterministica e identica per tutti; trovare il ciclo ti qualifica solo per competere per esso.
- Il backrunning è la forma benigna e dominante. Atterrare immediatamente dopo un grande swap o un aggiornamento dell'oracolo riallinea un pool con prezzi errati senza degradare il riempimento di nessuno — l'opposto del sandwich tossico, e ciò che MEV-Share cerca di ridistribuire piuttosto che sopprimere.
- L'asta si mangia quasi tutto il margine. In un'asta a busta chiusa del costruttore su un premio comune e calcolabile, le offerte convergono a e oltre il 90% si riversa al costruttore e al proponente. Il profitto sopravvive solo dove la concorrenza è scarsa: catene a coda lunga, pool illiquidi e le uscite più difficili da simulare.
- CEX-DEX è la categoria più grande e non è atomica. Una gamba su un CEX significa rischio di inventario reale, capitale reale e una copertura da finanziare — il playbook di finanziamento cross-exchange applicato con una gamba ancorata a un blocco, e una delle forze che spingono la catena di approvvigionamento MEV verso i costruttori che vedono il maggior flusso.
L'arbitraggio on-chain sembra, dall'esterno, un enigma sulla ricerca di cicli nascosti. Dall'interno è un'asta — e l'enigma è stato risolto per tutti nello stesso istante. Sapere dove si trova il ciclo non è mai stato il vantaggio. Vincere lo slot, o scambiare dove nessun altro sta offrendo, lo è sempre stato.
Riferimenti
- Daian, Goldfeder, Kell, Li, Zhao, Bentov, Breidenbach, Juels (2019), Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges. arXiv:1904.05234.
- Heimbach, Pahari, Schertenleib (2024), Non-Atomic Arbitrage in Decentralized Finance. arXiv:2401.01622 (IEEE S&P 2024).
- Robinson & Konstantopoulos (2020), Ethereum is a Dark Forest.
- Documentazione sui flash loan di Aave v3 e sui flash-swap di Balancer / Uniswap v3 (tabelle delle commissioni).
- Documentazione Flashbots: MEV-Boost, MEV-Share, aste di flusso di ordini (docs.flashbots.net).
Autori
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.