Una Breve Guida per Capire Cos’é il Double Spend in Bitcoin
Quello del double spend é uno dei concetti piu’ importanti per poter comprendere Bitcoin.
Bitcoin sta guadagnando rapida popolarità e adozione in tutto il mondo. Sta ridefinendo il modo in cui utilizziamo il denaro diventando la prima e unica valuta digitale completamente decentralizzata e globale.
Molti non sanno che anche prima di Bitcoin ci sono già stati tentativi di creare un sistema monetario digitale sostenibile. Ma tutti questi tentativi sono falliti perché un problema evidente con la moneta digitale è che le transazioni possono essere copiate e spese due volte.
Spieghiamo il concetto meglio…
Bitcoin è stato in grado di sopravvivere e prosperare perché risolve il problema del double spend o “doppia spesa”.
Che cos’é il double spend?
Doppia spesa significa spendere due volte gli stessi soldi.
Consideriamo questo esempio:
Vai al bar e ordini un cappuccino del valore di 3 euro. Paghi in contanti. Ora quei 3 euro in contanti sono nella cassa del bar. Ora non puoi spendere gli stessi 3 euro da qualche altra parte per effettuare un altro acquisto. Non appena paghi con i tuoi 3 euro, il fornitore di servizi (il bar) conferma che hai pagato e hai ricevuto il tuo caffè in cambio del denaro.
Ma Bitcoin è denaro digitale , non denaro fisico. Pertanto, le transazioni Bitcoin hanno la possibilità di essere copiate e ritrasmesse. Ciò apre la possibilità che lo stesso bitcoin possa essere speso due volte dal suo proprietario.
Come?
Nel nostro esempio del bar, hai pagato in contanti, quindi il pagamento è stato confermato e verificato immediatamente da un altro essere umano. Ma con la valuta digitale come bitcoin, se manca questo meccanismo di verifica, ciò può portare a una doppia spesa.
Chiunque può semplicemente copiare quel denaro digitale e pagarlo altrove.
Ed è qui che risiede l’incredibile innovazione introdotta nel whitepaper…
Bitcoin, pur essendo una valuta digitale, risolve il problema di essere copiato e di essere speso due volte.
Come Bitcoin gestisce questo problema
Bitcoin gestisce il problema del double spend implementando un meccanismo di conferma e mantenendo un registro universale (chiamato “ blockchain ”), simile al tradizionale sistema monetario in contanti.
La blockchain di Bitcoin mantiene un registro delle transazioni in ordine cronologico e con timestamp fin dall’inizio della sua attività nel 2009.
Ogni 10 minuti, un blocco (ovvero un gruppo di transazioni) viene aggiunto al registro. E tutti i nodi della rete Bitcoin conservano una copia di questo registro globale (la blockchain).
Vediamo come la rete Bitcoin previene la doppia spesa:
Supponiamo che tu abbia 1 BTC che provi a spendere due volte.
Hai effettuato la transazione da 1 BTC a un commerciante. Ora firmi nuovamente e invii lo stesso 1 BTC su un altro indirizzo Bitcoin per provare a ingannare un altro commerciante.
Entrambe le transazioni entrano nel pool di transazioni non confermate (mempool). Ma solo la tua prima transazione ha ricevuto conferme ed è stata verificata dai miner nel blocco successivo. La tua seconda transazione non ha potuto ottenere conferme sufficienti perché i miner l’hanno giudicata non valida, quindi è stata ritirata dalla rete.
Ma aspetta… cosa succederebbe se entrambe le transazioni venissero effettuate contemporaneamente dai miner?
Quando i miner estraggono simultaneamente le transazioni dal pool, qualunque transazione ottenga il numero massimo di conferme dalla rete verrà inclusa nella blockchain e l’altra verrà scartata.
Potresti dire che questo è ingiusto per il commerciante, poiché la transazione potrebbe non riuscire a ottenere conferme. Sì, questo può succedere!!!
Ecco perché si consiglia ai commercianti di attendere un minimo di 6 conferme.
Qui, “6 conferme” significa semplicemente che dopo che una transazione è stata aggiunta alla blockchain, sono stati aggiunti altri 6 blocchi contenenti diverse altre transazioni.
Le “conferme” non sono altro che più blocchi contenenti più transazioni che vengono aggiunti alla blockchain. Ogni transazione e blocco è matematicamente correlato a quello precedente.
Tutte queste conferme e transazioni hanno un timestamp sulla blockchain, rendendole irreversibili e impossibili da manomettere.
Quindi, se un commerciante riceve il numero minimo di conferme, può essere sicuro che non si sia trattato di una doppia spesa da parte del mittente.
Perché il commerciante può essere sicuro?
Perché per poter spendere due volte quella moneta, il mittente deve tornare indietro e invertire tutte le transazioni nei 6 blocchi che sono stati aggiunti dopo la transazione, il che è praticamente impossibile.
Come possono verificarsi attacchi double spend
- Attacco 51%
Se in qualche modo un utente malintenzionato riuscisse ad ottenere il 51% dell’hash power della rete, può verificarsi un caso di double spend. Per “hash power” si intende la potenza computazionale che verifica transazioni e blocchi.
Finora nessun attacco del genere è mai avvenuto perché il controllo del 51% della rete comporta costi estremamente elevati. Dipende dall’attuale difficoltà del mining, dal prezzo dell’hardware e dal costo dell’elettricità.
- Race attack
Quando un utente malintenzionato invia gli stessi fondi in rapida successione a due indirizzi diversi, il risultato ovvio è che solo uno di essi verrà incluso.
Ora, se tu come commerciante non aspetti le conferme del pagamento, allora in un caso come questo, c’è una probabilità del 50% che tu abbia ricevuto i fondi “double spend” (e non riceverai quei bitcoin).
Come commerciante, potresti ottenere prima le 6 conferme, ma se l’attancante riceve le conferme prima, non riceverai i tuoi fondi. Ecco perché si consiglia di attendere un minimo di 6 conferme.
Finora, negli 8 anni di storia del Bitcoin, nessun attacco del genere ha mai avuto successo. Il meccanismo Bitcoin di mantenere un registro universale delle transazioni basato sulle conferme finora rimane assolutamente solido.