Sandwich attack
Un sandwich attack è una forma di manipolazione del mercato durante il trading di criptovalute su un exchange decentralizzato. Un attaccante inserisce due proprie transazioni prima e dopo la tua, facendoti ottenere un prezzo peggiore.
Che cos’è un sandwich attack?
Un exchange decentralizzato, o DEX, è una piattaforma di trading senza un intermediario centrale. Qui le transazioni non ancora eseguite possono essere visibili nella mempool: una coda digitale su una blockchain.
Un bot può vedere in quella coda un grosso ordine di acquisto o di vendita. Il bot effettua per primo un’operazione nella stessa direzione e a volte paga una commissione sul gas più alta per ottenere la priorità. Poi viene eseguita la transazione della vittima. Infine, il bot effettua un’operazione nella direzione opposta.
Di conseguenza, il prezzo cambia poco prima della tua transazione. Subisci uno slippage maggiore: la differenza tra il prezzo che ti aspettavi e quello che ottieni alla fine.
Un esempio di sandwich attack
Vuoi acquistare una grande quantità di un token su una DEX. Un bot vede il tuo ordine prima che venga eseguito e acquista per primo quel token. Così il prezzo sale.
Poi il tuo ordine di acquisto viene eseguito a quel prezzo più alto. Il bot rivende i token che ha acquistato. Cerca di guadagnare dalla differenza di prezzo, mentre tu paghi più del previsto.
Perché un sandwich attack è importante nel mondo crypto?
I sandwich attack si verificano soprattutto nella DeFi e sulle DEX che determinano i prezzi usando pool di liquidità. Possono aumentare i costi effettivi di un’operazione, soprattutto nel caso di ordini grandi o pool con poca liquidità.
Nelle notizie sulle criptovalute, si può parlare di sandwich attack in articoli sui bot MEV, sulla DeFi o sui problemi legati all’esecuzione dei prezzi. Il MEV consiste nel ricavare valore aggiuntivo dall’ordine in cui vengono eseguite le transazioni. Un sandwich attack è una delle sue forme.
Questo non significa che ogni transazione su una DEX venga attaccata. Il rischio può ridursi impostando una slippage tolerance più bassa, facendo ordini più piccoli, usando pool con più liquidità o ricorrendo a un ordine limite, se disponibile. Una slippage tolerance molto bassa, però, può impedire l’esecuzione della transazione.