La doppia spesa è il rischio che una valuta digitale venga spesa due volte.
Chi la possiede potrebbe fare una copia del token digitale e inviarlo a un commerciante o altra parte, mantenendo l’originale.
Per fare ciò l’utente esegue, nello stesso momento, due transazioni differenti per acquistare i prodotti dai venditori.
Come impedire gli attacchi a doppia spesa
Le criptovalute operano con la tecnologia blockchain, la quale ha due modi essenziali per impedire questo tipo di attacchi a doppia spesa.
- viene eseguita una convalida e una registrazione di tutte le transizioni;
- l’autenticità di ogni operazione viene verificata attraverso l’utilizzo di uno strumento chiamato Proof of Work (PoW).
Ogni blocco aggiunto sulla blockchain è collegato tramite crittografia al blocco precedente.
Questo garantisce la sicurezza dei dati e, quindi, della rete stessa.
Inoltre, questo meccanismo consente di confermare le operazioni avvenute.
Maggiore è il numero di conferme, più sarà difficile duplicare o falsificare una transazione.
L’estensione della rete e la presenza di più utenti sono, infatti, la vera forza della blockchain.
È pertanto sempre consigliabile attendere il maggior numero di conferme dalla rete per considerare conclusa un’operazione.
Esistono vari tipi di attacchi a doppia spesa.
Race attack
Un hacker invia due transazioni in rapida successione per invalidare la prima (A) attraverso la seconda (B), che contiene informazioni sul trasferimento degli stessi fondi ad un wallet di sua proprietà.
Il double spending si realizzerebbe se A non venisse registrata sulla blockchain, ma sovrascritta da B, e il negozio accettasse A, senza che quest’ultima venga confermata.
Nel sistema Bitcoin tutte le transazioni, per essere validate e registrate sulla blockchain, devono avere il consenso di almeno il 51% del network di nodi validatori, che collaborano al mantenimento della blockchain stessa.
51% attack
l’attacco, che prevede che un hacker ottenga di almeno la metà “più uno” della potenza di calcolo del network (Hash Rate).
Impresa quasi impossibile, oltre che assolutamente non profittevole per costi di hardware ed energia da impiegare.
Finney attack
L’attaccante effettua una transazione in cui invia le sue monete a un indirizzo sotto il suo controllo. Dopo che questa azione è stata eseguita, inizia il mining di un blocco valido in cui è inclusa la transazione.
Quando riesce ad estrarre il blocco e ad includere la transazione, non lo trasmette alla rete. Invece,
Effettua, al contrario, un acquisto con la stessa quantità di monete che hai utilizzato nella prima transazione. Pertanto, cerca di pagare per qualche bene o servizio con la stessa quantità di denaro.
Dopo aver effettuato la transazione al commerciante e il commerciante l’ha accettata senza conferma, l’attaccante trasmette il blocco estratto alla rete.
Questa azione fa sì che la rete accetti il blocco come valido, invalidando la transazione effettuata al commerciante.
Non è semplice eseguire questo tipo di attacco
Un miner, soprattutto se piccolo, raramente viene scelto dal PoW, per il basso Hash Rate che può fornire.
Ed è probabile che in attesa il venditore accetti la transazione, un blocco valido venga trovato più rapidamente e, di conseguenza sia invalidata la transazione fraudolenta.
All venditore basta aspettare la conferma dal network di aver ricevuto le criptovalute, prima di svincolare il bene/servizio, e egistrare immutabilmente tale transazione in un blocco.
Inoltre se il miner facesse un attacco di questo tipo perderebbe la ricompensa del blocco su cui aveva priorità, in quanto non è stato in grado di trasmetterlo “in tempo” (in genere 10 minuti).
MARCO SCALAS