Come funziona il trucco
Un indirizzo crypto è lungo, e nessuno lo legge tutto. Un indirizzo Bitcoin arriva a circa quaranta caratteri, un indirizzo Ethereum a quarantadue, e l'abitudine universale è controllare i primi quattro o cinque e gli ultimi quattro o cinque e considerarlo una corrispondenza. I wallet e gli explorer incoraggiano questo mostrando gli indirizzi come 0x1a2b…9f8e. La truffa è costruita su quell'abbreviazione.
L'attaccante osserva la chain in cerca di un indirizzo che transaziona regolarmente con un altro, ad esempio il tuo wallet che invia a un exchange o a un indirizzo di deposito del casinò. Poi genera milioni di wallet finché uno non appare i cui primi e ultimi caratteri corrispondono alla destinazione reale; questo è economico, perché generare una coppia di chiavi costa quasi nulla e solo pochi caratteri devono allinearsi. Da quel falso inviano al tuo wallet un importo minuscolo, o un trasferimento di token a valore zero, che costa loro una commissione e nient'altro. Su alcune network un contratto di token registrerà felicemente un trasferimento di zero dal tuo indirizzo al loro, così la voce può anche apparire come qualcosa che tu hai inviato.
Ora la tua cronologia contiene due indirizzi che sembrano identici in ogni elenco che abbrevia. Quello genuino, dai tuoi trasferimenti reali, e il veleno, da un trasferimento che non hai mai notato. L'attaccante non fa nulla di più. Aspettano il giorno in cui hai fretta, apri la cronologia, trovi l'ultimo trasferimento all'exchange, copi l'indirizzo dalla riga che è il veleno, e invii.
I 1.155 bitcoin
Il caso che ha reso famosa la truffa è accaduto all'inizio di maggio 2024. Un wallet che deteneva bitcoin wrapped su Ethereum ha inviato un piccolo trasferimento di prova a un nuovo indirizzo, e pochi minuti dopo ha inviato 1.155 WBTC, vale circa settanta milioni di dollari all'epoca, a quello che il proprietario credeva fosse lo stesso indirizzo. Non lo era. La prova era andata alla vera destinazione; nel frattempo, un trasferimento avvelenato era apparso nella cronologia da un indirizzo che corrispondeva su entrambi i lati, e il trasferimento grande è stato copiato da quella riga.
Quello che seguì era inusuale. La vittima ha pubblicato un messaggio on-chain offrendo una ricompensa, gli analisti blockchain hanno tracciato i fondi mentre venivano scambiati e spostati, e circa dieci giorni dopo l'attaccante ha restituito quasi tutto in ether. Quel finale è l'eccezione. Nel caso ordinario il trasferimento è semplicemente sparito, perché una transazione blockchain non ha inversione, nessun chargeback e nessuna controparte che possa essere interpellata. Tether ha occasionalmente congelato stablecoin inviate a indirizzi di scam noti, che è una proprietà del contratto di quel singolo emittente e non della chain.
Il trasferimento di prova ha provato che l'indirizzo era corretto. Il trasferimento grande è stato copiato da una riga diversa. cosa è andato storto, in due frasi
La lezione non è che la vittima è stata negligente. Ha fatto la cosa consigliata, prima un piccolo test. La truffa ha sconfitto il test perché il test ha verificato una copia dell'indirizzo e il trasferimento reale ne ha utilizzata un'altra. Qualsiasi difesa che controlla l'indirizzo una volta e poi si fida degli appunti, della cronologia o dell'autocompletamento dopo ha lo stesso buco.
Da dove viene un indirizzo qui
Su questo sito l'indirizzo di deposito non è qualcosa che hai mai digitato, e non è qualcosa da trovare in una cronologia. Apri il wallet, scegli la moneta e la network, e la finestra di deposito chiede al servizio wallet l'indirizzo che appartiene al tuo account su quella network. Mostra la stringa completa, un pulsante di copia che scrive esattamente quella stringa negli appunti, e un codice QR che codifica la stessa stringa per un wallet su telefono. Se la moneta ha bisogno di un tag di destinazione o un memo, il tag è mostrato nel suo campo con il suo pulsante di copia, e l'indirizzo da solo non è sufficiente; l'articolo sulla network spiega il perché.
ENGINE-VERIFIEDcomponent/common/popup/wallet/deposit.tsx: loadDepositAddr richiede l'indirizzo per la moneta e la network selezionate e memorizza address, tag e coinConfirmations dalla risposta (una risposta obsoleta viene scartata se la moneta o la network sono cambiate mentre si aspettava); copyAddr scrive depositAddr negli appunti con navigator.clipboard.writeText e mostra un toast; copyTag fa lo stesso per il tag; il codice QR è renderizzato dallo stesso valore depositAddr. L'indirizzo è recuperato, mai digitato o ricordato dalla cronologia.
Questo ti dà un'unica fonte di verità per l'estremità ricevente: la finestra che l'ha recuperato. L'estremità di invio è il tuo stesso wallet, e è lì che l'abitudine deve cambiare, perché il sito non può vedere cosa incolli lì.
Le regole
- Non copiare mai un indirizzo ricevente dalla cronologia delle transazioni. Non dalla tua, non da un explorer. Copialo dal luogo che l'ha emesso: la finestra di deposito qui, la schermata di ricezione del tuo wallet, l'indirizzo che la controparte ti ha inviato attraverso un canale di cui ti fidi.
- Controlla il mezzo, non solo le estremità. Gli indirizzi avvelenati sono costruiti per corrispondere ai primi e ultimi caratteri. Leggi un blocco di caratteri dal mezzo della stringa pure, o confronta l'intera cosa fianco a fianco.
- Usa una whitelist se il tuo wallet o exchange ne ha una. Un indirizzo salvato che è stato verificato una volta e può essere modificato solo con un ritardo sconfigge interamente il trucco degli appunti.
- Tratta trasferimenti inaspettati minuscoli o a valore zero come una bandiera, non un regalo. Sono il veleno che viene piantato. Non interagire con loro e non copiare nulla da quelle righe.
- Invia un piccolo test, poi invia l'importo reale dalla stessa fonte dell'indirizzo, non dalla riga di cronologia del test. Il test prova l'indirizzo che hai copiato; non benedice quello che copi dopo.
- Ricorda cos'è una conferma. Una volta che il trasferimento è confermato, è definitivo, e nessun support desk su nessuno dei due lati può tirarlo indietro.
Questo articolo descrive un pattern di scam e il flusso di deposito del sito. Non è una garanzia: il sito può verificare l'indirizzo che ti mostra, non quello che incolla nel tuo wallet. Se hai inviato fondi a un indirizzo sbagliato, contatta il supporto con l'hash della transazione; il recupero è raramente possibile, ma il record aiuta.
FAQ
Cos'è l'address poisoning?
Una scam in cui un attaccante genera un indirizzo che corrisponde al tuo o a una destinazione frequente all'inizio e alla fine, poi invia un trasferimento di valore minuscolo o zero in modo che appaia nella tua cronologia. Se successivamente copi l'indirizzo da quella riga, i tuoi fondi vanno all'attaccante.
Come qualcuno ha perso 1.155 bitcoin?
A maggio 2024 un wallet ha inviato un piccolo test all'indirizzo corretto, poi ha copiato l'indirizzo per il trasferimento grande da una riga di cronologia avvelenata che corrispondeva a entrambe le estremità. I 1.155 WBTC sono andati all'attaccante; sono stati restituiti circa dieci giorni dopo una taglia e rintracciamento pubblico, il che è raro.
Un trasferimento sbagliato può essere annullato?
No. Una transazione blockchain confermata non ha annullamento. Un emittente di stablecoin a volte può congelare i token a un indirizzo scam noto, ma questa è una proprietà del contratto di un emittente, non della chain.
Da dove devo copiare l'indirizzo di deposito su questo sito?
Dalla finestra di deposito, che recupera l'indirizzo del tuo account, della moneta e della rete dal servizio wallet e mostra un pulsante di copia e un codice QR per quella stringa esatta. Se la moneta ha bisogno di un tag, copialo anche dal suo campo.
Qual è la difesa più semplice?
Una regola: non copiare mai un indirizzo di ricezione dalla cronologia delle transazioni. Copialo dal luogo che l'ha emesso, controlla i caratteri al centro così come alle estremità, e usa una whitelist dove esiste.
FONTI E RIFERIMENTI
- CoinDesk, maggio 2024 — rapporto sulla perdita di address poisoning di 1.155 WBTC e il successivo ritorno dei fondi
- Etherscan Knowledge Base — "Address poisoning" e avvisi di trasferimento di token a valore zero
- Betkyo client source: component/common/popup/wallet/deposit.tsx (address fetch, copy, tag and QR code)