Double-spending (doppia spesa)

Un attacco double-spending (doppia spesa) si verifica quando un utente riesce a spendere gli stessi fondi due volte. Il sistema Bitcoin è protetto contro un attacco double-spending perché ciascuna transazione che viene aggiunta alla blockchain, pertanto non è possibile che la maggior parte dei fondi contenuti nella transazione sia già stata spesa in precedenza.

Altri sistemi di numerazione bloccano gli attacchi double-spending con l’aiuto di un organo di controllo che segue precise norme per l’autorizzazione di ciascuna transazione. Nel caso del sistema Bitcoin, ci si trova dinanzi ad un sistema decentralizzato dove un gran numero di nodi che seguono norme comuni, è deputato alla verifica della transazione senza un centrale di controllo.

Il sistema Bitcoin è vulnerabile agli attacchi double-spending durante la fase iniziale in cui una transazione è presente all’interno della rete. Più verifiche relative ad una transazione ci sono, minori sono i rischi che venga usata per una frode.

Indice

Tipologie di attacchi

Attacco Race

Se la transazione non riceve conferme, i negozi e i servizi che accettano il pagamento possono essere esposti al cosiddetto “race attack”. Ad esempio, vengono create due transazioni dagli stessi fondi che poi vengono inviate a negozi/servizi differenti. In questo caso, solo uno dei due destinatari riceverà i fondi – una transazione proveniente da questo negozio apparirà prima all’interno della blockchain.

I negozi possono prendere numerose precauzioni per ridurre questo tipo di attacco, ma è sempre bene ricordare di evitare di accettare transazioni senza una conferma.

Attacco Finney

Si tratta di un’altra tipologia di attacco. Vengono colpiti quei negozi o servizi che accettano transazioni non confermate. “L’attacco di Finney” è un tipo di attacco che richiede il coinvolgimento di un esperto di che aggiunge al blocco transazioni ripetute. Non è possibile azzerare completamente il rischio di subire questo attacco a prescindere dalle misure preventive intraprese dai negozi o dai servizi, tuttavia richiede il verificarsi simultaneo di una serie di fattori. Può costare molti soldi e non va sottovalutato. Analogamente all’altra tipologia di attacco, anche in questo caso i negozi e i servizi devono rivalutare seriamente le proprie politiche relative alle transazioni non confermate.

Attacco Vector76

E’ anche noto come “attacco con conferma”. E’ un po’ la combinazione dei due attacchi menzionati in precedenza e fornisce al responsabile la possibilità di spendere la cifra due volte semplicemente con una conferma.

Brute Force Attack

Questo attacco può essere perpetrato anche quando il negozio o il servizio ha previsto più conferme della transazione. E’ necessario che chi lo mette in pratica sia in possesso di un hardware che garantisca alte prestazioni (frequenza di ).

Il responsabile invia una transazione al negozio per l’acquisto di un prodotto/servizio e allo stesso tempo continua la ricerca di una connessione all’interno della blockchain (fork) che riconosca la transazione. Dopo un certo numero di conferme, il negozio invia il prodotto. Se il responsabile è riuscito a trovate più di un certo numero di blocchi a questo punto, rompe la sua e riottiene i suoi soldi. Tuttavia se il responsabile non riesce nell’operazione, l’attacco non va a buon fine e i fondi sono inviati al negozio, come dovrebbe essere.

La riuscita dell’attacco dipende dalla rapidità (frequenza di ) di chi lo mette in pratica e dal numero di conferme previste dal negozio/servizio. Ad esempio, se il responsabile dell’attacco possiede il 10% della potenza di calcolo della rete Bitcoin e il negozio prevede un numero di 6 conferme perché la transazione vada a buon fine, la probabilità di successo dell’attacco sarà dello 0.1%.

Attacco >50%

Se chi mette in pratica un attacco del genere controlla più del 50% della potenza della rete Bitcoin, le probabilità di successo del suddetto attacco saranno del 100%. In virtù del fatto che il responsabile è in grado di generare blocchi ad una frequenza maggiore rispetto alla restante parte della rete, e può creare la propria blockchain fino a farla diventare più lunga della parte “integrale” della rete.

Vedere anche su BitcoinWiki