Double spending: il 51% attack

Il 51% attack è un possibile attacco alla rete bitcoin (e a tutte le blockchain) che consente di riscrivere la storia delle transazioni.

E’ un attacco molto costoso e praticamente impraticabile ma possibile dal punto di vista teorico.

Non ha molto senso farlo perché l’attacco riuscirebbe una volta sola, dopo di che il prezzo del bitcoin andrebbe verso lo zero a causa della mancanza di fiducia in una rete insicura.

La regola delle blockchain è che quando ci sono due versioni della blockchain in competizione i nodi scelgono quella che ha accumulato più POW, ma si può semplificare il concetto dicendo che i nodi scelgono la catena più lunga.

Vediamo come si configura l’attacco con un esempio ipotetico: tu sei un riventidore e vendi a me una ferrari, io ho il 51% del hash power.

Posso seguire i seguenti passaggi per fregarti:

  1. comprare la ferrari
  2. pagarti
  3. aspettare che il pagamento sia stato scritto sulla blockchain
  4. prendere la Ferrari e lasciare il negozio come legittimo proprietario
  5. usare tutta la mia potenza di calcolo per riscrivere la blockchain e fare in modo che il pagamento non sia mai avvenuto.

A questo punto posso entrare in un negozio di Lamborghini e spendere gli stessi bitcoin per comprare anche una Lambo.

Ma vediamo più in dettaglio il punto 5, in pratica dovrei iniziare a minare a partire dal blocco precedente a quello in cui è stato scritto il mio pagamento. Così si creeranno due versioni della blockchain in competizione tra loro, quella in cui è stato scritto il mio pagamento e quella che sto minando io in cui mi guardo bene dal scrivere quella transazione, siccome ho più potenza di calcolo rispetto a chi sta minando seguendo la chain originale prima o poi la blockchain che sto minando diventerà più lunga di quella che tutti stanno considerando come valida, in quel momento tutti riconosceranno come valida la mia blockchain e la preferiranno a quella originale. Se invece non avessi a disposizione più del 50% dell’hash power la mia chain alternativa resterebbe sempre più corta e l’attacco non andrebbe in porto. Ogni tanto succede che la blockchain venga riscritta e un blocco che era stato minato venga eliminato, ma questo succede perché due minatori diversi trovano un blocco valido quasi in contemporanea e quindi per un periodo di tempo molto limitato esistono due versioni concorrenti della blockchain.

Per questo motivo si dice che bisogna aspettare due/tre conferme per essere sicuri dei pagamenti.

Il costo dell’attacco dipende da quanti blocchi si vogliono riscrivere, quindi più blocchi sono stati aggiunti dopo quello in cui la transazione è stata registrata, più si può essere sicuri della sua validità.

 

Lascia un commento