Double Spend

Doppia spesa

Difficoltà: base

Argomento: tecnologia


DEFINIZIONE

Un double spend si verifica quando qualcuno è in grado di spendere due volte gli stessi soldi, ingannando una o più parti facendole credere di essere state pagate.

Gli oggetti digitali come file e testo sono facili da duplicare. Tuttavia, la duplicazione non è una caratteristica desiderabile per il denaro. Questo è il problema della doppia spesa: come può un destinatario di denaro digitale essere sicuro che il denaro che gli è stato inviato non sia stato inviato contemporaneamente a qualcun altro? Come possono tutti i membri di un network monetario essere sicuri che gli altri non duplicano i loro soldi a piacimento?

Bitcoin risolve il problema della doppia spesa utilizzando un registro decentralizzato a cui tutti gli utenti possono accedere. Quando un utente invia bitcoin a un altro, distruggono la moneta che possiede e creano una nuova moneta di proprietà del destinatario. La distruzione della moneta del mittente viene registrata in modo che tutti possano vederla, in modo che non possano mai inviarla a qualcun altro.

Il double spend può verificarsi in alcune criptovalute quando vengono compromesse da malintenzionati, a volte inviando più pacchetti relativi a una transazione alla rete della valuta, ma poi annullano tali transazioni con l'intenzione di far sembrare che non siano mai avvenute.

Un double spend può essere il risultato di un race attack o di un attacco del 51%. Il mining di Bitcoin e della blockchain sono progettati per evitare che questo tipo di attacco possa essere portato a buon fine.

Un double spend tramite race attack è avvenuto ad un operatore di ATM Bitcoin in Canada nel settembre 2018. Quattro persone (molto probabilmente operanti come gruppo coordinato) hanno condotto 112 transazioni presso gli sportelli ATM di bitcoin e hanno ottenuto 195000 dollari canadesi in contanti. L'attacco è stato condotto in 7 città ed è durato 10 giorni: inviavano bitcoin o altre criptovalute all'ATM e ricevevano contanti. Se l'ATM supporta operazioni di prelievo a fronte di una transazione 0-conf, introduce il rischio di una double spend: dopo aver prelevato contanti dall'ATM, l'attaccante invia un'altra transazione alla rete con fee più elevate e inoltra i fondi al proprio indirizzo bitcoin. Se i miner sostituiscono la transazione iniziale con una nuova e la inseriscono nel blocco (e questo è un comportamento generalmente accettato dalla rete), l'attaccante ottiene effettivamente indietro i fondi di criptovaluta e riceve anche contanti dal bancomat.


aggiornato il 2021-10-21