• Non ci sono risultati.

Parte I: Strutture dati e Sistemi 16

6.   Sistemi 46

6.1.   Bitcoin 48

6.1.2.   Sicurezza del sistema 51

Una volta applicato l'algoritmo di hash si può verificare in ogni momento che non siano state effettuate modifiche successive alla conclusione della transazione: eventuali alterazioni o manomissioni del

file produrrebbero infatti un digest differente. Ogni operazione sui bitcoin viene completata dall'applicazione di una marca temporale, una

fine di verificare che le attività si siano svolte secondo l'ordine temporale dichiarato, evitando che il cedente possa procedere a una nuova transazione con unità che ha già trasferito in precedenza.

La sicurezza del sistema si basa sulla proof of work, un valore che, da un lato impedisce ai miner di produrre bitcoin indiscriminatamente consentendo loro di ottenerli solo come premio della loro attività efficace, dall'altro rende praticamente impossibile l’annullamento delle transazioni eseguite sui bitcoin: ogni blocco contiene infatti un hash che dipende dalla proof of work di tutti i blocchi precedenti, pertanto ogni

modifica apportata su di esso si rifletterebbe su tutti quelli successivi82

implicandone il ricalcolo. La proof of work contribuisce così in modo significativo al consolidamento del registro informatico: volendo modificare i dati di un blocco, si renderebbe necessario non solo il ricalcolo di tutti gli hash ma anche il ricalcolo di tutte le proof of work; questo attributo rende il sistema matematicamente resistente a ogni attacco che non possa disporre di almeno il 51% della potenza computazionale dell’intero network.

In questo senso il whitepaper di Nakamoto sottolinea che il trasferimento dei bitcoin si svolge in sicurezza se la maggioranza delle

CPU nella rete peer-to-peer è controllata da nodi onesti83; il sistema è,                                                                                                                          

82L'11 marzo 2013, a causa di un aggiornamento del software di mining che era stato

installato solo da una parte della comunità, si è verificato un problema denominato

blockchain fork per cui si è avuta una biforcazione della catena dei blocchi durata circa

6 ore; durante questo tempo, parte dei miner hanno aggiunto i blocchi estratti con la versione 0.8 del programma a una derivazione autonoma della blockchain mentre il resto di loro proseguiva la catena orignaria utilizzando la versione 0.7, senza riconoscere i nuovi blocchi: il problema è stato risolto con il downgrade generale del

software alla versione 0.7. Nelle sei ore in cui è stata operativa, la blockchain fork ha

causato un crollo del 24% del valore di cambio contro il dollaro, la perdita di 24 blocchi da 25 bitcoin minati con la versione 0.8 per il controvalore di $ 26.000 e il

double spending di $ 10.000 sul sito okpay.com. Anche nel caso del bug del 2010

l'applicazione della nuova versione del software aveva prodotto una biforcazione della

blockchain, rientrata in corso unitario con uno scarto di 53 blocchi da 50 unità ma a

quel tempo il valore e la diffusione dei bitcoin erano di portata talmente ridotta da consentire una gestione agevole delle conseguenze.

Vide http://bitcoinmagazine.com/3668/bitcoin-network-shaken-by-blockchain-fork/

83“By convention, the first transaction in a block is a special transaction that starts a new

infatti, immune dagli attacchi con tecniche di forza bruta in cui si provano in sequenza tutti i codici possibili poiché il calcolo della proof of

work è di per sé un procedimento a forza bruta e l’eventuale tentativo di

inversione dell’algoritmo SHA265 –unica alternativa all’attacco a forza bruta- richiederebbe secoli di lavoro anche al più potente dei

supercomputer oggi esistenti. La reversibilità delle transazioni in bitcoin

può essere efficientemente portata a termine solo dall'interno: un eventuale 51% attack consentirebbe a un gruppo di nodi collusi di prendere il sopravvento sul sistema compromettendone definitivamente

la stabilità84; ad oggi non vi è notizia di attacchi di questo genere e,

nonostante l'aumento di valore dei bitcoin possa rappresentare un incentivo al comportamento disonesto, l’attuale concentrazione dell’80%

dei nodi in quattro mining pool85 costituisce una spinta più che

efficiente al mantenimento della stabilità economica dello strumento. Infatti questi soggetti traggono il loro guadagno dalla stabilità del mercato e non hanno alcun incentivo a sovvertire la blockchain distruggendo la fiducia degli utenti e provocando un crollo delle quotazioni.

                                                                                                                                                                                                                                                                                                                                                                     

network, and provides a way to initially distribute coins into circulation, since there is no central authority to issue them. The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended. […]The incentive may help encourage nodes to stay honest. If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth”. Satoshi Nakamoto: Bitcoin A Peer-to-Peer Electronic Cash System, p. 4

http://bitcoin.org/bitcoin.pdf 2008.

84Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System,

https://bitcoin.org/bitcoin.pdf ,pag. 3 " If a majority of CPU power is controlled by

honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes."

85 Naveen Joshi, 3 things to know about Bitcoin Blockchain, 2017,

https://www.linkedin.com/pulse/3-things-know-bitcoin-blockchain-naveen- joshi?trk=v-

feed&lipi=urn%3Ali%3Apage%3Ad_flagship3_feed%3BSOk75Q3zYBSq8FXP8dtdSg%3 D%3D

6.1.3. Conservazione e