Sie sind auf Seite 1von 223

UNIVERSIT

DEGLI STUDI DI PISA

FACOLT DI SCIENZE MATEMATICHE, FISICHE E NATURALI


CORSO DI LAUREA MAGISTRALE IN INFORMATICA

MONETA DIGITALE: BITCOIN E BITCOIN, ANALISI E PROSPETTIVE



TESI DI LAUREA MAGISTRALE IN INFORMATICA


RELATORE:
PROF. CARLO TRAVERSO


CONTRORELATORE:
PROF. GIUSEPPE ATTARDI
CANDIDATO:

DAMIANO PIERMARTINI

SESSIONE 27 GIUGNO 2014

ANNO ACCADEMICO 2013-2014


2

MONETA DIGITALE:
BITCOIN E BITCOIN, ANALISI E PROSPETTIVE

Damiano Piermartini

27 giugno 2014

Riassunto Analitico


Scopo di questa tesi di comprendere e analizzare tutti gli aspetti di Bitcoin, per poter
formulare delle previsioni sul suo sviluppo nel breve futuro. Nella tesi verr analizzato il
concetto di valuta digitale, la sua storia e le idee che hanno portato alla sua nascita. Verranno
analizzati gli aspetti tecnici e le regole alla base del funzionamento del protocollo, con
particolare attenzione all'analisi del mining. Verr poi trattato il problema della sicurezza del
protocollo, analizzando i principali attacchi noti, con particolare attenzione alle tecniche di
mining fraudolento, distruzione dell'anonimato e tentativi di double spending. Gli attacchi
saranno particolarmente analizzati alla luce degli effetti possibili sullo sviluppo di Bitcoin.
Saranno analizzate le funzioni crittografiche alla base del protocollo e la loro sicurezza,
analizzando anche un possibile scenario futuro di crittoanalisi quantistica. Tratteremo altri
esempi di valuta digitale odierna, soffermandoci in particolare sulle nuove valute nate da
Bitcoin. Useremo poi le tecniche spiegate nella tesi per analizzare la comunit degli utenti di
bitcoin, mostrando unanalisi personale della rete realizzata dallautore. Una parte importante
della trattazione sar dedicata all'analisi del futuro di bitcoin. Cercheremo di comprendere
l'economia nella comunit attuale di bitcoin ed il suo sviluppo futuro. Analizzeremo la sua
storia e le normative attualmente in vigore. Considereremo il presente e futuro delle
commissioni e del mining di Bitcoin e analizzeremo la scalabilit del protocollo. Oltre ad
un'analisi conclusiva sulle prospettive future mostreremo una semplice modifica che
potrebbe aumentare il successo futuro di bitcoin.


Abstract

The aim of this thesis is to analyze and understand all of Bitcoin's aspects, in order to
forecast its development in the near future. Were going to analyze the concept of digital
currency, his history and the ideas behind its birth. In the thesis we're going to analyze
technical aspects and rules on the core of the protocol definition, with particular focus on
mining analysis. We're going to study the security issues of the protocol, analyzing the main
known attacks, especially focusing on fraudolent mining, deanonymizing and double spending
techniques. Well show the possible future effects of this attacks on the bitcoin phenomenon.
We're going to analyze the cryptographic functions at the core of the protocol and their
security, also studying them by a post quantum cryptography point of view. We're going to
show examples of others modern days digital currencies, focusing on new Bitcoin based
currencies. Were going to use the techniques we explained in the thesis to study the bitcoin
user community, showing the results of an analysis made by the author. An important part of
the thesis is going to be dedicated to the analysis of the future of bitcoin. We're going to study
the economy in the actual bitcoin community and it's predictable future. We're going to study
its history, recent regulations and scalability. We're going to analyze the present and future of
both mining and transaction's fees. After conclusive predictions about the foreseeable future
development, we're going to show a simple change to the actual protocol which could enhance
bitcoin's future success.

Indice

Introduzione 9

Capitolo 1 Storia e Filosofia 13

1.1 Valuta Digitale 13


1.1.1 Storia 13
1.1.2 Valute Digitali 15
1.1.3 Valute Virtuali 17
1.1.4 Moneta Elettronica 18
1.2 Libertarianismo 18
1.2.1 Cypherpunk 21
1.3 Storia 23
1.3.1 Le origini (2008-2010) 23
1.3.2 La crescita (2011-2012) 25
1.3.3 Il balzo di popolarit (2013-oggi) 28
1.3.4 Il mistero di Satoshi Nakamoto 35

Capitolo 2 Protocollo 39

2.1 Indirizzi 39
2.2 Transazioni 40
2.3 Mining 43
2.4 Biforcazioni 50
2.5 Verifica Semplificata SPV 56
2.6 Network 59

Capitolo 3 Crittografia 65

3.1 Firma Digitale 65


3.1.1 ECDSA 66
3.2 Hash Crittografiche 69
3.2.1 RIPEMD-160 70
3.2.2 SHA-256 70
3.3 Proof of Work 74
3.4 Post Quantum 75

Capitolo 4 Attacchi 81

4.1 - Mining fraudolento 81


4.1.1 50%+1 81
4.1.2 Selfish Mine 87
4.1.3 Information Witholding Attacks 101
4.1.4 Botnets 104
4.2 Double Spending 105
7

4.2.1 Pagamento Veloce 106


4.2.2 Finney Attack 109
4.3 Distruzione DellAnonimato 111
4.3.1 Deanonymizing 111
4.3.2 Contromisure 116
4.3.3 Tracciamento Dei Furti 120
4.4 Altri Attacchi 121
4.4.1 Portafoglio 122
4.4.2 Furti 126
4.4.3 DDoS 127
4.4.4 Sybil Attacks 130
4.4.5 Timejacking 131

Capitolo 5 Valute Alternative 135


5.1 Discendenti di Bitcoin 135
5.1.1 Litecoin 136
5.1.2 Peercoin 140
5.1.3 Namecoin 142
5.1.4 Primecoin 143
5.2 Ripple 144
5.2.1 Fondamentali del Protocollo 145
5.2.2 Valuta interna 146
5.2.3 Confronto con Bitcoin 147

Capitolo 6 Analisi del Grafo 148


6.1 Ron e Shamir 151
6.2 A Fistful of Bitcoins 154
6.3 Analisi dellautore 158


Capitolo 7 Prospettive Future 173


7.1 Economia 173
7.1.1 Tasso di cambio 175
7.1.2 Volatilit 178
7.1.3 Deflazione 179
7.1.4 Capitalizzazione 181
7.2 Scalabilit 184
7.3 Costo del mining 188
7.3.1 Costo del dollaro 189
7.3.2 Costo dei bitcoins 192
7.3.3 Confronto 194
7.4 Futuro delle commissioni 195
7.5 Normative 201
7.5.1 Unione Europea 202
8

7.5.2 Resto del mondo 203


7.6 Proposta dellautore 204

Conclusioni 209

Bibliografia 215

INTRODUZIONE

Nel 2008 uno pseudonimo Satoshi Nakamoto pubblic il manifesto di una nuova
moneta digitale chiamata Bitcoin con l'obbiettivo dichiarato di creare una nuova moneta
libera e sicura per tutti. Cinque anni dopo (fine 2013) un bitcoin valeva mille e duecento
dollari statunitensi. Lo scopo di questa tesi analizzare il fenomeno bitcoin. Per farlo saranno
necessari uno studio rigoroso delle caratteristiche tecniche alla base del protocollo, ed
un'analisi accurata del suo utilizzo nella societ. Saranno quindi approfonditi sia gli aspetti
tecnici che sociali. In genere utilizzato il termine Bitcoin per rappresentare l'insieme delle
regole tecniche che formano il protocollo, e bitcoin per indicare l'utilizzo pratico che ne
viene fatto nella societ (come anche la valuta stessa). Analizzeremo quindi nella tesi questo
dualismo Bitcoin-bitcoin.

Vediamo adesso i principi fondanti alla base di Bitcoin e interroghiamoci sulla loro
validit, anche se la risposta alle domande poste di seguito sar possibile solo nelle
conclusioni di questo lavoro, quando avremo un'approfondita conoscenza sia di Bitcoin che di
bitcoin.

Bitcoin decentralizzato. Non esiste unentit centrale che controlli e verifichi le


transazioni o che crei nuova moneta, la collettivit a farlo. Basandosi su una rete di pari
ognuno pu vigilare sulla correttezza delle transazioni di tutti gli altri utenti, ed ognuno pu
provare a generare nuove monete, guadagnandole come ricompensa. Le transazioni non
hanno bisogno di nessun intermediario, sono svolte direttamente tra gli utenti coinvolti e
sono verificate dall'intera rete. Chiunque pu autonomamente entrare nel sistema senza
nessun costo aggiuntivo e nessun obbligo, nessuno pu escludere un utente o congelare i suoi
10

fondi. Questo aspetto piace molto alla comunit libertaria, ed ha avuto molta presa anche su
utenti comuni delusi dalla crisi finanziaria globale.

Oggi Bitcoin realmente decentralizzato, ma davvero corretto pensare che nel tempo
si manterr libero ed indipendente, oppure lecito prevedere che nel futuro sar controllato e
gestito da un'unica entit centrale?

Bitcoin protegge la privacy degli utenti. Questo concetto spesso tradotto


erroneamente con la frase le transazioni in bitcoin sono anonime. Questa convinzione ha
portato l'opinione pubblica a vedere (e in alcuni casi usare) bitcoin come valuta ideale per
commerci illegali. Come spiegheremo in seguito le transazioni non danno di per s nessuna
informazione sugli utenti che vi partecipano ma il protocollo richiede, per funzionare,
l'esistenza di un database che ricordi tutte le transazioni avvenute. Questa enorme mole di
informazioni non potrebbe essere utilizzata per distruggere l'anonimato degli utenti?
possibile che Bitcoin anzich aumentare la privacy degli utenti la comprometta?

Bitcoin al sicuro dall'inflazione e le commissioni sono molto pi basse di qualsiasi


sistema di pagamento elettronico tradizionale. La generazione di moneta controllata per
aumentare sempre meno nel tempo fino a fermarsi del tutto. Questo genera un aumento di
valore della valuta (deflazione) anzich una sua diminuzione (inflazione). Poich la domanda
aumenta nel tempo pi della quantit di moneta questo porter ad una spirale deflazionista
che condanner Bitcoin?

Attualmente le commissioni sono in proporzione basse poich sono volontarie e


addirittura facoltative. Come spiegheremo in seguito per questo possibile poich la verifica
delle transazioni incentivata pi dal guadagno di nuove monete che dalle commissioni.
Quando queste nuove monete saranno guadagnate in quantit minime le commissioni
aumenteranno insostenibilmente per finanziare le costose operazioni di verifica?

Cercheremo quindi di capire se Bitcoin davvero la valuta di domani o se invece un


amaro, ed impoverito, risveglio attende i suoi pi entusiasti utilizzatori.

La tesi cos organizzata:


11

Nel primo capitolo chiariremo i concetti alla base di Bitcoin e delle valute digitali in
genere. Spiegheremo il concetto di valuta digitale e la sua storia, confrontandolo con
gli altri concetti con cui solitamente confuso. Analizzeremo poi la filosofia libertaria
che ha portato alla nascita delle valute digitali. Infine analizzeremo la storia di
Bitcoin dalla sua nascita fino ai giorni nostri.
Nel secondo capitolo analizzeremo il protocollo alla base di Bitcoin con particolare
attenzione a come avvengono le transazioni, come sono validate, cosa si intende per
mining, cosa la catena dei blocchi, come gestita la rete peer to peer sottostante e
come funziona nella pratica Bitcoin. Durante la dissertazione terremo sempre a
mente i principi crittografici che permettono al protocollo di funzionare.
Nel terzo capitolo analizzeremo le funzione crittografiche che garantiscono la
sicurezza del protocollo. In particolare tratteremo di firme crittografiche, hash
crittografiche e sistemi di proof-of-work. Analizzeremo inoltre il futuro di Bitcoin in
un ambiente post-quantistico, cio dopo l'entrata in funzione di computer quantistici
sufficientemente potenti. Studieremo in particolare gli effetti di un computer
quantistico sul protocollo e le contromisure necessarie a garantirne la sicurezza.
Nel quarto capitolo analizzeremo i principali attacchi di cui pu essere vittima
Bitcoin. Mantenendo il principio dell'inviolabilit delle funzioni crittografiche
utilizzate mostreremo come numerosi attacchi, con diverse motivazioni, siano
comunque possibili. Analizzeremo i nuovi tipi d'attacco specifici di Bitcoin, come i
tentativi di double-spending, e di distruzione dell'anonimato degli utenti.
Analizzeremo anche come i principali attacchi tradizionali possano danneggiare la
rete Bitcoin, tra i quali attacchi di tipo denial of service, sybil attacks e furti. Il
capitolo tratter approfonditamente del problema della presenza di miners
fraudolenti analizzando quali minacce comportino per il sistema1. Scopo del capitolo
sar di evidenziare i possibili danni prodotti da questi attacchi al futuro di bitcoin.
Nel quinto capitolo analizzeremo altri esempi di valuta digitale oggi disponibili.
Distingueremo in particolare tra valute digitali nate come estensioni o modifiche di
Bitcoin e valute completamente indipendenti.
Nel sesto capitolo tratteremo dellanalisi del grafo di bitcoin, ottenuta dalle tecniche

1 Secondo il modesto parere dell'autore questo tipo di attacco il pi pericoloso tra quelli noti sia perch mina
la credibilit dell'intero protocollo (distruggendo il principio di base dell'assenza di un'entit centralizzata)
sia perch sembra razionalmente inevitabile.
12

di distruzione dellanonimato discusse nei capitoli precedenti. Analizzeremo prima


due distinte analisi accademiche commentando i risultati ottenuti. Poi mostreremo i
risultati ottenuti da unanalisi personale dellautore.
Nel settimo capitolo analizzeremo gli sviluppi futuri del fenomeno sociale che
bitcoin con un occhio di riguardo alla sua economia. Studieremo le principali
propriet delleconomia bitcoin analizzando le cause, i possibili sviluppi e le
soluzioni dellandamento dei tassi di cambio, volatilit, capitalizzazione e deflazione.
Elaboreremo quindi delle previsioni sugli sviluppi futuri del mining e delle
commissioni e sulla loro sostenibilit. Studieremo anche la scalabilit del protocollo
per scoprire se potr diventare il pi diffuso mezzo di pagamento di questo secolo. Il
resoconto delle normative nelle varie giurisdizioni ci permetter di capire come il
fenomeno Bitcoin sar visto e gestito dalla giurisprudenza internazionale nel breve
futuro. Alla fine del capitolo presenteremo una semplice modifica al protocollo
suggerita dallautore, mostrando i vantaggi portati allaffermazione futura di bitcoin.

Infine nelle conclusioni useremo le informazioni ottenute nei capitoli precedenti per
dare risposta alle domande lasciate aperte in questa introduzione e per prevedere il
futuro di Bitcoin.


Capitolo 1 Storia e Filosofia

In questo capitolo analizzeremo le basi da cui nato Bitcoin. Spiegheremo quindi nel
primo capitolo cosa sia una valuta digitale, quali sono le differenze con altri tipi di valute e da
quali necessit della societ nata. Analizzeremo poi lideologia libertaria che alla base
dellidea di valute digitali in generale e di Bitcoin in particolare. Analizzeremo quindi la
corrente cypherpunk mostrando la sua importanza per la nascita del protocollo. Alla fine del
capitolo analizzeremo la storia dettagliata di Bitcoin dalla sua nascita fino ad oggi. Il capitolo
servir come base concettuale per comprendere le motivazioni delle regole alla base del
protocollo illustrate nei capitoli successivi.

1.1 Valuta Digitale

1.1.1 - Storia

Illustriamo una breve storia informale dell'evoluzione della valuta nella civilt umana.
In principi c'era il baratto, se avevo bisogno di un bene (una gallina) e avevo solo un bene
diverso (mele) potevo scambiare una parte dei miei beni con il bene desiderato (alcune delle
mie mele per una gallina). Ogni bene possedeva un valore associato relativo agli altri beni (ad
esempio una gallina poteva valere come una forma di pane e mezza o dieci mele). Il baratto
per presenta il problema che non tutti desiderano lo stesso bene, quindi se un individuo
vuole il pane ed ha solo mele ed un altro vuole le mele ed ha una gallina, il primo individuo
non accetter come pagamento di dieci mele la gallina anche se il valore corretto,
semplicemente perch non vuole la gallina. Per risolvere il problema, serve un bene
intermedio che tutti desiderino (o accettino), quindi il passo successivo fu di rendere esplicito
il valore relativo di ogni bene paragonandolo ad un bene fissato, come ad esempio una pecora
(il termine pecunia periva infatti da pecora). Ognuno accettava, ad esempio, che una
gallina valesse un decimo di una pecora o che una forma di pane valesse un quindicesimo di
una pecora. Le pecore per potevano morire o riprodursi, improvvise malattie portavano a
morie di pecore e quindi distruzione di capitali. Una pecora inoltre un bene indivisibile (da
viva), quindi non era possibile dividere una pecora in venti pezzi per comprare una mela.
C'era quindi bisogno di un bene che funzionasse da rappresentazione astratta del numero di
14

pecore possedute. Questo bene doveva risolvere i problemi dellutilizzo di pecore vive
durante gli scambi. Doveva quindi essere durevole, cio non doveva deteriorasi nel tempo,
doveva essere facilmente trasportabile, immagazzinabile e divisibile, doveva essere
sufficientemente raro e non falsificabile da impedire che chiunque potesse crearsi nuovi
capitali dal nulla. Si inizi dal sale (da cui il termine salario), conchiglie o pietre preziose, per
arrivare all'oro. L'oro era raro, bello da vedersi e poteva essere fuso in monete. Ogni moneta
serviva per rappresentare una quantit di valore standard, e recava incisa l'effige del
governante per garantire che la quantit d'oro (cio il peso) fosse corretta. Adesso chiunque
poteva stabilire il valore di un oggetto o servizio in base ad un numero di monete. La moneta
d'oro ha valore perch lindividuo accetta che rappresenta una percentuale di una pecora, e le
altre persone sono pronte ad accettare monete d'oro in cambio di oggetti (anche se di per s
l'oro non da loro nessun vantaggio rispetto ad esempio ad una mela, che pu invece essere
mangiata).

Si pass poi ad un'astrazione ulteriore. Un individuo pu depositare un certo numero


di monete d'oro in una banca e farsi rilasciare un pezzo di carta su cui scritto il numero di
monete che ha depositato. Quando avr bisogno dell'oro potr tornare in banca e riscattare le
monete in cambio del certificato. Il certificato potr quindi essere scambiato con altri
commercianti per il valore che indica, infatti chiunque ottenga il certificato pu riscattarlo in
banca, quindi come se stesse utilizzando l'oro che rappresenta. Questa astrazione merita
un'importante osservazione: il certificato non ha valore in s ma ha valore per quello che
rappresenta, cio non vale tanto quanto la carta e l'inchiostro di cui fatto, ma quanto il
valore che c' scritto. Fino ad allora, invece, una moneta d'oro valeva quello che era, cio
un'unit d'oro. Abbiamo quindi due livelli d'astrazione: un utente disposto a vendere un
bene per un controvalore in oro ed disposto ad accettare un pezzo di carta (senza valore
effettivo) al posto dell'oro. L'utilizzo dei certificati si trasform presto nell'uso di monete (non
d'oro) e banconote, questi certificati erano emessi dagli stati che dovevano garantire la loro
unicit e la possibilit di riscattare il loro valore in oro. L'oro quindi restava chiuso nelle
casseforti e circolavano solo certificati. Alla fine la quantit di certificati divent talmente alta
rispetto alla quantit d'oro che di fatto il cambio era diventato inutile e quindi venne abolito.
Oramai i certificati stessi hanno valore poich gli utenti sono disposti ad accettarli in cambio
di beni e servizi (come era successo per l'oro millenni prima). Il valore della valuta quindi
determinato dalla fiducia degli utenti nell'utilizzarla e non da una sua propriet intrinseca. Il
passo alla moneta digitale perci breve.
15

Se accettiamo una banconota come rappresentazione di un certo valore, possiamo fare


a meno dell'inchiostro e della carta (o cotone, o metallo) e considerare il valore in s. Ogni
utente ha un certo capitale che pu scambiare con gli altri utenti. La valuta digitale rende
esplicita la differenza tra valore della banconota e valore del mezzo, la banconota ha un valore
indipendente dal supporto che la rappresenta, quindi possiamo eliminare il supporto
ottenendo pura valuta che rappresenta valore. Nel caso delle valute tradizionali l'utente
accettava il valore di una valuta fidandosi del governo che la emetteva. Nel caso di una valuta
digitale, l'utente deve fidarsi del protocollo che regola la valuta (cio della crittografia e
matematica sottostante).

1.1.2 - Valute Digitali

Una moneta digitale per essere considerabile valuta deve possedere le tre propriet
di una valuta:

servire come mezzo di scambi

servire come unit di valore

servire come deposito di valore

Per funzionare come mezzo di scambi, una valuta deve mantenere le propriet che
portarono alla scelta delloro. Deve quindi essere:

Durevole: i bitcoins sono ricordati in un archivio distribuito2 salvato


digitalmente. Poich larchivio pu essere facilmente copiato ed distribuito
tra tantissimi utenti difficile che possa essere perduto. Finch esister almeno
una copia di questo archivio tutti i bitcoins sono garantiti, quindi possiamo
concludere che questa propriet sia rispettata. Laccesso ai propri bitcoins
possibile grazie ad una chiave privata che pu essere salvata (e copiata
indefinitivamente) su qualsiasi supporto digitale o analogico. Anche le chiavi
sono quindi durevoli.


2 Che vedremo essere chiamato catena dei blocchi.
16

Facilmente trasportabile e immagazzinabile (in senso digitale): essendo


informazioni digitali i bitcoins possono essere salvati e trasportati facilmente
come qualsiasi file digitale.

Non falsificabile: le funzioni crittografiche alla base del protocollo garantiscono


la sicurezza e non falsificabilit dei bitcoins.

Divisibile: Ogni bitcoin facilmente divisibile fino allottava cifra decimale.

Scarsa: la quantit di bitcoins in circolazione limitata matematicamente dal


protocollo (vedi sezione 2.3).

Una valuta digitale si differenzia dalle valute tradizionali per la sua nascita ed utilizzo
su supporti digitali. Questo vuol dire che lintera vita di questo tipo di valute si sviluppa
allinterno di computer e quindi le transazioni con queste valute devono rispettare propriet
aggiuntive, implicite nei mezzi di scambio tradizionali. Queste propriet sono la non
ripudiabilit, confidenzialit e prevenzione del double spending. Non ripudiabilit significa
garantire limpossibilit di negare una transazione passata, ed spesso garantita dallutilizzo
di firme digitali ed archivi (centrali o distribuiti) delle transazioni avvenute3. Confidenzialit
significa protezione della privacy degli utenti impegnati in una transazione ed solitamente
garantita dallutilizzo di funzioni crittografiche4. La prevenzione del double spending consiste
nellimpedire che un utente copi semplicemente dei fondi e li spenda pi di una volta5. Il
problema del double spending pu essere visto come lanalogo della falsificazione di
banconote nel mondo digitale. La soluzione a questo problema data dallutilizzo di un
archivio (centralizzato o distribuito) che tenga traccia del passaggio di proprietario dei fondi
utilizzati dalle transazioni.

A queste propriet aggiungiamo che la moneta dovrebbe essere distribuita, e quindi


indipendente da qualsiasi unit centrale. Osserviamo che dalla propriet di indipendenza da


3 I mezzi di scambio tradizionali come loro garantiscono questa propriet attraverso il metodo di scambio

basato sul passaggio di mano. Se un utente d ad un altro delloro, poi non pu negare di averglielo dato
poich loro in possesso del secondo utente.
4 Un mezzo di scambio tradizionale garantisce questa propriet non richiedendo di conoscere informazioni sugli

altri utenti per poter effettuare scambi con loro. possibile scambiare delloro con qualsiasi sconosciuto.
5 I mezzi di scambio tradizionali impediscono di spendere pi volte gli stessi fondi grazie alle regole della fisica

che impediscono la creazione dal nulla di copie di oggetti.


17

ununit centrale deriva che nuove monete devono essere anchesse generate in modo
distribuito, meccanismo che protegge la valuta da inflazione o deflazione arbitraria.

Storicamente il manifesto della valuta digitale considerato larticolo Blind signatures


for untraceable payments di David Chaum del 1982 [29]. Chaum infatti il primo a proporre
luso della crittografia per validare una moneta piuttosto che per proteggerla (come avveniva
gi da anni per le compagnie di transazioni elettroniche). Lobbiettivo principale di Chaum era
di creare del contante elettronico, cio delle banconote elettroniche che mantenessero le
stesse propriet del contante fisico, come la non tracciabilit, non replicabilit e impossibilit
di spenderlo due volte. Chaum fond la compagnia DigiCash nel 1990 per portare avanti il
progetto, ma la sua valuta aveva ancora il problema di basarsi su di unentit centrale ed il
progetto fall. Bitcoin ha comunque mantenuto alcuni aspetti del contante come lassenza
(possibile) di costi di transazione, lirreversibilit delle transazioni ed il metodo di pagamento
diretto, cio senza intermediari, tra utenti alla pari (dovuto alla rete peer to peer sottostante).
Bitcoin manca per del forte anonimato garantito dal contante, basando la privacy degli utenti
solamente su pseudonimi (vedi sezione 4.3).

1.1.3 - Valute Virtuali

Le valute digitali non devono essere confuse con le valute virtuali. Il termine valuta
virtuale utilizzato per indicare le valute utilizzate in economie virtuali, spesso derivanti da
giochi multi player on-line, tra cui lesempio pi famoso sono i Linden dollars di Second Life.
Alcune di queste valute possano essere acquistate e scambiate con valute tradizionali o
digitali, ma sono utilizzabili solo nel mondo virtuale del gioco in cui sono definite per
acquistare beni o servizi virtuali, non hanno effetto sulleconomia reale allesterno del gioco.
In senso lato possiamo considerare uneconomia virtuale allinterno di un gioco multiplayer
come uneconomia che, a differenza delleconomia reale, dipende da regole algoritmiche
piuttosto che fisiche. Per chiarire il concetto possiamo considerare lesempio di World of
Warcraft (WoW). Nel gioco possibile ottenere delloro, la cui distribuzione e generazione
controllata dal programma. Questo oro costituisce la valuta virtuale interna del gioco e pu
essere scambiato con commercianti o altri giocatori. La confusione nasce quando diventano
disponibili dei servizi, esterni allambiente di gioco, per acquistare oro di WoW in cambio di
valute tradizionali (come dollari USD). Leconomia virtuale infatti contamina leconomia reale
allesterno del gioco. noto di compagnie che pagavano i propri dipendenti per giocare a
18

WoW e raccogliere quanto pi oro possibile, che poi la compagnia rivendeva agli altri
giocatori. Questa tecnica, detta gold farming, non deve essere confusa con il mining di
Bitcoin. Nel farming lutente si limita a raccogliere le risorse generate dal programma, nel
mining lutente crea (e raccoglie) nuove risorse.

Come abbiamo gi spiegato gli individui possono utilizzare numerosi mezzi di scambio
per commerciare, ma questo non gli rende delle valute. Se ricordiamo le tre propriet indicate
in precedenza necessarie per una valuta ci accorgiamo dei limiti delle valute virtuali. In
particolare osserviamo come sia difficile che una valuta virtuale possa essere un buon
deposito di valore nel lungo periodo. Infatti il valore di una valuta virtuale strettamente
legato alla sua economia virtuale e quindi alla vita del gioco. Quando il gioco passa di moda o
viene rimpiazzato dal successore e gli utenti iniziano ad abbandonarlo, la sua economia
muore e cos crolla il valore della valuta virtuale associata. Anche se cos non fosse
labbondanza di valuta nel gioco porta ad uninflazione elevata. Loro perde valore facilmente
in un mondo virtuale dove trovato letteralmente per terra e ne viene continuamente creato
di nuovo dal programma del gioco.

1.1.4 - Moneta Elettronica

Osserviamo adesso una differenza importante tra valuta digitale e pagamenti


elettronici. Per pagamento elettronico o anche moneta elettronica, si intende un sistema per
scambiare virtualmente valute tradizionali. Se consideriamo ad esempio PayPal, questo
servizio permette di scambiare attraverso internet somme in dollari, euro o altre valute
tradizionali. La differenza tra moneta elettronica e moneta digitale che la moneta elettronica
solo un sistema di pagamento basato su valute tradizionali, la moneta digitale una nuova
valuta completamente indipendente dalle valute tradizionali, che pu anche avere associato
un proprio sistema di pagamento come nel caso di Bitcoin (attraverso le transazioni e la
catena). La parola moneta nel termine moneta elettronica quindi fuorviante, infatti
rappresenta la possibilit di scambiare monete elettronicamente e non una moneta in s.

1.2 - Libertarianismo

La nascita di Bitcoin affonda le sue radici nella filosofia del libertarianismo


19

(Libertarianism). Per libertarianismo6 si intende una forma di pensiero che riconosce nella
libert dellindividuo il bene pi grande. Esistono numerose branche di questa filosofia,
ognuna delle quali d una diversa definizione di libert individuale e individua la forma di
stato necessaria a proteggerla. Ponendo al centro della societ lindividuo si indebolisce lidea
di comunit e quindi vengono meno molti compiti dello stato. Lo stato, in generale, ha il solo
compito di garantire che le libert individuali siano rispettate. Nelle forme pi estreme di
libertarianismo lo stato addirittura del tutto assente e le sue funzioni di garanzia sono
ricoperte dai privati.

Applicando i principi di libert individuali alleconomia otteniamo uneconomia di


libero mercato libera e senza vincoli. I soli vincoli delleconomia devono essere il
riconoscimento della propriet privata e della validit dei contratti (visti come liberi accordi
volontari tra individui). Leconomia deve quindi essere libera da regole e controlli esterni,
autodeterminandosi secondo le sole regole di domanda ed offerta. Sar la cooperazione
spontanea degli individui, seguendo i propri interessi personali, ad alimentare il libero
mercato, portando alla prosperit generale. Questa idea di base, che vede una qualsiasi azione
forzata imposta ad un individuo come un attentato alla sua libert personale, porta il pensiero
libertario a bandire i concetti di tasse e stato sociale. Lobbligo di pagare le tasse ad uno
stato centrale visto come atto violento perpetrato ai danni dei singoli. Ugualmente il
concetto di stato sociale in contrasto con lideale di autodeterminismo individuale, e
quindi il welfare pu esistere solo come carit individuale volontaria. La disuguaglianza
sociale vista come necessaria e positiva conseguenza delle regole di mercato, che
rispecchiano la selezione naturale attraverso la libera concorrenza. Le leggi di mercato
premierebbero gli individui pi meritevoli, sostituendo i diritti politici (derivanti dalla
cittadinanza) con diritti economici (derivanti dal mercato). Lunico compito possibile dello
stato resta quindi quello di controllo del rispetto della libert individuale (economica e civile).
I compiti dello stato nella societ sono diversi a seconda della corrente di pensiero
considerato. Tutte le correnti condividono per lidea neoliberista che lo stato non deve
intervenire nelleconomia, se non per garantire il rispetto della propriet privata e dei

6 Nella seguente discussione considereremo il termine nella sua accezione statunitense. Negli Stati Uniti

dAmerica infatti il concetto si molto sviluppato, grazie allaffermazione del libero mercato capitalista e alle
idee di diritto naturale dellindividuo stabilite nella dichiarazione dindipendenza. Nella dichiarazione
infatti sancito il principio di base del libertarianismo: ogni individuo ha diritto alle proprie libert civili e lo
scopo del governo di garantire queste libert, quindi gli individui hanno il diritto di rovesciare uno stato
che non le garantisse.
20

contratti, n deve intervenire contro gli individui o gli alti stati (politica di non intervento
estero). Il ruolo estremo unicamente di controllore del libero mercato e delle libert
individuali lidea di stato minimalista proposta dalla corrente del miniarchismo (in cui lo
stato visto come inevitabile entit incaricata del monopolio della costrizione, cio lunica che
pu ledere le libert di un individuo per proteggere la libert di tutti). Ancora pi estreme
sono le posizione della corrente anarco-capitalista che ritiene invece che lo stato debba essere
abolito del tutto. Secondo questa corrente, le sole regole del libero mercato sarebbero
sufficienti a garantire la prosperit e libert degli individui. I ruoli di garanzia e controllo dello
stato sarebbero affidate a individui privati in competizione tra loro, e quindi selezionati dalle
regole di mercato.

Tra le violenze perpetrate da uno stato, dal punto di vista libertario, incluso lobbligo
dellutilizzo della moneta ufficiale. Le valute dovrebbero essere decise dalle sole regole del
mercato e mai imposte. Storicamente questa convinzione ha portato molti libertari a
desiderare un ritorno allutilizzo dei metalli preziosi, che non possono essere creati dal nulla
come le valute moderne e non sono monopoli statali. Bitcoin sembra quindi la valuta perfetta
per il sogno libertario. Bitcoin infatti non imposto o controllato dallo stato. Bitcoin una
moneta privata che trasmette il controllo da entit terze allindividuo (grazie al suo disegno
distribuito). In Bitcoin ogni utente banchiere di se stesso e, attraverso il mining, sono gli
individui a creare nuova moneta al posto dello stato. Bitcoin permette leconomia globale
libera da controlli centrali sognata dal libertarianismo. Ugualmente il meccanismo del
consenso utilizzato da Bitcoin segue lidea libertaria di assenza di stato sociale. Le decisioni
non sono democraticamente prese da tutti gli utenti in quanto appartenenti alla comunit (e
quindi in base ad unidea di cittadinanza), ma il voto stabilito in base al potere di hash, e
quindi in base alla potenza nellecosistema bitcoin (vedi sezione 2.3). La deflazione un
altro aspetto di Bitcoin caro ai libertari che osteggiano linflazione perpetrata dallo stato, vista
come intromissione nelle libere leggi del mercato.

Unimportante aumento dellinteresse dei libertari in Bitcoin si avuto con lo scandalo


del blocco finanziario a Wikileaks. Quando Wikileaks pubblic documenti imbarazzanti (ma
veri) sul governo degli Stati Uniti, il governo utilizz il suo monopolio sulla valuta come arma
contro lorganizzazione. Il governo attu un blocco economico al sito con la complicit dei
principali sistemi di pagamento on-line (Visa, MasterCard e PayPal), impedendo le donazioni a
favore di Wikileaks. Improvvisamente gli utenti si videro negata la possibilit di dare i propri
21

soldi a chi volevano. Questo fatto fu uno shock per i libertari (e non solo) poich negava in un
colpo solo la libert dellindividuo e del mercato. bene ricordare come Wikileaks fu attaccata
economicamente dal governo senza aver subito nessuna condanna legale. Lavvenimento
mostr come un governo con il monopolio di una valuta poteva utilizzare quella valuta per fini
meramente politici. Lindipendenza di Bitcoin lo pone al riparo da questo tipo di utilizzo e
permette il suo utilizzo come valuta anti-censura. Chiunque pu entrare nelleconomia bitcoin
e pu inviare pagamenti a qualsiasi utente. A differenza dei sistemi di pagamento tradizionali,
non esiste nessun controllo centrale che pu impedire lingresso di nuovi utenti o pu
bloccare delle transazioni7.

1.2.1 - Cypherpunk

Dalle idee del libertarianismo nacque la corrente di pensiero denominata cypherpunk8


che alla base dello sviluppo di bitcoin. Questa corrente nacque alla fine degli anni ottanta da
crittografi e matematici che combattevano per difendere le idee libertarie nello spazio
virtuale creato dalle nuove tecnologie. Il cyberspazio era visto come un luogo ancor libero dal
controllo dei governi, quindi il terreno ideale per costruire un paradiso libertario. Le idee di
libert individuale erano per messe a rischio dallo svilupparsi delle nuove forme di controllo
offerte dalla tecnologia. In quegli anni in cui Internet era ancora un fenomeno limitato alcuni
crittografi si accorsero delle enormi potenzialit e rischi che offrivano le nuove tecnologie.
Infatti il cyberspazio poteva essere utilizzato per aumentare le libert degli individui,
potenziando enormemente la libert di espressione ed il libero commercio, ma anche per
instaurare un orwelliano sistema di sorveglianza che avrebbe portato allannullamento di
quelle stesse libert9. La battaglia principale del movimento divent quindi la difesa della
privacy degli utenti, della libert della rete e dellaccesso alla tecnologia. Strumento principe
per la difesa della privacy era chiaramente la crittografia. Fino ad allora la crittografia era
sempre stata appannaggio degli stati, ed era usata solo in guerra e diplomazia. Questo spiega
come ancora negli anni novanta la crittografia fosse classificata dagli stati uniti come


7 Come vedremo nei capitoli successivi questa affermazione resta valida fintanto che la rete resta onesta, cio

non esiste un cartello di miners che controllano la maggioranza del potere computazionale (sezione 4.1.1).
8 Da non confondersi con cyberpunk, che indica una branca della fantascienza incentrata su un futuro prossimo

dominato dalla tecnologia.


9 Questi timori si riveleranno fondati con i numerosi scandali che hanno mostrato come la NSA abbia spiato e

continui a spiare milioni di utenti.


22

armamento e ne era proibita lesportazione. Grazie alle nuove tecnologie per si erano
sviluppati sia i mezzi che le necessit del suo utilizzo per i cittadini comuni. Scopo del
movimento era quindi di sviluppare programmi crittografici per tutti gli utenti che
permettessero un utilizzo libero e privato della rete.

Il primo passo fu lo sviluppo del programma PGP (Pretty Good Privacy) da parte di
Phill Zimmermann nel 1991. PGP permetteva tutte le principali operazioni crittografiche
senza bisogno per lutente di conoscenze tecniche di crittografia ed utilizzando risorse
limitate disponibili nella maggior parte degli elaboratori commerciali del periodo. Nel 1992
nacque la Cypherpunk mailing list che divenne il mezzo ufficiale del movimento. La mailing
list era utilizzata sia per discutere di idee filosofiche che per pi pratiche analisi e sviluppi di
software crittografici. Non tutti gli aderenti10 condividevano le idee libertarie dei fondatori ma
tutti erano paladini convinti del diritto alla privacy. Le battaglie (soprattutto legali) del
movimento furono supportate dallElettronic Frountier Foundation. Le molte cause portate
avanti da cypherpunk con laiuto dellEFF portarono a molte vittorie decisive. Il caso del 1995
iniziato da Daniel J. Bernstein e supportato dallEFF port nel 1999 alla storica sentenza che
affermava che il codice era una forma di parola e quindi la sua diffusione era garantita dalla
costituzione e non poteva essere impedita dal governo. Unaltra sentenza nel 1997
riconosceva la libert di espressione nel cyberspazio, equiparandola a quella nel mondo reale,
quindi dichiarando incostituzionale la censura governativa. Queste importanti sentenze
segnavano due importanti vittorie del movimento, e delle idee libertarie in genere, sancendo
la libert della rete e del software. Le idee del movimento portarono alla nascita del software
open source, di Wikipedia e Wikileaks, della rivista Wired, di SSL, TOR e BitTorrent. Il
movimento cypherpunk ha contribuito inoltre a riabilitare il concetto di hacker. Un hacker
visto in senso positivo come programmatore, piuttosto che i senso negativo come ladro.
Questo ha portato alla nascita di gruppi di hackers (come Anonymous) che definiscono se
stessi combattenti per la libert, con lobbiettivo di liberare internet dai tentativi di
controllo centralizzato. Sotto unottica libertaria un hacker benigno visto come un
combattente non violento della libert personale in rete.

Non possiamo sapere se Satoshi Nakamoto sia stato membro della mailing list o, pi in


10 Come ad esempio il sopracitato Phill Zimmermann.
23

generale, del movimento cypherpunk11, per sappiamo che molte delle idee alla base del
funzionamento di Bitcoin derivano proprio da quel periodo. Nel 1997 il crittografo
cypherpunk Adam Back invent la prima proof-of work, detta hashcash, per prevenire
attacchi DoS, ed in particolare lo spamming di e-mail. Nel 1998 Wei Dai cre b-money, una
valuta digitale anonima che utilizzava il sistema delle proof-of-work. Contemporaneamente
Nick Szabo invent bit-gold, che utilizzava la difficolt delle proof-of-work per simulare la
difficolt dellestrazione delloro. Ogni soluzione trovata garantiva al minatore nuova valuta
(in valore proporzionale alla difficolt del problema risolto), e tutte le soluzioni erano salvate
il un registro distribuito che contenente le soluzioni di tutti gli utenti. Oltre a questi aspetti
tecnici Btcoin ha ereditato dal pensiero cypherpunk limportanza dellanonimato, assenza di
unit centrale e progettazione open source. Lidea stessa di valuta digitale crittografica sicura
figlia del movimento cypherpunk, come possiamo leggere nel manifesto del movimento
scritto da Eric Hughes nel 1993 [39]:

We are defending our privacy with cryptography, with anonymous mail forwarding
systems, with digital signatures, and with electronic money.

1.3 Storia di Bitcoin

1.3.1 Le origini (2008-2010)

La storia di Bitcoin ha inizio il primo novembre del 2008 quando Satoshi Nakamoto
pubblico il suo articolo contenente i principi base di Bitcoin. Bisogna per spettare ancora due
mesi prima che venga rilasciata la prima versione open-source del codice di un client Bitcoin
nel gennaio 2009. Contemporaneamente Satoshi stesso, il 3 gennaio 2009, estrasse il primo
blocco con ricompensa di 50 BTC, ribattezzato Genesis Block, creando le prime 50 bitcoins
al mondo e iniziando la catena dei blocchi che viene usata ancora oggi. La diffusione di Bitcoin
fu lenta e spontanea e ovviamente limitata agli addetti ai lavori. Utenti esperti di informatica
e crittografia abbracciarono la nuova invenzione apprezzandone la libert ed universalit.


11 Poich non nota lidentit (o le identit) che si nasconde dietro il (presunto) pseudonimo Satoshi Nakamoto.
24

Questi primi utenti facevano gare per scavare nuovi blocchi, e l'anima della comunit era il
bitcointalk forum in cui gli utenti scambiavano opinioni sui progressi di mining e su come
migliorare il codice open source sottostante al protocollo.

Il progetto era ancora nel suo stadio iniziale e il valore dei bitcoins era soggettivo e
sostenuto solo dall'entusiasmo dei possessori. Gavin Andresen cre un sito chiamato Bitcoin
Faucet che possedeva 10.000 bitcoins (del valore 5.000.000$ al momento in cui scrivo e
pagati da Andresen 50$ all'epoca) e ne dava una parte a chiunque le avesse richieste. Allo
stesso periodo risale il primo commerciante ad accettare bitcoins come forma di pagamento12
ed il primo acquisto della storia fatto in bitcoins: il 18 Maggio 2010 Laszlo Hanyecz in Florida
pag 10.000 BTC per due pizze usando come intermediario un volontario inglese che accett i
bitcoins ed us la sua carta di credito dall'Inghilterra per pagare effettivamente le pizze.

Il 2010 fu anche l'anno della prima vulnerabilit scoperta e sfruttata del protocollo. Il
15 agosto fu scoperta in un blocco una transazione che conteneva 184 miliardi di bitcoins
(cifra superiore al numero massimo di bitcoins generabili). Questa transazione sfruttava il
bug che le transazioni erano validate senza controllare prima che gli output non fossero
talmente grandi da causare, una volta sommati, un overflow con conseguente risultato errato.
Il codice fu corretto in poche ore ed i nodi aggiornati biforcarono la catena prima della
transizione fraudolenta per costruire una nuova catena pi lunga. Nonostante questo alcuni
nodi non ancora aggiornati continuarono a costruire sulla catena incriminata e ci vollero ben
53 blocchi prima che i nodi aggiornati prendessero il sopravvento condannando quindi il
ramo della catena fraudolenta e cancellando la transazione incriminata dalla storia della
catena. La vulnerabilit spiegata ad oggi l'unico caso in cui sia stato possibile creare nuovi
bitcoins dal nulla, infatti, come spiegheremo nei successivi capitoli, nemmeno un'entit che
abbia il completo controllo della catena dei blocchi pu creare o distruggere bitcoins (a meno
di estrarle correttamente attraverso il mining).

Alla fine dell'anno il misterioso creatore Satoshi Nakamoto pubblic il suo ultimo
messaggio al pubblico sul forum alle 18:22 GMT del 12 dicembre. Da allora inizi a rispondere
alle mail sempre pi sporadicamente fino a cessare del tutto il 26 aprile 2011 per
abbandonare Bitcoin definitivamente (un nuovo post sar pubblicato per il 6 Marzo 2014


12 David Forster del Massachusetts accettava bitcoins in cambio di calzini di lana di Alpaca.
25

per smentire di essere Dorian S. Nakamoto come pubblicato da un articolo di Newsweek, vedi
sezione 1.3.4). Depositari della missione di mantenere e migliorare il codice sorgente
rimasero quei programmatori che avevano seguito Bitcoin fin dalla sua nascita (primo tra
tutti Gavin Andresen) e che erano i suoi principali difensori e promotori.

1.3.2 La crescita (2011-2012)

La valuta non aveva ancora nessun valore reale. Anche quando nell'aprile del 2010 fu
per la prima volta possibile scambiare bitcoins con dollari statunitensi, il valore dei bitcoins
era di pochi centesimi. Si raggiunse la parit col dollaro solo nel febbraio 2011 (per poi
ricadere subito sotto i novanta centesimi). La storia di Bitcoin per era ad una svolta poich
all'inizio dell'estate del 2011 furono pubblicati i primi articoli che parlavano di Bitcoin al
grande pubblico (in pi casi in chiave negativa legando la moneta al commercio di
stupefacenti). Andresen fu invitato dalla CIA a Langley a parlare di Bitcoin mentre il prezzo si
impennava fino a quasi 30 dollari per bitcoin (prima di ricadere subito dopo a pochi dollari
per bitcoin lotto luglio 2011). Il grande pubblico si stava interessando alla nuova valuta
digitale e questo aument il valore del limitato numero di bitcoins in circolazione rendendo il
mining pi redditizio e quindi pi competitivo. I mezzi limitati e naive dei primi minatori non
erano pi sufficienti con tanta concorrenza e inizi la cosiddetta corsa all'oro (gold rush) di
bitcoins. I nuovi minatori si dotavano di grosse quantit di rapide schede video per risolvere
le hash sempre pi difficili, portando alla costruzioni di vere e proprie farm, rumorose a causa
delle ventole di raffreddamento e dagli enormi consumi13. Oramai Bitcoin aveva raggiunto il
grande pubblico e in poco tempo fiorirono nuovi servizi per gli utenti della rete (servizi di
portafogli "sicuri", servizi di cambio, servizi commerciali), molti dei quali chiudevano poi
dopo poco tempo, o attaccati dagli hacker o chiusi volontariamente dai propri creatori
truffaldini. A questo periodo d'espansione incontrollata risale anche il primo presunto furto
della storia di Bitcoin ai danni di un utente con nickname "Allinvain" che dichiar di essere
stato derubato di 25.000 BTC il 13/06/2011. Presunto o meno il furto sar il primo di una
lunga serie, infatti ora i bitcoins avevano un valore fissato e crescente nel tempo ed iniziavano


13 Si racconta di un minatore che fu interrogato dalla polizia perch la sua bolletta elettrica era talmente alta da

aver portato gli agenti a concludere che stesse coltivando marijuana, "ma no agenti, sto estraendo monete" fu
il commento del minatore.
26

a far gola ai ladri. Il 19 giugno 2011 fu attaccato il pi grande ed accreditato sito di cambio di
bitcoins: Mt.Gox (che all'epoca era stimato gestire il 90% di tutti i cambi di bitcoins).

Il dominio Mtgox.com fu registrato dallo statunitense Jed McCaleb nel 2007. Il nome
era lacronimo di Magic The Gathering Open eXchange, infatti il sito doveva essere un sito di
scambio di carte Magic. Lo scambio di carte non decoll mai e quindi nel luglio del 2010
McCaleb decise di riconvertire il sito per lo scambio di bitcoins. Il sito per ebbe talmente
tanto successo da spaventare McCaleb che nel 2011 vendette l88% della propriet a Mark
Karpeles, che ne divenne il nuovo gestore. Karpeles era un bravo programmatore e lo rese il
pi popolare sito di cambi di Bitcoin., tanto che i tassi di cambio di Mt. Gox erano considerati i
tassi di riferimento per lintera economia Bitcoin.

Il 19 giugno 2011 Mt.Gox fu penetrato da un hacker che riusc a rubare il database con
le informazioni dei 61.020 utenti del sito. Mt.Gox proteggeva le password con una semplice
hash MD5 che era gi allepoca ritenuta non sicura. Lattaccante pot quindi accedere agli
account di molti utenti14 ed inizi una colossale operazione di vendita. Pare che in pochi
secondi furono messi in vendita 400.000 BTC, portando il valore di cambio con il dollaro da
17,5 USD a 0,01 USD per 1 BTC. Lattaccante pot quindi ricomprare i bitcoins a prezzo
stracciato. Poi ritir i fondi comprati illegalmente, ma Mt.Gox applicava un blocco ai prelievi di
un valore massimo di 1.000 USD al giorno in bitcoins, quindi il ladro pot ritirare solo una
cifra ignota di bitcoins compresa tra 2.500 e 100.000 BTC.

Mt.Gox interruppe gli scambi per una settimana bloccando di fatto la maggior parte dei
cambi di BTC (data la sua posizione dominante nel mondo dei cambi). Ma, mentre la maggior
parte dei servizi derubati da presunti hackers chiudevano semplicemente lasciando i propri
clienti frodati, Mt. Gox dichiar che avrebbe rimborsato i propri clienti e continu ad operare.
Nel periodo di chiusura del sito tutti gli spostamenti interni di bitcoins furono invertiti
riportando la situazione a prima dellattacco (chiaramente rimase per il buco lasciato dai
bitcoins che lattaccante era riuscito rubare). Inoltre fu richiesto a tutti gli utenti di scegliere
nuove password. La decisione di Mt.Gox di continuare ad operare rafforz limmagine del sito
come servizio serio ed affidabile, cancellando la cattiva pubblicit dovuta al furto.


14 Alcuni di questi utenti utilizzavano le stesse password di Mt.Gox anche per gestire i propri portafogli sul

servizio MyBitcoin, quindi il giorno successivo lattaccante utilizzo queste password anche per rubare da
MyBitcoin i fondi di questi utenti, rubando 4.019 BTC.
27

Questo primo grande incidente di Bitcoin gett un'ombra sullimmagine della valuta. I
media passarono da profetici a scettici e la situazione peggior con gli incidenti successivi. Nel
luglio 2011 Bitomat (il terzo pi grande servizio di cambio) annunci che aveva
accidentalmente sovrascritto il suo intero portafoglio, perdendo cos 17.000 BTC dei propri
utenti. Lo stesso mese il pi vecchio servizio di gestione di portafogli on-line, chiamato
MyBitcoin, smise di funzionare e rispondere alle mail dei clienti per un mese. Ricomparve
nell'agosto 2011 dichiarando che era stato penetrato da hackers e che avrebbe chiuso in
seguito alla perdita di 78.000 BTC, lasciando sul terreno il 51% dei fondi dei propri clienti
(molti sospettarono che in realt l'intera vicenda fosse solo una truffa). Sempre alla fine di
agosto si scopr il primo schema ponzi della storia di Bitcoin quando il proprietario di Bitcoin
Savings and Trust spar con 500.000 BTC dei propri utenti (vedremo in seguito che il gestore
del servizio Trendon T. Shavers, sar riconosciuto colpevole nel 2013). Nello stesso anno
comparvero i primi malware e trojan che infettavano le proprie vittime per trasformarle in
minatori inconsapevoli, rubando di fatto capacit di calcolo a favore dell'hacker che le
controllava (vedi sezione 4.1.4). Sui siti si moltiplicarono i commenti che definivano l'intero
progetto Bitcoin una truffa colossale (uno schema piramidale) e la fiducia croll. Dal massimo
dell'8 luglio in cui il prezzo era arrivato a 31$ per bitcoin la caduta fu rapida e costante e la
risalita lenta e pigra. Si sarebbe dovuto aspettare fino all'inizio del 2013 per avere un
rinnovato aumento di interesse in Bitcoin.

Le potenzialit di libert di scambi e parziale anonimato offerte da Bitcoin non erano


per passate inosservate nel mondo del web profondo. La maggior parte dei siti che
vendevano o offrivano servizi illegali iniziarono ad accettare solo bitcoins come valuta di
pagamento. Il pi noto (e famigerato) di questi siti stato senz'alto "Silk Road" rimasto
operativo da febbraio 2011 al 2 ottobre 2013 quando sar chiuso dall'FBI. Il sito accettava
come valuta solo bitcoins ed i suoi traffici erano cos redditizi che al momento della chiusura
l'FBI ha sequestrato 26.000 BTC degli utenti del sito e ben 144.000 BTC appartenenti al
proprietario del sito. Queste somme dimostrano sia l'importanza del commercio illegale
nell'economia Bitcoin (sebbene resti una piccola percentuale dei milioni di bitcoins
attualmente in circolazione) sia l'effettiva mancanza di anonimato che evidenzieremo nella
sezione 4.3, dimostrata dal fatto che l'FBI sia riuscita a ricostruire una plausibile (in senso
legale) appartenenza dei fondi ai sospettati.

Ma nel 2012 non fu solo il commercio illegale a beneficiare dell'espansione di Bitcoin. Il


28

sito BitPay annunci di aver superato il numero di mille commercianti che accettavano la
valuta come pagamento. BitPay inizi ad operare nellagosto del 2011 ed offriva le stesse
funzionalit di PayPal allinterno delleconomia bitcoin, agendo da intermediario e
permettendo a chiunque di accettare pagamenti in bitcoins. Inoltre sempre pi siti iniziarono
ad accettare donazioni in bitcoins (seguendo l'esempio di Wikileaks che accettava la valuta gi
dal giugno 2011).

Il 24 aprile 2012 comparve sulla scena Satoshi Dice che per la prima volta offriva un
servizio di scommesse in bitcoins. Satoshi Dice un servizio di scommesse basato sulla
catena, questo vuol dire che non esiste nessun sito o software per giocare, gli utenti inviano
semplicemente la propria scommessa ad un indirizzo pubblico del servizio (sono disponibili
pi indirizzi ed ogni indirizzo associato ad una diversa probabilit di vittoria). I gestori si
occuperanno poi di determinare se lutente ha vinto, nel qual caso invieranno la vincita
(decurtata di una commissione) allutente. Se lutente perde ricever comunque una
transazione di consolazione contenente un satoshi (10-8 BTC). Il sito fu di tale successo da
generare dopo poche settimane pi transazioni di tutti gli altri servizi messi insieme. Alcuni
utenti arrivarono ad accusare Satoshi Dice di essere in realt un attacco DDoS mascherato. Il
servizio infatti accusato di inondare la rete di transazioni inutili. Se il servizio permettesse
agli utenti di connettersi ad un sito, piazzare numerose puntate, come un classico sito di
scommesse, e solo alla fine incassare eventuali profitti, ogni giocatore produrrebbe solo due
transazioni per sessione (indipendentemente dal numero di scommesse fatte) invece di due
transazioni per ogni scommessa, alleggerendo di molto limpatto sulla rete.

Il 2012 fu tutto sommato un anno dinamico ma tranquillo, in cui la valuta si stava


preparando all'enorme balzo di popolarit che la aspettavano l'anno successivo.

1.3.3 Il balzo di popolarit (2013-oggi)

Il 2013 stato senzaltro l'anno della svolta per Bitcoin. Fino al 2010 la valuta aveva
vissuto in una nicchia protetta, tra il 2011 ed il 2012 si era timidamente affacciata al grande
pubblico riscuotendo moderato interesse, ma fu nel 2013 che entr nell'immaginario
collettivo e la sua popolarit esplose. Il valore di un bitcoin continu a salire stabilmente per
tutto l'inizio dell'anno superando presto il precedente massimo storico di 30$ per bitcoin.
29

Fu in questo periodo di crescente interesse che successe un fatto eclatante: alle 23:30
dellundici marzo ci si accorse di una biforcazione nella catena. Il fatto di per s non era strano
poich biforcazioni casuali avvengono in continuazione (come spiegheremo nella sezione 2.4),
questa biforcazione era per molto pi pericolosa. Il problema era che era stato aggiunto alla
catena un nuovo blocco generato da un minatore che eseguiva la nuova versione 0.8 del client
ufficiale bitcoind. La maggioranza dei nodi avevano infatti correttamente aggiornato la propria
versione allultima release, la 0.8 appunto. Essendo Bitcoin completamente libero, non tutti i
nodi avevano aggiornato il proprio software ed alcuni eseguivano ancora la vecchia versione
0.7. Sfortunatamente per il blocco non veniva riconosciuto come valido dai nodi che
utilizzavano ancora la versione 0.7. Infatti con la versione 0.8 era cambiato il database
utilizzato per memorizzare i blocchi da BerkleyDB al pi efficiente LevelDB. BerleyDB
utilizzava un b-tree per salvare gli oggetti con due lock necessari per ogni update di un
oggetto dellalbero. Il client bitcoind 0.7 indicava 10.000 come numero massimo di lock che
potevano essere messi in contemporanea sul database. LevelDB non introduceva al contrario
nessun limite. Il nuovo blocco estratto comportava laggiornamento di pi di cinquemila
transazioni, rendendo il numero di lock necessari maggiore del limite. I nodi con la versione
0.7 non potevano quindi leggere il blocco e lo ritenevano di conseguenza invalido, non lo
aggiunsero alla catena ed estrassero al suo posto un blocco valido creando una biforcazione. I
nodi con la vecchia versione continuarono poi a costruire la catena su questo nuovo ramo. I
nodi con la versione 0.8 invece continuarono ad aggiungere blocchi sul proprio ramo poich
restava il pi lungo. Poich adesso esistevano due catene distinte chiunque poteva spendere i
propri fondi due volte (una volta con un utente che riconosceva come corretta il primo ramo e
una seconda volta con un qualsiasi nodo che invece seguiva l'altro ramo). Il caos generato
rischiava di portare lancora fragile economia di Bitcoin al collasso, quindi gli sviluppatori si
fecero avanti per trovare una soluzione. Ognuna delle due soluzioni possibili presentava per
un problema. Considerare il ramo 0.8 il ramo ufficiale, poich pi lungo, significava
costringere ogni utente ad aggiornarsi subito alla versione 0.8. Considerare invece il ramo 0.7
quello ufficiale richiedeva agli utenti con la versione 0.8 di abbandonare il ramo pi lungo
contravvenendo alle regole del protocollo. Poich la rete doveva restare libera si ritenne
improponibile dover costringere alcuni utenti ad aggiornarsi od abbandonare la rete, quindi si
decise per la seconda soluzione. Mentre i maggiori siti di cambio e commercio on-line
bloccavano tutti gli scambi in attesa di una soluzione, gli sviluppatori contattarono tutti i
maggiori mining pool convincendoli a tornare alla vecchia versione 0.7 . Sebbene alcuni
30

miners continuassero ad utilizzare la versione 0.8, la maggioranza del potere computazionale


era ora diretto sul ramo della catena generato dalla vecchia versione. Dopo quasi sette ore e
ventiquattro blocchi dallinizio della biforcazione il ramo generato dalla versione 0.7 super
laltro ramo. Anche i miner che ancora utilizzavano la nuova versione lo riconobbero quindi
come ramo ufficiale ed il ramo della versione 0.8 fu abbandonato. Allo stesso tempo gli
sviluppatori rilasciarono la versione 0.8.1 di bitcoind che risolveva lincompatibilit con le
versioni passate. I danni economici furono limitati ma il principio fondante della
decentralizzazione di Bitcoin usc appannato dalla vicenda. Come si visto ci fu bisogno
dellintervento del team degli sviluppatori, che utilizzarono la propria popolarit e fiducia
della comunit per elevarsi ad entit di controllo della rete. Il loro intervento permise alla
comunit di infrangere le regole del protocollo convincendo la maggioranza della potenza di
calcolo della rete ad abbandonare la catena pi lunga. Un altro problema evidenziato
dallevento fu limportanza del software ufficiale bitcoind. Sebbene ogni utente pu utilizzare
il proprio software, di fatto al maggioranza della rete e, soprattutto, dei mining pools utilizza
questo client standard. Il team degli sviluppatori che controllano gli aggiornamenti di questo
software, controllano quindi di fatto gli sviluppi del protocollo.

Il 18 marzo 2013 arriv un report del FinCEN15 [49] sulle valute virtuali che regolava
Bitcoin come valuta virtuale e sollevava i suoi utilizzatori da qualsiasi obbligo tranne nel caso
che i bitcoins fossero stati scambiati per valuta nazionale, nel qual caso il soggetto che li
scambiava aveva lo stato legale di MSB (Money Service Business). Nella pratica questo si
traduceva nell'obbligo per i siti di cambio e per i minatori che vendevano bitcoins in cambio di
dollari, di registrarsi come MSB e quindi di dover rispettare tutte le norme antiriciclaggio (tra
le quali l'obbligo di tenere un archivio delle transazioni, conoscere determinate informazioni
sugli utenti come normali istituzioni finanziarie e l'obbligo di segnalare i pagamenti sopra una
certa cifra o ritenuti sospetti).

Parrebbe che un tale effetto regolatore avrebbe dovuto avere un effetto negativo
sull'economia di Bitcoin poich annebbiava l'idea di libert originaria della moneta. Invece
ebbe l'effetto contrario rassicurando il grande pubblico. Ora che Bitcoin era regolamentato
entrando nella sua economia non si commetteva un atto potenzialmente illegale. Il valore di


15 Financial Crimes Enforcement Network, alle dipendenze del Dipartimento del Tesoro degli Stati Uniti
d'America.
31

un bitcoin continu quindi a crescere fino a superare per la prima volta 100$ il primo di aprile
e raggiungere poi il nuovo record di 266$ lo stesso mese. Dopo l'euforia torn la discesa ed il
prezzo fluttu nei mesi successivi intorno ai 100$.

Durante questi mesi di intensi scambi il vecchio colosso dei cambio Mt. Gox sub altri
due scossoni. Il primo fu un rallentamento generale nei servizi a causa dell'incapacit tecnica
del sito di gestire l'aumento delle richieste di cambi avvenuto ad aprile all'apice del cambio
con il dollaro. Questi ritardi contribuirono alla caduta del prezzo e al ritorno su quote di poco
superiori ai 100$. A maggio il Dipartimento di Sicurezza Nazionale degli Stati Uniti d'America
congel gli account contenenti cinque milioni di dollari che Mt. Gox deteneva negli Stati Uniti,
per mancanza di adesione da parte del sito ai nuovi obblighi dettati dal FinCEN quell'anno.
Questo fin per escludere Mt. Gox dal mercato statunitense.

Ma Mt. Gox non era il solo ad avere problemi. Per tutto l'anno si susseguirono notizie di
furti ai danni dei servizi di cambio o di portafoglio on-line, portando alla chiusura di molti di
questi (anche se qualcuno fu sospettato di aver inscenato i furti e di essersi invece
appropriato dei fondi degli utenti).

Il 23 giugno l'amministrazione anti-droga degli Stati Uniti d'America (United States


Drug Enforcement Administration) oper il primo sequestro di bitcoins della storia,
sequestrando 11,02 BTC in un'inchiesta collegata a Silk Road (questo solo un preludio ai
sequestri effettuati ad ottobre dello stesso anno di cui abbiamo gi parlato in precedenza).

L'undici agosto fu scoperta una vulnerabilit (eliminata 2 giorni dopo) nel generatore
di numeri casuali del sistema Android che permise numerosi furti ai portafogli gestiti da quel
sistema (infatti il generatore di numeri casuale non era realmente casuale e quindi il
parametro casuale usato durante la firma veniva ripetuto, portando alla possibilit di un
attaccante di scoprire la relativa chiave privata, vedi sezione 3.1.1).

Sempre ad agosto arriv la sentenza del caso Securities and Exchange Commission vs.
Trendon T. Shavers and Bitcoin Savings and Trus (BTCST), in cui il giudice del Texas incaricato
riconobbe colpevole il proprietario di BTCST Trendon T. Shavers accusato di aver perpetrato
uno schema ponzi ai danni degli utenti. interessante notare come Shavers avesse adottato
come linea difensiva il ragionamento che bitcoin non fosse una valuta. Il giudice riconobbe
per che bitcoin era scambiato in cambio di beni e quindi poteva essere considerato una
moneta. Da ci conseguiva che gli utenti avevano investito una somma di denaro (non un
32

bene qualsiasi) e quindi le leggi in materia di frode finanziaria erano applicabili.

A settembre BitPay annunci il nuovo record di 10.000 clienti, ed il 29 ottobre inizi a


funzionare il primo bancomat Bitcoin, mentre si moltiplicava il numero di negozi e istituzioni
che annunciavano di accettare bitcoins.

Il mondo di Bitcoin era ormai molto cambiato dai suoi inizi e a novembre il primo sito
di cambio per valore delle transazioni effettuate divenne il sito cinese BTC China. L'interesse
per Bitcoin si era infatti riacceso portando ad una nuova salita del prezzo che super la soglia
dei 1.000$ il 27 novembre per poi raggiungere nello stesso mese il nuovo, e fino ad oggi
imbattuto, record di 1.200$ .

Linizio del 2014 port una nuova minaccia alla rete Bitcoin. Il dieci e undici febbraio la
rete fu sommersa da un massiccio attacco DDoS che costrinse i principali siti di cambio a
interrompere gli scambi. La rete non era nuova ad attacchi denial of service, ma mai di queste
dimensioni. I mining pools o i siti di servizi on-line potevano infatti colpire i rivali con attacchi
denial of service per screditarli ed attirare a s i loro miners o clienti. Erano anche successi
episodi di botnet che, dopo essere state espulse da un mining pool, si vendicavano sul mining
pool utilizzando i dispositivi infetti per un attacco DDoS contro di lei. Un attaccante poteva
inoltre tentare un attacco DDoS contro un sito di cambi per far abbassare i tassi di cambio ed
ottenere un ritorno economico. Lattacco di settembre per fu il primo abbastanza potente da
colpire lintera rete, bloccando gli scambi di bitcoins per ore, e portando ad un crollo del
valore dei bitcoins. Lattacco fu portato da un nodo che sfruttava la malleabilit delle
transazioni per sommergere la rete di transazioni clonate (vedi sezione 4.4.3). I maggiori siti
di cambio videro unimprovvisa esplosione di tentativi di double spending (vedi sezione 2.3) e
quindi chiusero le connessioni, per rafforzare il proprio software e al tempo stesso controllare
che non dipendesse dallhash unico delle transazioni per funzionare correttamente
(altrimenti questa vulnerabilit sarebbe stata sfruttata dalle transazioni clonate)16. I
principali siti di scambi si ripresero presto dallattacco, ma non Mt.Gox per cui questultima
spallata sar il colpo di grazia.

Lo storico sito di cambio aveva avuto problemi per tutto lanno passato. I problemi


16 Osserviamo che il client ufficiale di bitcoin non vulnerabile ad attacchi basati sulla malleabilit, poich non

considera le hash delle transazioni ma si basa solo sulle nuove transazioni confermate nella catena.
33

giudiziari con il governo degli Stati Uniti avevano portato la compagnia ad interrompere i
pagamenti in dollari, impedendo agli utenti statunitensi di ritirare i propri fondi. Anche
quando i pagamenti ripresero, furono sempre pi lenti e sporadici. Nonostante lapparente
solidit i dipendenti del sito affermeranno in seguito che la compagnia era un disastro.
Karpeles era un amministratore egocentrico che voleva tenere tutto sotto controllo ma senza
curasi della quotidiana amministrazione. La compagnia mancava di tutte le procedure di
sicurezza e verifica del software. I dipendenti diranno che Karpeles era un geniale
programmatore ma un imprenditore negato. La compagnia tent di restare a galla alzando i
tassi di cambio rispetto ai rivali per rastrellare pi fondi ma fu tutto vano. Subito prima
dellattacco di febbraio Mt.Gox blocc tutti i prelievi, congelando i fondi degli utenti. Bisogner
aspettare il 28 febbraio per la dichiarazione ufficiale della bancarotta.

Le vere cause del fallimento di Mt.Gox sono ad oggi ancora ignote ma illustreremo di
seguito la spiegazione pi diffusa. Mt.Gox usava una codifica non standard per le firme delle
sua transazioni. Come vedremo nella sezione 4.4.3, dalla versione 0,8 del client ufficiale
bitcoind (rilasciata a febbraio 2013) le firme in formato non standard sono accettate ma non
inoltrate ad altri nodi. Le transazioni di Mt.Gox furono quindi considerate non standard a
partire da febbraio 2013 e quindi non venivano inoltrate dai nodi aggiornati rendendo la loro
propagazione sulla rete lenta o, in alcuni casi, impossibile. Questo caus grandi ritardi nei
prelievi dal sito. Alcuni utenti scoprirono il problema e iniziarono a correggere da soli le
transazioni, rappresentando in maniera standard la firma, per vederle validate in fretta. Di
fatto gli utenti stavano sfruttando la malleability allinverso, invece di creare cloni da una
transazione standard, creavano una transazione standard da una che era vista come clonata.
Gli stessi utenti si accorsero che malleando la transazione lhash identificativo cambiava e
Mt.Gox non registrava il prelievo poich si aspettava la vecchia hash. La transazione era
corretta ed entrava quindi nella catena, ma Mt.Gox non sapeva di aver speso quei fondi. Gli
utenti potevano quindi reclamare fraudolentemente a Mt.Gox di non aver ricevuto i fondi, e la
compagnia dava ragione agli utenti poich non aveva registrato la transazione, non
riconoscendo lhash identificativa. In altre parole Mt.Gox pagava di fatto gli utenti senza
accorgersene. Mt.Gox credeva di non aver pagato lutente e quindi creava una nuova
transazione a suo favore. Normalmente Mt.Gox avrebbe potuto invece controllare la catena e
si sarebbe subito accorto che lutente stava mentendo. Anche senza controllare la catena
Mt.Gox si sarebbe potuto limitare ad inviare la stessa transazione (quella clonata dallutente)
di nuovo e controllare se questa volta fosse stata accettata. Questa la procedura standard in
34

Bitcoin in caso di reclamo. Infatti se vengono inviate pi copie della stessa transazione una
sola potr essere validata nella catena (le altre saranno scartate come tentativi di double
spending), quindi chi invia i fondi sicuro che pagher al massimo una volta. Per provare a far
validare una transazione chi la invia pu, al massimo, provare ad aumentare la commissione o
rappresentare diversamente la firma, per assicurarsi che non sia rifiutata per commissioni
troppo basse o firme non standard. Mt.Gox per non fece nulla di tutto questo. Vedendo che la
transazione non riusciva ad essere confermata (originariamente perch era non-standard e
successivamente perch era gi presente un suo clone nella catena) creava una nuova
transazione utilizzando altri fondi di input. Come se non bastasse anche questa nuova
transazione era non standard, quindi lutente fraudolento poteva modificarla senza che
Mt.Gox sene accorgesse, far approvare sulla catena la transazione modificata e ricontattare
Mt.Gox per chiedere ancora gli stessi fondi. A causa della generale incompetenza con cui era
gestita la compagnia (o, secondo alcuni, della collusione di alcuni impiegati) nessuno si
accorse dellemorragia fino al dieci febbraio 2014. Quel giorno fu pubblicato un comunicato
che accusava il protocollo Bitcoin di essere vulnerabile ed accusarono la malleability delle
transazioni di tutte le loro perdite. Il giorno dopo la rete fu attaccata dal massiccio DDoS che
sfruttava proprio la malleabilit e Mt.Gox chiuse per sempre.

I numeri del fallimento di Mt.Gox sono impressionanti, su un documento interno,


redatto prima del fallimento [52], si legge che lemorragia di fondi negli anni ha causato la
perdita di 744.408 BTC , cio il 6% di tutti i bitcoins esistenti in circolazione nel marzo 2014.
Al tasso di cambio medio della data di dichiarazione di fallimento i fondi rubati ammontavano
a circa quattrocento milioni di dollari. Una quantit immensa di fondi di cui nessuno
allinterno della compagnia si sarebbe accorto prima del fallimento.

La spiegazione ufficiosa del furto sopra indicata non trova per consenso unanime
nella comunit. Molti ritengono assurdo che nessuno allinterno di Mt.Gox si sia accorto di
nulla, e ci sono diffusi sospetti sulla gestione del servizio. I dubbi pi autorevoli sulla vicenda
sono stati sollevati da due ricercatori di Zurigo [66] che hanno cercato di rintracciare
lenorme mole di transazioni clonate necessarie a commettere il furto. Gli autori hanno
inserito nella rete un nodo ascoltatore ed analizzato tutte le transazioni inviate sulla rete a
partire da gennaio 2013. Tenendo traccia delle transazioni clonate, hanno potuto individuare
29.139 attacchi basati sulla malleabilit che riguardavano 302.700 BTC in totale. Di questi
attacchi solo il 21,36% avrebbe avuto successo garantendo un furto totale di 64.564 BTC . Ma
35

di tutti questi furti la maggior parte sono dovuti al gi citato attacco del dieci febbraio, mentre
Mt.Gox aveva gi bloccato qualsiasi prelievo lotto febbraio. Da gennaio 2013 allotto febbraio
2014 solo 386 BTC, molto meno delle 850.000 BTC denunciate, sono individuate come
proventi illeciti dovuti ad attacchi basati sulla malleabilit. Lo studio iniziato da gennaio
2013 e quindi non possiamo sapere se la maggior parte dei furti non fosse gi stata commessa.
Inoltre le transazioni clonate sono considerate non standard e quindi si propagano sulla rete
con grande difficolt, possibile quindi che il nodo ascoltatore degli autori non sia venuto a
conoscenza di molte di loro. Infine questo studio considera le transazioni standard come
legittime mentre abbiamo visto come Mt.Gox inoltrasse transazioni non standard, malleate
poi in formato standard dagli attaccanti. Certo che lo studio getta una fitta ombra sullonest
del servizio. Un altro fatto sospetto lannuncio di Mt.Gox del 20 marzo di aver ritrovato
200.000 BTC depositati in un vecchio portafoglio da tempo non utilizzato. Come possibile
che la compagnia avesse depositato cos tanti fondi in un portafoglio per poi dimenticarsene e
nessuno si fosse accorto della scomparsa di 200.000 BTC (che equivalgono a circa cento
milioni di dollari statunitensi) ?

Il tentativo di Mt.Gox di accusare delle perdite presunte vulnerabilit di Bitcoin fu


subito smentito sia dagli sviluppatori che dagli altri servizi di cambio, ribadendo che Mt.Gox
era vittima solo della sua incompetenza e che Bitcoin non ne aveva nessuna colpa. Il
fallimento di Mt.Gox ha dato un serio colpo alla fiducia del pubblico in Bitcoin, portando ad un
significativo calo dei tassi di cambio, ma non stato sufficiente a distruggerla. Gli utenti pi
esperti avevano gi da tempo interpretato i segnali di cedimento del colosso, ed al momento
del suo fallimento Mt.Gox era solo lombra della gloria del tempo in cui era il re degli scambi.
Alcune compagnie hanno visto nel fallimento di Mt.Gox la fine dellinizio di Bitcoin. Queste
compagnie ritengono che ormai Bitcoin sia sufficientemente maturo da richiedere aziende
solide e razionalmente gestite, non start-up improvvisate da programmatori o utenti
entusiasti. La loro convinzione che Bitcoin abbia raggiunto la propria maturit e solo gli
adulti possono ormai partecipare.

1.3.4 Il mistero di Satoshi Nakamoto

Larticolo originale su cui si basa lintero protocollo Bitcoin firmato da uno


sconosciuto Satoshi Nakamoto. Nessuno aveva mai sentito parlare di lui n sulla rete n negli
36

ambienti accademici legati alle valute digitali. Lidentit del fondatore di Bitcoin rimasta
sempre avvolta dal mistero. Anche durante le discussioni sul forum di Bitcoin (prima di
scomparire) Satoshi ha sempre parlato solo di aspetti tecnici, rifiutandosi di fornire qualsiasi
informazione sulla sua identit. Bitcoin completamente indipendente dal suo fondatore che
non ha nessun tipo di controllo sul protocollo, quindi potrebbe sembrare che conoscere la sua
vera identit sia una semplice curiosit, ma in realt non cos. Il successo di bitcoin si basa in
larga misura sulla presa che ha sugli utenti. Bitcoin particolarmente vulnerabile agli effetti
della propria popolarit e lidentit misteriosa del suo fondatore ricopre una parte importante
nel folklore collegato alla valuta. Gli utenti originali vedono in Satoshi un campione della
libert della rete, ma i nuovi utenti potrebbero essere spaventati dallutilizzare la creazione di
una figura cos enigmatica. Se si scoprisse la vera identit di Satoshi ci sarebbe un volto dietro
allintero progetto bitcoin. Se Bitcoin si basa su idee perfette della matematica, il suo creatore
segue invece le stesse regole imperfette di tutti gli uomini. Gli avversari di bitcoin potrebbero
trasporre gli errori e i difetti delluomo sul protocollo, minandone la popolarit.
Improvvisamente qualsiasi errore commesso in passato dal creatore mostrerebbe lintero
protocollo come fallibile. Bitcoin funziona quindi meglio con un creatore ignoto e misterioso.
Il progetto ha infatti lo scopo di ridare il potere alle persone, quindi non devono esistere
entit centrali, nemmeno un creatore, tutti gli utenti sono uguali. Gli utenti non devono
riporre la loro fiducia in una figura carismatica, solo in loro stessi e nelle regole del protocollo.

Numerosi ed autorevoli studi sono stati condotti per cercare di svelare la vera identit
del creatore, ma fino ad oggi rimangono solo teorie e speculazioni. Satoshi Nakamoto non ha
mai rivelato nessuna informazione privata. Quando fu messo in rete larticolo originale [1], le
uniche informazioni che Satoshi diede furono un indirizzo di posta elettronica gratuito con
dominio tedesco ed il fatto di risiedere in Giappone. La pista giapponese port solo a teorie
poco probabili, come quella di alcuni utenti che sostennero che il nome fosse una copertura
per SAmsung TOSHIba NAKAmichi MOTOrola. Lintero progetto di Bitcoin sembrava per un
lavoro troppo complesso per essere gestito da un solo uomo, ed in molti credevano che dietro
il nome si nascondesse in realt un gruppo di persone. La mail non forn nessun indizio, infatti
Satoshi era molto attento a non rivelare nessuna informazione utile e rispondeva solo ogni
tanto alle mails, come se le controllasse di rado (negando cos informazioni sulle sue
abitudini). Lunica volta in cui Satoshi parl di un argomento che non fosse limplementazione
del protocollo fu il 5 Dicembre 2010 quando scrisse un post sul forum contro ladozione di
donazioni in bitcoins da parte di Wikileaks :
37

No, dont bring it on, the project needs to grow gradually so the software can be strengthened
along the way. I make this appeal to Wikileaks not to try to use bitcoin. Bitcoin is a small beta
community in its infancy. You would not stand to get more than pocket change, and the heat you
would bring would likely destroy us at this stage.

Questo sar uno dei suoi ultimi post prima della definitiva uscita di scena dal forum il 12
Dicembre e linterruzione delle risposte alle mail del ventisei Aprile successivo.

Un programmatore svizzero della comunit bitcoin, Stefan Thomas, analizz i tempi di


tutti i post lasciati da Nakamoto sul forum, scoprendo che il numero di post era irrilevante tra
le 5 e le 11 am GMT, suggerendo che quello era lintervallo di tempo durante il quale Satoshi
dormiva. Negli Stati Uniti questintervallo rappresenta da mezzanotte alle sei del mattino
secondo il fuso orario della costa orientale, suggerendo che Nakamoto potesse vivere in
questo fuso orario. Nel genesis block estratto da Nakamoto per presente un titolo di un
giornale britannico Times of London17, ed i suoi commenti sul forum e nel codice sorgente
contengono lo spelling britannico (piuttosto che statunitense) di alcune parole come
optimise e colour. Ugualmente questi commenti sono scritti in inglese perfetto, come se
lautore fosse madrelingua (escludendo la nazionalit giapponese). Si ritiene inoltre, dalle
notazioni e strutture usate nel codice sorgente, che Nakamoto abbia ricevuto uneducazione
informatica non recente, ipotizzando che debba essere un uomo (o donna o gruppo) di
almeno quarantanni.

Molti giornalisti hanno tentato di risolvere il mistero. Nel 2011 il New Yorker pubblic
un articolo autorevole sullidentit di Satoshi, che fu per smentito dai sospettati. Molte
ipotesi sono state mosse sui crittografi impegnati allepoca nello studio delle valute digitali
come anche sugli sviluppatori pi autorevoli, ma sono state tutte smentite dagli interessati.
Larticolo pi recente uscio su newsweek il 6 Marzo 2013 ed afferma di aver scoperto il vero
Satoshi Nakamoto nel sessantaquattrenne statunitense di origini giapponesi Dorian Satoshi
Nakamoto [116]. Larticolo ricostruisce la vita di Dorian Nakamoto cercando coincidenze e
moventi da collegare alle poche notizie note su Satoshi. Linteressato ha subito smentito di
essere Satoshi e durante lintervista di smentita Dorian ha continuato ha chiamare Bitcoin
Bitcom (o come furba copertura oppure perch non sapeva davvero di cosa si tratti). La


17 Il titolo The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.
38

smentita pi autorevole giunta da Satoshi Nakamoto stesso, che per la prima volta dal 2010
ha inserito un nuovo post per smentire di essere Dorian S. Nakamoto. Chiaramente questo
potrebbe indicare che Dorian non sia davvero Satoshi o che lo sia ed abbia scritto il post
proprio perch si sentiva circondato. Laspetto meno credibile per proprio il nome Dorian
S. Nakamoto. Sembra assurdo che un campione dellanonimato come Satoshi, che non si mai
lasciato sfuggire nessuna informazione in due anni, abbia scelto come pseudonimo il proprio
nome vero.


Capitolo 2 - Protocollo

In questo capitolo spiegheremo le regole alla base del protocollo Bitcoin. Le primitive
crittografiche usate da Bitcoin sono ECDSA (Elliptic Curve Digital Signature Algorithm) con la
curva secp256k118 per operazioni di firma, e doppia hash SHA-256 (cio utilizzato
sha256(sha256(X)) per calcolare lhash di X) per ottenere hash lunghe 256 bit e SHA-256
combinata con RIPEMD-160 (cio ripemd160(sha256(X)) restituisce lhash di X) per ottenere
hash lunghe 160 bit. Di seguito ogni volta che useremo il termine hash intenderemo dire
doppia hash SHA-256 se non diversamente specificato. Per maggiori dettagli sulle funzioni
crittografiche si veda il Capitolo 3.

2.1 Indirizzi

Per poter fare parte delleconomia Bitcoin ogni utente deve prima generare almeno
una coppia (chiave pubblica, chiave privata). La chiave pubblica servir per calcolare
lindirizzo da cui ricevere e inviare pagamenti e la chiave privata sar usata per dimostrare
che lutente il vero possessore di quella chiave pubblica. La crittografia a chiave pubblica
usata dal protocollo ECDSA, la chiave privata sar un numero casuale di 256 bits e
lalgoritmo di ECDSA generer la corrispondente chiave pubblica di 512 bits. Lutente per
non comunica allesterno la chiave pubblica in s. Prima esegue due hash dei 512 bits della
chiave pubblica, prima usa SHA-256 per ottenere 256 bits su cui applicato RIPEM-160 per
ottenere 160 bits. Questo numero viene trasformato nellindirizzo pubblico in caratteri ASCII
applicando la codifica Base58Check. La codifica Base58Check contiene una check-sum per
evitare errori composta dai primi 4 bytes dellhash SHA-256 (come sempre doppia)
dellindirizzo pubblico19. molto importante che questo indirizzo sia generato correttamente


18 Per i parametri consigliati si veda [65].
19 Esempio: chiave privata f19e523315891e6e15ae0608a35eec2e00ebd6d1984cf167f46336dabd9b2de4

chiave pubblica 04fe43d0c2c3aab30f9472beb5b757be020b81c7cc940ed7a7e910f0c1d9feef10fe85eb


3ce193405c2dd8453b7aeb6c1752361efdbf4f52ea8bf8f304aab37ab
hash doppia della chiave pubblica c8e90996c7c6080ee06284600c684ed904d14c5e
indirizzo 1KKKK6N21XKo48zWKuQKXdvSsCf95ibHFa
40

poich senn tutti i bitcoins inviategli non saranno pi utilizzabili e quindi persi per sempre.
Questo indirizzo pubblico e deve essere noto a chiunque voglia effettuare un pagamento a
suo favore. Osserviamo come dallindirizzo non sia possibile ricavare la chiave pubblica vera
poich le funzioni di hash usate sono crittograficamente sicure (e quindi irreversibili), n
tantomeno la chiave privata, che non sarebbe possibile ricavare nemmeno se conoscessimo la
chiave pubblica, grazie alluso di ECDSA. Un corollario di questa sicurezza che se la chiave
privata viene rubata allora il legittimo proprietario non distinguibile dal ladro. Bitcoin vede
come proprietario di un indirizzo chiunque possieda la relativa chiave privata, ladro o meno.
Un altro problema riguarda la perdita della chiave privata. Se la chiave privata persa allora
qualsiasi fondo contenuto, o successivamente inviato, a quellindirizzo perduto per sempre.
Nessuno potr mai reclamare i fondi perduti, a meno chiaramente di violare la sicurezza delle
funzioni crittografiche sottostanti.

Ogni utente pu generare un nuovo indirizzo per ogni transazione (in cui tra i
destinatari di un pagamento), quindi, nella pratica, il numero di indirizzi che ogni utente pu
gestire molto elevato. Infatti per aumentare lanonimato delle transazioni consigliato
creare un nuovo indirizzo (e quindi una nuova coppia (chiave pubblica, chiave privata)) per
ogni transazione. Questo non un problema poich il costo computazionale per generare un
nuovo indirizzo trascurabile. Chiaramente per utenti con grandi volumi di transazioni
giornalieri (come possono essere i grandi servizi di cambio o di scommesse on-line) cambiare
indirizzo per ogni transazione genererebbe presto un numero intrattabile di indirizzi.
Scartare gli indirizzi vecchi da cui sono gi stati spesi tutti i bitcoins disponibili uno
stratagemma pericoloso poich qualcuno potrebbe ancora conoscerli ed inviare pagamenti a
loro favore. Questo porterebbe a bitcoins irrecuperabili, essendo stata scartata la chiave
privata.

2.2 Transazioni

Quando un utente ha almeno un indirizzo corretto libero di ricevere o inviare


transazioni. Una transazione uno scambio di bitcoins forniti da uno o pi indirizzi di input e
destinati ad uno o pi indirizzi di output, con la possibilit aggiuntiva di specificare un output
speciale che costituir la commissione pagata sulla transazione.

Ogni input costituito da una transazione e un indirizzo (oltre alle firme come spiegato
in seguito). cio specificato lindirizzo (indicato da un indice) da cui prendere i fondi e la
41

transazione (in cui quellindirizzo deve apparire tra gli outputs al posto indicato dallindice)
che ha depositato i fondi su quellindirizzo. Lutente dovr firmare il tutto usando la chiave
privata di quellindirizzo. In questo modo la firma dimostra che chi effettua la nuova
transazione sia davvero il proprietario dei fondi e la vecchia transazione dimostra che
quellindirizzo conteneva quei fondi. importante subito notare come lintero valore in
bitcoins indicato dalla vecchia transazione allindirizzo usato sar utilizzato nella transazione
corrente. Non possibile dividere questa somma se non attraverso altre transazioni (ma come
vedremo sar possibile comunque ottenere il resto).

Ogni output costituito da un indirizzo e dal numero di bitcoins che vogliamo


trasferire a quellindirizzo. La somma di tutti i valori contenuti negli input contribuir a
formare il valore che dovr essere spartito tra i vari outputs della transizione. Chiaramente la
somma dei valori in input deve essere maggiore od uguale alla somma dei valori in output
(non si pu spendere pi di quanto si possieda). Nel caso che questa somma sia strettamente
maggiore, la differenza considerata una commissione che sar reclamata dal primo utente
che valider la transazione (come spiegheremo meglio in seguito). Di fatto quindi ogni utente
pu decidere se pagare un costo di commissione e quanto pagare. Le transazioni con
commissioni assenti potrebbero per essere ignorate dai validatori rendendo la validazione
delle relative transazioni pi lenta (o addirittura impossibile). Non esiste un valore troppo
basso per una commissione, infatti anche se la commissione molto bassa sar comunque un
guadagno per il validatore. Vedremo che questo guadagno a costo zero (cio validare pi
transazioni per il validatore ha lo stesso costo di validarne una sola) e quindi sempre
conveniente per il validatore. Se il valore in input maggiore della somma del valore in output
che lutente deve pagare e delle commissioni che lutente sceglie di pagare, il valore restante,
detto resto, pu essere recuperato dallutente inviandolo attraverso un output ad un
indirizzo da lui controllato.

Ogni transazione identificata univocamente dallhash della transazione stessa, quindi


negli inputs si usa lhash delle transazioni da utilizzare invece delle transazioni stesse. Per
ogni input il proprietario dellindirizzo usato in quellinput calcoler la propria firma digitale
(calcolata sul contenuto della transazione corrente) utilizzando la sua chiave privata. Questa
firma e la sua chiave pubblica saranno aggiunte alla transazione. Questa lunica volta che la
chiave pubblica nota poich necessaria per verificare la firma e, come abbiamo detto in
precedenza, non possibile ricavarla dallindirizzo pubblico. Chiunque pu usare la chiave
42

pubblica per verificare che la firma sia corretta e pu poi ricavare lindirizzo pubblico
applicando le due hash suddette alla chiave pubblica e controllare che sia lo stesso della
transazione firmata. Ogni transazione contiene un riferimento (lhash identificativa) delle
transazioni da dove sono presi i fondi, questo crea una catena (che in realt un albero a
causa degli input e output multipli) che documenta il passaggio di valore dal proprietario
originale fino al proprietario corrente.

Dalla spiegazione precedente possiamo osservare come, di fatto, non esista nessuna
moneta che venga scambiata tra gli utenti, non c cio il passaggio di una quantit di monete
da un utente allaltro. Le monete sono implicite e sono implicitamente rappresentate dal
passaggio di valore attraverso le transazioni. Una moneta bitcoin una transazione (che
contiene le hash delle transazioni precedenti e quindi mantiene implicitamente tutta la
propria storia).

Figura 2.1 catena delle transazioni (per semplicit con input e output singoli)

Abbiamo detto che la firma dei mittenti calcolata sul contenuto della transazione.
Ma opportuno spiegarci meglio su cosa venga di fatto firmato. La scelta pi ovvia consiste
nel firmare lintera transazione. Questo per non possibile perch la transazione contiene
nel mezzo la firma stessa, inoltre se la transazione ha pi inputs la transazione dovr
contenere tutte le loro firme. Questo introduce un problema di malleability. In crittografia si
dice che un messaggio malleabile se pu essere modificato dopo che stato firmato, senza
invalidare la firma. Le transazioni sono quindi malleabili, poich non tutte le informazioni
43

della transazione contribuiscono alla firma. Chiaramente la firma stessa non firmata, quindi
malleabile. Cambiare la firma porterebbe ad una transazione invalida, ma possibile
cambiare la rappresentazione della firma20. La firma sarebbe sempre valida ma rappresentata
diversamente, quindi lhash della transazione sarebbe diversa21. Potremmo quindi avere due
o pi transazioni identiche ma con hash diversa. Poich lhash di un oggetto utilizzata come
identificativo delloggetto, questo potrebbe provocare dei problemi. Chiariamo che la firma
calcolata considerando sia le transazioni in input che tutti gli output con i loro valori associati,
quindi la malleability non minaccia in nessun modo la correttezza delle transazioni. Ad oggi la
malleabilit un problema solo per alcuni client Bitcoin22 e per il suo utilizzo come vettore di
attacchi DDoS (vedi sezione 4.4.3).

2.3 Mining

Abbiamo visto nella sezione precedente cosa sia una transazione e come permetta di
accertare se lutente che spende dei fondi ne il reale proprietario. Sorge per il problema di
impedire che un utente spenda i fondi ottenuti da una stessa transazione pi volte (detto
problema del double-spending). Vogliamo cio impedire che un utente usi una transazione
legittima a suo favore come input per pi di una transazione. La soluzione di Bitcoin
lutilizzo di una sorta di data base di tutte le transazioni avvenute. Il protocollo pensato per
funzionare su una rete peer to peer senza bisogno di stabilire legami di fiducia tra gli utenti,
quindi sorge il problema del mantenimento di questo data base.

La rete deve ricordarsi delle transazioni passate formando la storia globale delle
transazioni. Per fare questo molte transazioni vengono raggruppate in un blocco di
transazioni che aspetter di essere validato. Una volta che il blocco validato viene collegato
al blocco di transazioni precedenti cos da formare una catena di transazioni detta block-
chain. Pi precisamente i blocchi sono raggruppati in un albero come spiegheremo in seguito.


20 Bitcoin utilizza al libreria OpenSSL che abbastanza elastica sulla rappresentazione di questa firma.

21 Per ovviare a questo problema, dalla versione 0.8 di bitcoind le firme con rappresentazioni non standard
portano a considerare lintera transazione non standard e quindi accettata ma non inoltrata sulla rete (vedi
sezione 4.4.3).

22 Parleremo dellattacco a Mt.Gox basato sulla malleability nella sezione 1.3.3.


44

Un blocco costituito da unintestazione e dalla lista delle transazioni contenute nel


blocco. Lintestazione contiene il numero di versione del blocco, lhash del blocco precedente,
che permette di collegare tutti i blocchi in una catena, un timestamp della data di creazione, il
target del problema crittografico da risolvere per aggiungere il blocco alla catena, il nonce
trovato come soluzione di quel problema23 e lhash che forma la radice del merkel-tree in cui
sono organizzate le transazioni in ogni blocco.

Figura 2.2 campi contenuti nellintestazione di un blocco

Le transazioni sono organizzate in ogni blocco in un merkle-tree binario. Questa


struttura dati un albero binario che contiene in ogni foglia lhash di una transazione (tutte le
transazioni sono ordinate nellalbero con lo stesso ordine in cui sono descritte nel blocco). Se
le transazioni sono in numero dispari lultima hash copiata in una foglia aggiuntiva per
mantenere pari il numero di foglie. Ai livelli superiori ogni nodo ottenuto come hash della
concatenazione delle due hash contenute nei due nodi figli, ricordando che ad ogni livello con
numero di nodi dispari ricopiato lultimo nodo per mantenere pari il numero di nodi (tranne
che nella radice ovviamente). La radice quindi sar unhash che dipende da tutti i nodi
dellalbero e di conseguenza da tutte le hash delle transazioni (che sono contenute nelle
foglie). Quindi qualsiasi cambiamento a qualsiasi transazione cambier il valore finale
dellhash nella radice.

Non necessario salvare questo intero albero nel blocco. Infatti basta salvare la radice
nell'intestazione del blocco (come gi detto per garantire che non avvengano modifiche alle
transazioni) e la lista ordinata delle transazioni. Per verificare la correttezza dell'hash nella
radice, qualsiasi utente pu calcolare le hash necessarie a partire dalla lista delle transazioni e

23 Spiegato in seguito.
45

costruirsi cos i nodi interni. Grazie all'uso del merkle-tree si possono anche usare tecniche
opzionali per ridurre le dimensioni dei blocchi pi vecchi della catena. Quando una
transazione ha ricevuto un numero sufficiente di conferme (vedi dopo per capire cosa si
intenda con il termine conferme) l'albero contiene ancora la storia di tutte le transazioni che
l'hanno generata. Solo quest'ultima transazione per potr dover essere usata per controlli
futuri (nel caso che venisse usata come input di una futura transazione). Se quindi accettiamo
come valida questa transazione possiamo dimenticare tutte le transazioni precedenti
utilizzate per verificarla. Questosservazione complicata dalla presenza di transazioni con
input e output multipli, ma comunque valida se si considerano vecchie solo quelle
transazioni in cui tutti gli output presenti sono usati come input di transazioni successive
confermate. Poich le transazioni sono salvate nei blocchi in un merkle-tree, possiamo
cancellare dal blocco le transazioni stesse e sostituirle con le proprie hash, o con la hash del
nodo padre se entrambi i figli di quel nodo padre sono hash (cio sono state cancellate tutte le
foglie-transazioni discendenti da quel nodo). Con questa tecnica diminuiamo le dimensioni del
blocco24 senza modificare l'hash contenuta nella radice e quindi senza compromettere la
validit del blocco.


24 Un blocco costituito da poche informazioni fisse (l'intestazione del blocco) di dimensioni molto contenute
(81 byte) e da numerose transazioni di dimensioni proporzionalmente molto maggiori. Quindi le transazioni
di fatto sono le sole a contribuire alle dimensioni del blocco ed eliminarle genera, in proporzione, grandi
risparmi di spazio.
46

Figura 2.3 esempio di compressione di un blocco tratto da [1]

I nuovi blocchi possono essere creati da qualsiasi utente della rete che viene
denominato miner. Ogni nuovo blocco richiede una proof-of-work (vedi sezione 3.3)
computazionalmente costosa per essere aggiunto alla catena e quindi ogni utente che
aggiunge un nuovo blocco riceve come incentivo dei nuovi bitcoins. Lincentivo serve a
ripagare il miner dei costi (computazionali ed energetici) spesi dal miner per validare il
blocco. Lidea alla base della ricompensa che il miner fa del bene alla comunit aiutandola a
validare delle transazioni ed in cambio la comunit aiuta il miner con dei nuovi bitcoins.
Questi sono bitcoins freschi e mai esistiti prima che aumentano il numero globale di bitcoins
in circolazione. Poich il progetto di Bitcoin prevede di proteggere la valuta dallinflazione le
ricompense decrescono nel tempo, per garantire un tetto al numero massimo di bitcoins
disponibili. In origine ogni minatore otteneva una ricompensa di 50 BTC per ogni blocco ma
questo valore si dimezza ogni 210.000 blocchi aggiunti alla catena. Poich ogni bitcoin
divisibile fino a 10-8, quando sar aggiunto il 6.930.000 blocco la ricompensa sar di 0 BTC e
quindi cesser. Il numero massimo di bitcoins possibili in circolazione quindi di
20.999.999,97690000 BTC . A causa del dimezzamento progressivo delle ricompense, il
numero di bitcoins in circolazione segue una curva logaritmica e quindi ha una crescita molto
lenta nel lungo periodo. Nella pratica gi nel 2027 il numero totale di Bitcoin in circolazione
avr superato i 20.000.000 BTC. In seguito spiegheremo che il protocollo cerca di mantenere
la generazione di ogni nuovo blocco in media ogni dieci minuti, quindi 210.000 blocchi sono
aggiunti in media ogni quattro anni (6 x 24 x 365 x 4 = 210.240). Il 6.930.000 blocco sar
raggiunto tra meno di 132 anni dallinizio di Bitcoin (gennaio 2009) e quindi poco dopo il
2140 (6.930.000 / (6 x 24 x 365) = 131,8).
47

Figura 2.4 evoluzione del numero complessivo di bitcoins disponibili nel tempo

Si usa il termine miner poich il processo simile a una miniera doro. Ogni minatore
(miner) concentra i propri sforzi nel compito gravoso di scavare nella roccia (trovare la porof-
of-work) sperando nella ricompensa di aggiudicarsi una nuova pepita (i nuovi bitcoins). Nel
seguito della dissertazione useremo quindi i termini classici del gergo di Bitcoin: miner o
minatore per rappresentare un utente che lavori alla validazione di un blocco; blocco
estratto o scavato per indicare un nuovo blocco validato da un miner.

Oltre ai nuovi bitcoins creati il miner colleziona anche tutte le commissioni delle
transazioni racchiuse nel suo blocco. In ogni blocco quindi la prima transizione una
transazione speciale detta coinbase (o generatrice) che non ha input e ha somma degli
output di valore pari alla ricompensa pi la somma di tutte le commissioni delle transazioni
del blocco (questo valore pu essere diviso, come in una normale transazione tra pi output).
Le commissioni sono state introdotte con lo scopo di mantenere gli incentivi a estrarre nuovi
blocchi anche quando sar raggiunto il limite massimo e non saranno pi create nuovi
bitcoins per i minatori. La ricompensa sar allora completamente sostituita (anzich
integrata) dalla somma delle commissioni.

Dopo aver raccolto delle transazioni e creato un nuovo blocco corretto che le contiene
ogni miner inizia una gara con gli altri miners per riuscire ad aggiungere per primo il blocco
alla catena ed aggiudicarsi cos la ricompensa. Per aggiungere il blocco alla catena, un miner
deve prima risolvere il seguente problema :
48

il nodo calcola l'hash dell'intestazione del blocco contenente un nonce da lui scelto. Se questa
hash minore o uguale di un target prefissato (noto a tutti i nodi e indicato nell'intestazione
del blocco) allora il problema risolto e il blocco pu essere aggiunto alla catena (il miner ha
vinto). Se lhash non minore allora il miner deve scegliere un nuovo nonce e riprovare fino a
trovare un nonce corretto o finch un altro minatore lo precede aggiungendo un nuovo blocco
alla catena, nel qual caso il miner ha perso e la sfida re-inizia da capo con un nuovo blocco.
Notiamo subito come non venga calcolata l'hash dell'intero blocco ma solo della sua
intestazione. Questo comunque sufficiente a rendere il blocco non modificabile (ossia
tamper-proof) poich l'intestazione contiene sia il puntatore (cio l'hash) del blocco
precedente che la radice del merkle-tree del blocco corrente. Poich la radice del merkle tree
contribuisce all'hash del blocco, indirettamente contribuiscono a questa hash tutte le
transazioni del blocco. Anche minime modifiche ad una sola transazione producono un'hash
nella radice del merkle-tree completamente diversa e quindi un'hash dell'intero blocco
completamente diversa.

Il target stabilito per garantire che in media sia aggiunto alla catena un nuovo blocco
ogni dieci minuti. Per ottenere questo, il target aggiornato ogni 2016 blocchi aggiunti, cio in
media ogni due settimane (6 x 24 x 14 = 2016) aumentandolo se la difficolt eccessiva (cio
in media i blocchi sono aggiunti pi lentamente di dieci minuti) o diminuendolo, per
aumentare la difficolt, se i blocchi sono aggiunti troppo rapidamente. Per evitare grandi
cambi di difficolt il target non comunque mai modificato (aumentando o diminuendo la
difficolt) per un fattore maggiore di quattro rispetto al target precedente. Il target
modificato quindi seguendo la seguente formula:

La probabilit di vincere una gara di mining dipende solo dalla porzione di potenza di
calcolo dellintera rete posseduta. Infatti poich lhash usata (SHA-256) unhash crittografica
non possibile prevederne il risultato al variare dellinput e quindi lhash trasforma di fatto le
informazioni date in input in un numero casuale equiprobabile tra 0 e (2256)-1. Quindi la
probabilit per un nodo di estrarre un nuovo blocco pari a target/2256. Se ogni miner usa
nonce casuali allora qualsiasi nonce ha le stesse probabilit di fornire un risultato corretto. Se
alcuni miner usassero tutti lo stesso generatore pseudo - casuale per ottenere i propri nonce
49

sembrerebbe che un altro miner potrebbe basare la propria scelta dei nonce da provare su
questa informazione ed aumentare cos le proprie possibilit di risolvere il problema per
primo (a parit di risorse impiegate) ma non cos. Anche se due o pi miner provassero gli
stessi nonce, i blocchi che cercherebbero di verificare sarebbero comunque diversi
(quantomeno per lindirizzo a cui inviare la ricompensa), e quindi, poich anche i blocchi
contribuiscono al valore dellhash e in unhash crittograficamente sicura minime variazioni
nellinput producono output completamente diversi, i valori trovati sarebbero diversi. Quindi
lunico modo in cui un miner pu aumentare le proprie possibilit di risolvere il problema per
primo di aumentare la propria potenza di calcolo rispetto ai concorrenti. Storicamente si
osserva come i miners tendano ad unirsi in gruppi o pool ed i nuovi miner si uniscono a pool
preesistenti. Questi pool sono direttamente democratici e tutti i miner concorrono con le
proprie risorse a controllare una proporzione assegnata di nonce. Quando un pool estrae un
nuovo blocco, ogni miner riceve una percentuale del profitto pari alla percentuale delle
risorse da lui utilizzate (rispetto alle risorse complessive dell'intero pool). Aggregarsi in un
mining pool non aumenta la probabilit del singolo minatore di estrarre un blocco n il suo
guadagno atteso (in senso probabilistico) ma aiuta il minatore ad abbassare la varianza (il
minatore guadagna stabilmente molto poco anzich raramente tanto).

Riassumiamo quindi il comportamento di un miner (o mining pool). Ogni minatore


ascolta la rete, raccoglie le transazioni che riceve, ne controlla la validit e crea un nuovo
blocco che le contenga. Come vedremo, infatti, le transazioni vengono inviate in broadcast
dagli utenti che le generano a tutti gli altri utenti della rete. Il minatore pu decidere di
rifiutare arbitrariamente alcune transazioni (ad esempio quelle senza commissioni), ma
queste saranno prima o poi raccolte da altri miner che cercheranno di inserirle nei propri
blocchi e quindi, anche se rallentate, potranno comunque entrare nella block-chain ed essere
quindi considerate valide. Notiamo che la difficolt del problema computazionale
assolutamente indipendente dalla dimensione del blocco, che dipende dal numero di
transazioni che contiene, poich l'hash del blocco non calcolata sulle transazioni stesse ma
solo sulla radice del merkle-tree che le rappresenta. Quindi aggiungere pi transazioni nella
creazione di un blocco non svantaggia il miner, anzi in genere lo avvantaggia perch gli
permette di raccogliere pi commissioni. Una volta costruito il blocco il miner inizia a cercare
la prook-of-work per il proprio blocco. Se il miner la trova prima di ricevere da altri nodi la
comunicazione di un nuovo blocco corretto (generato da un miner pi veloce), allora stato il
primo a risolvere il problema e invia il suo blocco in broadcast sulla rete. Gli atri utenti (miner
50

o meno) vengono a conoscenza del nuovo blocco e, dopo aver verificato che sia corretto, lo
aggiungono alla propria catena. I miner che ricevono un blocco corretto prima di aver finito di
scavare, interrompono la ricerca della prook-of-work del loro blocco, aggiungono il nuovo
blocco alla catena e iniziano ad estrarre un blocco nuovo (che conterr l'hash dell'ultimo
blocco della catena e quindi del nuovo blocco appena inserito). Chiaramente prima di inserire
un nuovo blocco in cima alla propria catena ogni utente verifica che questo blocco sia corretto.
Per farlo controlla che la prook-of-work sia valida (con il nonce ed il target inseriti
nell'intestazione del blocco) e che il campo contenete l'hash del blocco precedente
corrisponda all'hash del blocco in testa alla catena. A volte pu capitare che ci non sia vero e
in questo caso il blocco detto orfano, questo pu essere dovuto ad un blocco invalido
oppure appartenente ad un'altra catena (come vedremo quando tratteremo di biforcazioni).
In alternativa l'utente pu non essere ancora a conoscenza di uno o pi blocchi intermedi e
dovr aspettare di recuperare questi blocchi prima di espandere ulteriormente la catena. Ogni
utente controlla anche che le transazioni contenute nel nuovo blocco siano valide e
compatibili con la storia delle transizioni passate salvata nel resto della catena. In altre parole
controllano che i fondi usati nelle transazioni esistano davvero, appartengono al giusto
indirizzo e non siano stati gi spesi. Seguendo queste regole il nuovo blocco appena estratto,
se corretto, raggiunge tutti gli utenti aggiornando cos la catena distribuita. I nodi dimostrano
di accettare il nuovo blocco iniziando a cercare nuovi blocchi da aggiungere all'ultimo
estratto, di fatto quindi votano usando la propria potenza di calcolo di miners.

2.4 Biforcazioni

Pu capitare che casualmente (o intenzionalmente) due nuovi blocchi distinti (ed


entrambi corretti) vengano estratti quasi contemporaneamente e che a causa dei ritardi della
rete alcuni nodi ricevano prima il primo blocco ed alcuni prima il secondo. I primi
estenderanno la propria catena con il primo blocco mentre gli altri aggiungeranno il secondo,
creando una cosiddetta biforcazione (fork) della catena. Le regole del protocollo
stabiliscono che in presenza di una biforcazione ogni nodo deve seguire la catena pi lunga25,

25 La lunghezza di una catena calcolata come combinazione della difficolt di tutti blocchi che compongono la
catena e non semplicemente come numero di blocchi. Questo corretto poich la catena con difficolt
maggiore realizzata dalla maggioranza delle risorse e quindi ha pi voti dellaltra.
51

oppure a parit di lunghezza deve accettare il primo blocco di cui venuto a conoscenza ma
deve salvare anche il secondo (nel caso in futuro la sua catena superasse in lunghezza quella
del primo). Dopo una biforcazione alcuni miners lavoreranno su una versione della catena
mentre altri sull'altra ma uno dei due gruppi riuscir ad estrarre un nuovo blocco per primo
rendendo il proprio ramo della catena il pi lungo26. Gli altri utenti, appena venuti a
conoscenza del nuovo blocco, si accorgeranno che la sua catena pi lunga e quindi
abbandoneranno il ramo corto. La rete ritorner cos ad usare un'unica catena non biforcata. I
blocchi del ramo che seccato saranno di fatto irraggiungibili e quindi dimenticati ma la
stessa sorte non toccher alle transazioni in loro contenute. Le transazioni del ramo potato,
non contenute gi in qualche blocco della catena legittima, saranno viste dai miners come non
ancora verificate27 e quindi raccolte, e validate, nei futuri blocchi. necessario che tutti gli
utenti concordino su ununica catena poich la catena rappresenta la storia delle transazioni e
quindi rami diversi porterebbero a diverse ripartizioni dei fondi degli utenti.

Poich la catena contiene la storia di tutte le transazioni, qualsiasi tentativo di double


spending sar riconosciuto e non accettato. Questo non per vero se siamo in presenza di
una biforcazione della catena. Infatti un utente potrebbe spendere gli stessi fondi una volta su
un ramo ed una volta sullaltro. Poich ogni utente accetta una sola catena laltro ramo da lui
ignorato. I due riceventi controllano quindi la propria catena (che differisce nellultimo blocco
a causa della biforcazione), vedono entrambi la nuova transazione come legittima perch
contenuta nellultimo blocco che valido, e quindi finalizzano lacquisto (spedendo le merci,
corrispondendo un servizio o atro). Prima o poi uno dei due rami sar potato, quindi una sola
delle due transazioni in conflitto sar valida (quella contenuta nel ramo sopravvissuto). Ma se
lutente vittima della transazione non pi valida aveva gi inviato le merci, o comunque gi
accettato il pagamento, si vedr questo pagamento non pi valido. Quindi il nodo fraudolento
sar riuscito ad ottenere un beneficio gratuito. Un utente fraudolento pu provare questo
attacco anche se non esiste una biforcazione provocando lui artificialmente una biforcazione
nella catena immediatamente prima del blocco contenente la transazione di cui ha ottenuto i
benefici e che vuole annullare. Per fare questo lutente dovr tentare di estrarre un nuovo


26 Anche nella rara eventualit in cui i due rami continuino a crescere alla stessa velocit, prima o poi uno
dei due prender il sopravvento portando all'estinzione dell'altro ramo.

27 Le transazioni che erano gi state verificate solo in un blocco del ramo potato, non essendo contenute in
nessun blocco valido dell'attuale catena, non sono considerate da questa verificate.
52

blocco valido contente la seconda transazione (del tentativo di double spending) e attaccarlo
alla catena al posto del blocco corrente contenente la transazione da annullare. Lattaccante
per in svantaggio perch, nel frattempo, tutti gli altri minatori onesti stanno lavorando alla
catena pi lunga che quella con la transazione originale. Quindi a meno di avere una potenza
di calcolo preponderante su tutti i nodi onesti messi insieme, il suo attacco fallir. Lattaccante
pu usare una tecnica pi intelligente. Prima comunica la prima transazione alla rete cos che
qualche miner la includa in un blocco nuovo e lavori per validarlo. Poi da solo crea la seconda
transazione e la inserisce in un blocco valido da lui costruito iniziando a cercare la proof-of-
work per questo blocco. Se lattaccante ha risorse sufficienti riuscir a estrarre il proprio
blocco segreto in un tempo minore di quello impiegato dai miner onesti per estrarre il blocco
contenente la prima transazione. Egli quindi comunicher subito il proprio blocco segreto cos
che una parte della rete venga a conoscenza del blocco dei miner onesti e una parte di quello
dellattaccante. Di fatto lattaccante ha creato una biforcazione premeditata.

Osserviamo come un attacco di tipo double-spending si pu tradurre nella possibilit


dellattaccante di annullare una propria transazione, invece di inviare gli stessi fondi in
pagamento a due mercanti diversi (come il nome spesa ripetuta pu suggerire). Infatti
lattaccante prova lattacco con una transazione legittima (che vuole poi annullare) e
costruisce la seconda transazione usando gli stessi input della prima ed indirizzando loutput
ad un proprio indirizzo. Di fatto se lattacco ha successo la transazione che indica il pagamento
al venditore viene sostituita da una transazione in cui lattaccante paga se stesso. Notiamo
inoltre che in questo tipo di attacco lattaccante pu usare solo i propri indirizzi e quindi
tentare di modificare solo le proprie transazione e non quelle degli altri utenti. Lattaccante
non conosce le chiavi segrete dei pagamenti di altri utenti e quindi non pu creare delle copie
alternative delle loro transizioni poich la firma non sarebbe valida.

La riuscita del double-spending finora trattato, si basa sul presupposto che gli utenti
considerino legittima una transazione se compare nella catena, indipendentemente da quanto
sia recente il blocco in cui compare. Pi un blocco in profondit nella catena e pi bassa la
probabilit che quel blocco finisca in un ramo potato della catena a causa di una biforcazione
accidentale o volontaria. Il protocollo raccomanda quindi di aspettare sei conferme prima di
accettare una transazione come valida. Sei conferme significa che la transazione deve
comparire in un blocco che sia seguito da almeno altri cinque blocchi gi validati nella catena.
Vediamo perch questo corretto. Ipotizziamo che un attaccante voglia cambiare una
53

transazione nella catena contenuta in un blocco che non sia lultimo blocco inserito. Per fare
questo deve creare una biforcazione prima del blocco contenente la transazione e poi
ricostruire la catena su questo nuovo ramo. Affinch il ramo dellattaccante sia quello
accettato dagli altri nodi deve essere il ramo pi lungo, ma lattaccante subito in difficolt
perch gli altri nodi continuano ad aggiungere nuovi blocchi al vecchio ramo della catena
(perch pi lungo di almeno un blocco di quello dellattaccante). Probabilisticamente se
lattaccante ha meno potenza di calcolo di quella posseduta da tutti i nodi onesti mesi insieme,
il divario tra le due catene potr solo aumentare, lasciando il ramo dellattaccante sempre pi
corto di quello onesto e portando al fallimento dellattacco. Per studiare formalmente la
probabilit di successo di questo tipo di attacco seguiamo il ragionamento in [1] .

Abbiamo una gara tra le due catene: la catena dellattaccante inizia svantaggiata di
almeno un blocco e vince se riesce a sorpassare in lunghezza la catena onesta. Questa gara
pu essere rappresentata come una Random Walk binomiale. Levento successo si verifica
quando la catena onesta incrementata con un nuovo blocco, aumentando la distanza dalla
catena avversaria di uno. Levento fallimento si verifica quando la catena dellattaccante
incrementata di un blocco, riducendo la distanza tra le due catene di uno. Siamo quindi in
presenza di una forma di problema detto Rovina del giocatore, in cui il giocatore (la catena
dellattaccante) cerca di pareggiare il guadagno partendo da una situazione di perdita. La
probabilit Px che la catena dellattaccante raggiunga la stessa lunghezza della catena onesta
partendo con X blocchi di svantaggio espressa dalla seguente formula:

(2.1)

In cui p rappresenta la probabilit che un nodo onesto estragga un nuovo blocco,


incrementando la lunghezza della catena onesta, e q rappresenta la probabilit che
lattaccante trovi un nuovo blocco, allungando la propria catena. Ricordiamo che le due
probabilit p e q dipendono solo dalla frazione di potere computazionale totale di tutti i miner
posseduti rispettivamente dai miner onesti e dallattaccante.

Il caso in cui p<q corrisponde quindi al caso in cui lattaccante controlli pi potere
computazionale di tutti i minatori onesti messi insieme. In questo caso lattaccante ha la
maggioranza dei voti come intesi in precedenza e quindi sar sempre lui a controllare e
54

decidere sulla catena. Tale attaccante di fatto il padrone della catena e pu biforcarla
volontariamente in qualsiasi momento, per eliminare i blocchi estratti dai nodi onesti.
Discuteremo dei rischi legati a questa situazione nella sezione 4.1.1.

Ipotizziamo quindi che q<p . In questo caso la probabilit di successo dellattacco


diminuisce esponenzialmente con il numero di blocchi X che lattaccante ha di svantaggio.
Quindi lattacco fallir con probabilit esponenzialmente maggiore nel numero dei blocchi di
differenza, cio nella profondit iniziale della transazione nella catena.

Cerchiamo di capire ora quale sia il numero X che rappresenta un buon compromesso
per ritenere lattacco impraticabile. Ricordiamo che X rappresenta il numero di blocchi che
devono essere aggiunti sopra un blocco prima di ritenerlo non pi modificabile nella catena.
Quindi un utente dovr aspettare X blocchi prima di accettare una transazione, o in altre
parole dovr aspettare X+1 conferme. Questo si traduce in lunghi tempi dattesa se X
troppo grande, poich ricordiamo che ogni nuovo blocco aggiunto in media ogni dieci
minuti, e quindi una verifica richiede almeno X10 minuti di attesa.

Appena l'attaccante ha creato la transazione (che vuole annullare) inizia a lavorare ad


una nuova catena di blocchi che dovr rimpiazzare il blocco onesto con la transazione e tutti
gli X blocchi aggiunti sopra di lui dai minatori onesti. Quando X blocchi onesti sono stati
aggiunti alla catena il ricevente ritiene il pagamento confermato e quindi finalizza l'acquisto
(ad esempio spedendo le merci). Adesso l'attaccante pu lanciare il suo attacco comunicando
il suo ramo della catena. L'attacco segue una distribuzione di poisson, dove
ogni evento rappresentato dalla scoperta da parte dell'attaccante di un nuovo blocco ed il
tempo degli eventi rappresentato dal tempo impiegato dai nodi onesti ad aggiungere gli X
blocchi. Il valore medio della distribuzione sar = (cio il numero di blocchi per la
probabilit che l'attaccante trovi un blocco prima dei minatori onesti). Adesso vogliamo
calcolare la probabilit che l'attaccante riesca a sorpassare la catena onesta e quindi portare a
termine l'attacco. Ragioniamo al contrario e calcoliamo la probabilit che l'attacco fallisca.
Sappiamo dalla formula della distribuzione binomiale precedentemente spiegata, che, se
l'attaccante ha uno svantaggio di Y blocchi, allora la probabilit che l'attaccate superi la catena
onesta pari a (q/p)Y . Quindi la probabilit che l'attacco fallisca pari a 1-(q/p)Y . Non
sappiamo quanti blocchi abbia gi estratto l'attaccante, cio non sappiamo quanto sia il valore
di Y della precedente formula, ma usando la distribuzione di poisson possiamo calcolare la
probabilit che si trovi in ogni stato (dove per stato sintende il numero di blocchi che
55

riuscito a estrarre finora). Ricordiamo che la differenza di lunghezza delle catene all'inizio
dell'attacco varia tra Y = X, nel caso che l'attaccante abbia estratto gi tutti gli X blocchi
necessari, e Y = 0, nel caso che l'attaccante non abbia ottenuto ancora nessun blocco. Adesso
possiamo moltiplicare la probabilit che l'attaccante si trovi in ciascuno stato per la
probabilit che l'attacco fallisca da quello stato ottenendo la seguente formula:

Quindi otteniamo la probabilit che l'attacco abbia successo con la seguente formula:

Se tracciamo un grafico dei valori di questa probabilit al variare del numero di blocchi X e
della percentuale della potenza di calcolo totale del sistema posseduta dall'attaccante (che
rappresenta la probabilit q della precedente formula). Otteniamo il grafico sottostante.

Figura 2.5 grafico della probabilit di successo di un attacco in funzione del numero di
56

blocchi di svantaggio dellattaccante e della frazione della potenza di calcolo totale posseduta
dallattaccante

Dal grafico si vede facilmente come la probabilit diminuisca esponenzialmente


all'aumentare del numero di conferme richieste. Si nota anche come la scelta di aspettare sei
conferme non dia buone garanzie contro attaccanti che dispongano di considerevoli potenze
di calcolo. Un attaccante che possegga il 30% della potenza di calcolo totale della rete pu
riuscire a cambiare una transazione ritenuta sicura (cio con sei conferme) con probabilit
pari a 0,1321. Questo vuol dire che in media il 13% dei tentativi dellattaccante sono un
successo. Bisognerebbe aspettare pi di ventidue conferme per avere una probabilit di
successo dellattacco minore dello 0,1%. Se lattaccante dispone del 40% delle risorse totali di
calcolo allora riuscir a cambiare un transazione confermata pi del 50% delle volte. per
inutile preoccuparsi di attacchi double spending da questo tipo di attaccante, vedremo infatti
nel capitolo sugli attacchi (vedi sezione 4.1.1) che un attaccante con cos tanta potenza di
calcolo pu eseguire attacchi pi devastanti (e per lui vantaggiosi) di un semplice tentativo di
double spending. Nel caso di attaccanti con potenze di calcolo pi realistiche, cio inferiori al
20% del totale, si vede come lattesa di sei conferme garantisca una sicurezza accettabile per
somme moderate. In caso di transazioni che riguardino fonti consistenti lutente pu decidere
di aspettare pi conferme delle sei standard. Come abbiamo per gi detto ogni conferma
ritarda l'accettazione della transazione in media di dieci minuti, quindi conferme pi sicure
potrebbero diventare insostenibilmente lente. Gli sviluppatori hanno ritenuto sei conferme un
compromesso accettabile in generale, ma qualsiasi utente pu scegliere di attendere un
numero di conferme maggiore (quando ad esempio sono in gioco somme elevate).

2.5 Verifica Semplificata SPV

Osserviamo, per chiarezza, che teoricamente il sistema lavora su di ununica storia


delle transazioni e quindi ununica catena comune. Di fatto ogni blocco ha la propria catena
che, a meno di biforcazioni o attese di trasmissione per ricevere gli ultimi blocchi, uguale
alle catene della maggioranza degli altri utenti. I nuovi utenti, o gli utenti che si disconnettono
per un lungo periodo dalla rete, richiedono la catena agli altri nodi ed accettano la catena pi
lunga di cui vengono a conoscenza (che sar anche la catena corretta28). Questa catena pu


28 Questo vero a meno di attacchi che mirino ad isolare il nodo illudendolo di essere parte della rete ma in
realt collegando la vittima a soli nodi zombie dell'attaccante che comunichino al nodo solo le informazioni
57

per raggiungere dimensioni considerevoli ed in questo caso si pu usare la tecnica di


compressione dei vecchi blocchi discussa in precedenza (vedi sezione 2.3). Non tutti i nodi
per hanno bisogno di conoscere l'intera catena. Alcuni nodi potrebbero essere spesso non
connessi per poi connettersi solo per verificare che le transazioni effettuate a loro favore
siano corrette o per effettuare delle transazioni essi stessi. Se il nodo vuole effettuare una
transazione, gli basta costruirla e firmarla correttamente per poi inviarla in broadcast sulla
rete. Sar poi compito di un miner raccoglierla e includerla in un nuovo blocco. Il nodo
potrebbe poi limitarsi a connettersi per ascoltare ogni tanto la rete in attese della conferma
che la sua transazione sia stata validata in un nuovo blocco. Se il nodo vuole controllare una
transazione con un pagamento a suo favore ha invece bisogno di controllare che la
transazione sia corretta. Un nodo pu utilizzare un metodo chiamato Verifica di pagamento
semplificata (Simplified Payment Verification o SPV). Il nodo prima richiede ad un'altro nodo
della rete le intestazioni di tutti i blocchi della sua catena pi lunga (il nodo pu anche
chiedere solo le prime n intestazioni pi recenti, con n sufficientemente grande). Il nodo
chiede solo le intestazioni, che hanno dimensioni molto contenute, e non i blocchi interi.
L'intestazione di un blocco ha, infatti, dimensione fissa di 81 byte mentre un blocco intero pu
raggiungere 1 Mbyte di dimensioni29. Il nodo controlla quindi che la catena sia correttamente
collegata (cio che l'hash del blocco precedente contenuta nell'intestazione di un blocco sia
corretta) e che le proof-of-work siano valide (cio che l'hash dell'intestazione sia minore del
target in essa contenuto). Adesso il nodo ha la certezza che la catena sia corretta, anche se non
sa le transazioni che contiene. Il nodo poi chiede all'altro nodo, possessore della catena
completa, tutte le transazioni che soddisfano un determinato pattern. Quindi se l'utente
vuole verificare una transazione a suo favore chieder tutte le transazioni che contengono il
suo indirizzo tra gli output. Come risposta il nodo otterr le transazioni richieste insieme al
ramo del merkle-tree fino alla radice del blocco che le contiene. Il nodo pu quindi leggere la
transazione e ricalcolare le hash del merkle-tree per verificare che siano corrette, oltre a
controllare che lhash calcolata nella radice sia uguale alla radice contenuta nell'intestazione
del blocco corrispondente. Notiamo come il nodo non possa controllare che la transazione sia
valida, poich non conosce l'intera catena delle transazioni. Non pu ad esempio controllare

scelte dall'attaccante, tra cui un ramo falso (ma pur sempre corretto) della catena. Infatti un nodo non
accetter mai blocchi non validi.

29 Ma non dimensioni maggiori, poich il protocollo stabilisce che la dimensione massima di un blocco debba
essere di 1 Mbyte
58

che le transazioni indicate tra gli input siano corrette. Il nodo per sa che se qualche minatore
ha incluso la transazione in quel blocco, e quel blocco poi stato incluso nella catena pi
lunga, allora quella transazione stata giudicata corretta da tutti gli utenti che hanno lavorato
a quella catena (che sono al maggioranza degli utenti se la catena la pi lunga). Notiamo
infine come questa tecnica di verifica riduce la privacy dellutente che la utilizza, infatti il nodo
comunica ad uno sconosciuto quali informazioni vuole vedere, rivelando quale siano gli
indirizzi che gli interessano.

Figura 2.6 - esempio di verifica di pagamento semplificata tratto da [1]

Un attaccante per ingannare l'utente dovrebbe creare una finta catena di blocchi (senza
transazioni) che contengano la transazione cercata dall'utente. Per difendersi da questo
attacco l'utente potrebbe scegliere di considerare valide solo transazioni con un numero
sufficienti di blocchi successivi al blocco in cui sono contenute. Questo numero di blocchi
dovrebbe essere scelto tale che il costo delle proof-of-work necessarie a generare i finti
blocchi sia superiore al guadagno ottenuto dall'attaccante nell'ingannare l'utente. Questo tipo
di attacco pu sembrare uguale ad un attacco di tipo double-spending, ma esiste una
fondamentale differenza. L'attaccante pu creare una transazione completamente fasulla,
utilizzando ad esempio fondi inesistenti tra gli input della transazione. Questo non sarebbe
possibile contro un nodo che conosca tutta la catena, infatti l'utente riconoscerebbe subito la
transazione come non valida controllando la correttezza delle transazioni in input. In un
attacco di tipo double spending l'attaccante pu utilizzare solo fondi che gli appartengano
davvero, con il rischio di vedersi la transazione confermata ed i fondi trasferiti se l'attacco
59

fallisse. In un attacco ad un nodo che utilizzi la verifica di pagamento semplificata, l'attaccante


pu costruire una transazione fasulla senza rischi di perdere bitcoins in caso di fallimento
dell'attacco. In entrambi i casi l'attaccante dovrebbe comunque sostenere le spese delle proof-
of-work per costruire una catena fraudolenta. Infatti abbiamo gi osservato in precedenza che
trovare la proof-of-work di un blocco indipendente al numero di transazioni che contiene,
quindi trovare una proof-of-work per un blocco senza transazioni, cio per la sola
intestazione del blocco, ha la stessa difficolt di un blocco normale.

2.6 Network

Per poter partecipare alleconomia Bitcoin ogni utente deve essere connesso alla rete peer
to peer sottostante. Il protocollo specifica quali tipi di messaggi usare per le varie operazioni
sulla rete. Tutte le connessioni sono fatte su TCP.

Version: usato per creare una connessione con un altro peer della rete, comunicandogli la
propria versione. Prima che i due peers possano comunicare necessario completare
la procedura di handshake che consiste in un messaggio version e nel rispettivo
messaggio verack (se accettato).

Verack: il riconoscimento della versione, inviato in risposta al ricevimento di un


messaggio version. Questo messaggio termina la procedura di handshake.

Addr: serve a comunicare la lista dei nodi conosciuti nella rete.

Inv: serve a far sapere agli altri nodi di possedere un dato oggetto. Di solito usato per
comunicare alla rete che il nodo a conoscenza di un nuovo blocco o di una nuova
transazione, oppure per rispondere ad un messaggio getblocks. Il messaggio contiene
solo la lista di oggetti posseduti, non gli oggetti stessi. Per ottenere questi nuovi oggetti
gli altri nodi possono rispondere con messaggi getdata.

Getdata: usato come risposta ad un messaggio inv e serve a ottenere il contenuto di uno
specifico oggetto individuato dalla sua hash.

Getblocks: usato per chiedere come risposta un messaggio inv contenete le informazioni
su tutti i blocchi posseduti. Il messaggio pu specificare un hash per indicare di inviare
solo le informazioni sui blocchi successivi (cio pi recenti nella catena) a quellhash.
Di default sono comunicate le informazioni dei cinquecento blocchi pi recenti.
60

Notfound: inviato in risposta ad un messaggio getdata quando i dati richiesti non sono
disponibili.

Getheaders: usato per richiedere un messaggio headers per ricevere le intestazioni dei
blocchi della catena. Questo messaggio utilizzato dai nodi che eseguono una verifica
di pagamento semplificata, come spiegato in precedenza.

Headers: contiene intestazioni dei blocchi (con laggiunta, ad ogni intestazione, di un


contatore delle transazioni contenute nel blocco). usato come risposta ad un
messaggio getheaders.

Block: messaggio contenente un blocco. Inviato come risposta ad un messaggio getdata


che richiede un blocco.

Tx: messaggio contenente una transazione. Usato in risposta ad un messaggio getdata.

Getaddr: usato per richiedere ad un nodo la lita dei nodi che lui conosce nella rete. Il nodo
contattato risponder con uno o pi messaggi addr contenenti uno o pi peers da cui
ha avuto notizie da non pi di tre ore.

Ping: usato per notificare ai nodi connessi che il nodo ancora on-line.

Pong: usato come risposta ad un messaggio di ping.

Alert: usato per inviare notifiche tra i nodi. Il messaggio spesso inviato dagli sviluppatori
ed da loro firmato (la chiave pubblica per la verifica nota a tutti).

Vediamo ora come deve fare un utente per connettersi alla rete, comunicare e verificare
una transazione e ottenere la catena dei blocchi.

Per prima cosa il nodo deve connettersi ad almeno un peer della rete. I peer appartenenti
alla rete sono per la maggior parte molto dinamici, lasciando la rete e connettendosi in
continuazione. Se un utente non conosce gi lindirizzo di un peer prima di connettersi pu
utilizzare un indirizzo comunicatogli in automatico da un servizio apposito (se ad esempio
lutente cliente di un servizio di commercio on-line), oppure pu lanciare una richiesta DNS
su nomi noti (ad esempio bitseed.xf2.org) mantenuti da volontari, infine, come ultima risorsa,
nel codice contenuta una lista di indirizzi di backup (aggiornati ad ogni nuova versione) a
cui il peer pu connettersi per scoprire nuovi nodi della rete (per poi automaticamente
61

scollegarsi da qualsiasi indirizzo di backup per evitare di sovraccaricarli).

Una volta che il nodo ha scoperto uno o pi peers inizia il protocollo di handshake (stretta
di mano). Questo inizia con il nuovo nodo che invia un messaggio version contenente il suo
tempo e la sua versione attuale. Se laltro nodo accetta il numero di versione, risponder con
un messaggio verack contenente il suo numero di versione. Il nodo pu accettare ora la
versione dellaltro peer mandando a sua volta un messaggio verack e terminando cos la
procedura di handshake. Il nodo pu adesso iniziare a scambiare messaggi getaddr e addr per
scoprire nuovi peer della rete con cui stabilire una connessione. Ogni nodo ha un parametro
che definisce il numero minimo di connessioni desiderate30, e pu anche avere un parametro
per il numero massimo di connessioni accettate. Il nodo quindi cercher di connettersi a quel
numero di peers tentando a caso tra la lista di indirizzi di nodi noti. Un peer che abbia gi
raggiunto il suo numero di connessioni minimo non rifiuter per nuove richieste di
connessioni da altri nodi, quindi il numero totale di connessioni di ogni nodo pu superare,
anche di molto, il numero di connessioni minime stabilito.

Il nodo pu ora calcolare il proprio tempo della rete31 come la mediana di tutti i tempi
correnti comunicategli dagli altri peers (incluso il suo stesso tempo) nei messaggi version. Se
questo tempo distante dal tempo del peer corrente per pi di settanta minuti allora il nodo
imposter invece come tempo della rete il proprio tempo corrente. Il nodo invia anche un
messaggio addr contenente il proprio indirizzo ai propri vicini (e lo re-invia ogni ventiquattro
ore) per informarli che connesso alla rete.

Adesso che il nodo connesso ad alcuni nodi della rete pu finalmente comunicare agli
altri nodi la sua nuova transazione. Il nodo inizia inviando un messaggio inv per informare i
suoi vicini che conosce questa nuova transazione. I peer interessati richiederanno quindi i
dati completi della transazione (ricordiamo che i messaggi inv non contengono dati) con un
messaggio getdata a cui il nodo risponder con un messaggio tx. Questi controllano quindi la
transazione e, se corretta, la rendono nota ai loro vicini con un messaggio di tipo inv. Se la
transazione non corretta viene invece scartata e non ulteriormente inoltrata. Cos il

30 Il pi usato client Bitcoin chiamato bitcoind di default ha questo parametro uguale ad otto.

31 Il tempo della rete serve come stima del tempo di ogni nodo della rete, utilizzato al posto del tempo
effettivo di ogni nodo per cercare di uniformare il tempo corrente tra pi dispositivi con tempi possibilmente
diversi. Il tempo corrente della rete importante per confrontarlo con i timestamp contenuti nei blocchi
della catena.
62

messaggio si propaga ad altri nodi, che richiedono la transazione se non ne sono gi a


conoscenza e poi contribuiscono ad inoltrarla ulteriormente. Un peer che gi a conoscenza
della transazione non chieder la transazione (con messaggio getdata), n la render nota ai
vicini (con messaggio inv). Questo metodo di trasmissione dei messaggi, di tipo gossip, ne
permette una rapida diffusione, in genere la quasi totalit dei nodi raggiunta in meno di
dieci secondi.

Eventualmente la transazione raggiunger il nodo di un miner (in realt raggiunger


molti miners diversi) che la inserir in un blocco ed inizier a cercare la proof-of-work per
quel blocco. Quando un miner riuscito a estrarre un nuovo blocco mander ai vicini un
messaggio inv per comunicare loro la notizia. I vicini richiederanno il nuovo blocco con un
messaggio getdata (che avr come risposta un messaggio block contenente il blocco),
controlleranno che il blocco sia corretto e lo inoltreranno a loro volta. Cos il blocco nuovo si
diffonder nella rete comera avvenuto per la transazione. Quando il nodo che aveva creato la
transazione considerata riceve un inv con la notizia di un blocco contenente la sua transazione
sapr che la transazione stata validata in un blocco, anche se dovr ancora aspettare cinque
blocchi successivi per ritenerla accettata dalla comunit. Questo meccanismo di annunci e
richieste permette di evitare di mandare in broadcast tanti messaggi pesanti contenenti i
blocchi (o le transazioni) permettendo di limitare linvio dei dati a quando strettamente
necessario (cio quando i peers li richiedono).

Figura 2.7 fasi di


propagazione di un blocco. Si
nota come il nodo controlli il
blocco prima di inoltrarlo

Se un peer vuole conoscere la catena dei blocchi, invia ai vicini un messaggio getblocks
contenente lhash dellultimo blocco presente nella sua catena. Se il peer non ha nessuna
catena, allora non specificher un parametro ottenendo la lista degli ultimi cinquecento
blocchi. Il peer pu continuare ad inviare messaggi getblocks per recuperare le informazioni
63

su qualsiasi parte della catena non conosca. Ora che il nodo sa quali blocchi gli mancano pu
ottenerli dai vicini attraverso dei messaggi getdata, a cui i vicini risponderanno con messaggi
di tipo block. Il procedimento pu essere ripetuto finch il peer non convinto di essere a
conoscenza della catena pi lunga.

Come abbiamo gi spiegato in precedenza se il peer utilizza la tecnica di verifica di


pagamento semplificata, non avr bisogno dei blocchi interi della catena ma solo della loro
intestazione. Un peer che utilizza la SVP utilizzer quindi lo stesso procedimento di un peer
che voglia conoscere la catena, ma invier messaggi getheaders al posto di messaggi getdata e
messaggi headers al posto di block.

Osserviamo infine come la propagazione di nuovi blocchi nella rete sia ottenuta
attraverso una comunicazione dei blocchi a pi passaggi (multi-hop) tra i nodi. Il tempo
impiegato tra la scoperta di un blocco e la sua comunicazione ad un altro miner dipende dal
tempo impiegato dalla notizia del nuovo blocco a raggiungere quel miner. Allaumentare di
questo tempo aumenta anche la probabilit che il miner riesca ad estrarre il blocco a cui sta
lavorando nellintervallo di tempo che la notizia del nuovo blocco impiega a raggiungerlo,
causando cos una biforcazione nella catena. Abbiamo gi osservato come le biforcazioni siano
pericolose, opportuno quindi cercare di ridurne la probabilit il pi possibile. Per farlo
dobbiamo ridurre il tempo che impiega la notizia del nuovo blocco a raggiungere un altro
miner. Questo tempo dipende dal numero di nodi da cui passa la notizia (numero di hops) e
dal tempo impiegato da ogni nodo per inoltrarla. Le soluzioni possibili sono quindi due:
diminuire il numero di hops o la latenza aggiunta da ogni nodo. Per applicare la prima
soluzione basta che ogni miner sia connesso ad una grande quantit di nodi e, soprattutto, di
altri miner. Se scegliamo invece la seconda soluzione possiamo osservare che un nodo prima
di inoltrare la notizia di un nuovo blocco (con un messaggio inv) esegue tre operazioni: attesa
della ricezione del blocco (a seguito del messaggio getdata e della risposta block), controllo
della validit dellintestazione del blocco, controllo della validit delle transazioni contenute
nel blocco. La prima operazione dipende dalla velocit della rete ed quindi indipendente dal
nodo. Le due operazioni di verifica possono per essere scollegate, poich controllare tutte le
transazioni molto pi costoso che controllare solo lintestazione. Quando il blocco ha
verificato che lintestazione corretta potrebbe inviare gi il messaggio di inv dando la notizia
del nuovo blocco ai suoi vicini. A questo punto pu dedicarsi alla lunga verifica delle
transazioni e scartare il blocco se la verifica fallisce. Questa soluzione aggiunge la possibilit
64

che siano inoltrati sulla rete blocchi con intestazione valida ma transazioni non valide. La
vulnerabilit introdotta da questa strategia rendere la rete pi vulnerabile ad attacchi di
tipo denial-of-service distribuito (DDoS). Un attaccante potrebbe infatti creare un blocco
valido con transazioni false che sarebbe inoltrato tra tutti i nodi della rete portando a
trasmissioni e verifiche inutili. La difficolt dellattaccante per creare un blocco con
intestazione corretta. Come abbiamo gi osservato, la difficolt di estrarre un blocco
indipendente dal numero o forma delle transazioni contenute, in altre parole creare un blocco
con transazioni false avrebbe la stessa difficolt che crearne uno con transazioni vere. Quindi
lattaccante dovrebbe competere con i minatori onesti per vincere una gara di mining che, in
caso di vittoria, non gli porterebbe nemmeno i vantaggi di un miner onesto (collezione di
ricompensa e commissioni). La soluzione adottata oggi nella pratica dai miner per ridurre i
tempi di ricezione quella di mantenere unalta connettivit nella rete (cio la prima e meno
pericolosa soluzione fornita).


65

Capitolo 3 Crittografia

La sicurezza di Bitcoin si fonda sulla sicurezza crittografica delle funzioni di firma


digitale e hash crittografiche. Vediamo in questo capitolo cosa sono queste operazioni e in che
senso sono considerate sicure. Spieghiamo quindi il concetti di proof-of-work alla base della
validazione dei blocchi di Bitcoin. Analizzeremo anche la sicurezza di Bitcoin in un ambito di
crittografia post-quantistica, osserveremo cio se il protocollo potr rimanere sicuro (al pi
con modifiche minori) di fronte alla comparsa di un computer quantistico.

3.1 Firma Digitale

Una firma digitale di un documento una stringa dipendente da un segreto, noto solo
allutente firmatario del documento, e dal documento stesso. La firma deve essere verificabile
da chiunque altro senza bisogno di conoscere il segreto del firmatario. La firma deve anche
possedere la propriet di non ripudiabilit, cio il firmatario non deve poter negare che la
firma sia sua, non replicabilit, cio la firma non deve essere valida per un altro documento, e
infine non falsificabilit, cio solo lutente firmatario deve poter firmare correttamente un
documento. Le firme digitali sono asimmetriche, poich il firmatario conosce informazioni
diverse dal destinatario, quindi si basano su di uno schema di crittografia a chiave pubblica.
Lutente firmatario possiede una coppia (chiave pubblica, chiave privata), rende nota a tutti
gli utenti la chiave pubblica e segreta la chiave privata. Lutente esegue poi unhash
crittografica del documento da firmare, e calcola la firma su questa hash. Ogni utente potr
poi verificare la firma utilizzando la chiave pubblica dellutente. La firma cos ottenuta non
ripudiabile, poich ogni utente pu utilizzare la chiave pubblica dellutente per dimostrare
che la firma corretta e quindi stata eseguita con la sua chiave privata. La firma non
replicabile perch dipende dallhash (crittografica e quindi resistente alle collisioni) del
messaggio e quindi dal messaggio stesso. Infine solo un utente che conosce la chiave privata
pu firmare correttamente un documento e quindi la firma non falsificabile.

Una firma digitale deve anche essere sicura contro attacchi di tipo messaggio-noto.
Questo tipo di attacco prevede che lattaccante ottenga che la vittima firmi dei documenti da
lui scelti. La firma sicura se queste firme raccolte dallattaccante non gli garantiscono
nessuna informazione utile a generare la firma di un altro documento da lui scelto.
66

Una firma digitale pu anche essere utilizzata per garantire lintegrit dei dati, infatti se
il documento firmato viene modificato al firma non sar pi corretta, rivelando la
manomissione. Questa propriet utilizzata da Bitcoin per garantire che la transazione
firmata non possa essere modificata, oltre che la classica garanzia che sia proprio il
proprietario dei fondi a creare la transazione.

3.1.1 ECDSA

Lalgoritmo di firma digitale utilizzato in Bitcoin ECDSA che basa la sua sicurezza
sulla difficolt del problema del logaritmo discreto su curve ellittiche. Prima di analizzare
lalgoritmo stesso diamo una rapida spiegazione di questo problema. Poich Bitcoin utilizza
curve ellittiche su Zp considereremo curve solo su questo campo.

Se scegliamo un numero primo p e consideriamo + e * operazioni di somma e prodotto


modulo p tra interi allora (Zp, +(mod p) ,*(mod p)) costituisce un campo finito. Nota che Zp un
campo solo se p primo perch senn non esiste linverso moltiplicativo. Se definiamo E:
Y2=X3+aX+b con a,b appartenenti a Zp, allora la curva ellittica E su Zp individuer un insieme di
coppie (X,Y) che soddisfano E, con X,Y appartenenti a Zp. Queste coppie si chiamano punti della
curva, e a questi punti aggiungiamo un punto speciale chiamato INF. Su questi punti si pu
definire loperazione di somma tra punti, in cui il punto INF sar lelemento neutro. La somma
di due punti P1=(x1,y1) e P2=(x2,y2) cos definita:

P+INF=INF+P=P , poich INF lelemento neutro della somma.

Se x1=x2 e P1=/=P2 allora y1=-y2 e quindi P2 lopposto di P1, perci P1+ P2 =INF .

Se P1= P2 e y1=0 allora P1 lopposto di se stesso e quindi P1+ P2 =INF .

Se P1= P2 e y1=/=0 allora P1+ P2 = P3 con P3=(x3,y3) e x3=m2- x1-x2 e y3=-mx3+y1-mx1 con
m=(y2-y1)*(x2- x1)-1 .

Se x1=/=x2 allora P1 + P2 =P3 con P3=(x3,y3) e x3=m2-x1-x2 e y3=-mx3+y1-mx1 con m=(


x12+a)*(2y1)-1.

In cui x-1 linverso moltiplicativo di x in Zp, che pu essere calcolato efficientemente


utilizzando lalgoritmo di Euclide esteso.

Possiamo poi definire il prodotto di un punto per uno scalare come somma ripetuta cP:=
67

P+ +P (c volte). Per motivi di efficienza per calcolare un prodotto con uno scalare pi
conveniente calcolare i raddoppi successivi, rispetto alle somme ripetute. Se infatti calcoliamo
2i P con i che va da 1 a k tale che 2k<= c < 2(k+1) ed esprimiamo c i base due, c = aj aj-1 a0 in
base due allora cP=SUM su j t.c aj=1di 2jP . Invertire la moltiplicazione per scalare, cio
sapendo P e Q trovare l tale che P=l Q detto problema del logaritmo ed oggi considerato un
problema intrattabile, e su questo problema si basa la sicurezza della crittografia su curve
ellittiche. I metodi pi efficienti conosciuti per risolvere logaritmi discreti su curve ellittiche
sono sub-esponenziali ma con esponenti migliori dei metodi di complessit sub-esponenziale
conosciuti per risolvere il problema del logaritmo discreto in Zn (con n prodotto di due primi).
Poich RSA si basa su Zn la crittografia su curve ellittiche considerata oggi pi sicura a parit
di lunghezza delle chiavi. Possiamo quindi avere lo stesso livello di sicurezza di RSA
utilizzando crittografia a curve ellittiche con chiavi pi piccole. Se consideriamo ad esempio la
curva ellittica secp256k1 utilizzata da bitcoin, questa garantisce una sicurezza di 128 bit con
chiavi lunghe 256 bit, lo stesso livello di sicurezza sarebbe raggiunto da RSA/DSA con chiavi
lunghe 3072 bit (vedi [65]).

Per poter utilizzare lalgoritmo di firma digitale ECDSA un utente dovr prima generare
la propria coppia (chiave pubblica, chiave privata). Nella crittografia a curve ellittiche la
generazione di questa coppia avviene nel seguente modo. Prima gli utenti devono mettersi
daccordo su di una curva da utilizzare. In Bitcoin tutti gli utenti utilizzano la stessa curva che
secp256k1 (vedi [65] per i parametri della curva). Lutente deve poi scegliere un punto,
detto generatore, sulla curva che abbia come ordine un numero primo q (nota che diciamo che
G ha ordine q se qG = INF). In Bitcoin il punto G specificato tra i parametri di secp256k1,
quindi non deve sceglierlo lutente.
Un utente sceglie quindi un intero casuale a compreso tra zero e q-1 . Questo numero
casuale sar la chiave privata dellutente. Lutente calcola poi Q=aG. Il punto Q cos trovato la
chiave pubblica dellutente. Osserviamo quindi che un attaccante conosce sia Q che G e quindi
potrebbe calcolare la chiave privata a se riuscisse a calcolare il logaritmo discreto, ma come
abbiamo visto questo ritenuto computazionalmente impossibile. Osserviamo inoltre che un
qualsiasi utente pu verificare se la chiave pubblica accettabile controllando se appartiene
alla curva e se qQ=INF (deve valere perch qQ=qaG=aINF=INF poich G ha ordine q).

Lalgoritmo di firma ECDSA consiste di due fasi distinte: la prima fase consiste nella firma
del messaggio da parte del mittente e la seconda parte consiste nella verifica della firma da
68

parte del destinatario. Osserviamo che la firma (sia creazione che verifica) eseguita su lhash
del messaggio, invece che sul messaggio stesso, indichiamo quindi con H(m) lhash del
messaggio. Ipotizziamo inoltre che il mittente abbia gi una coppia (chiave privata, chiave
pubblica) generata con il procedimento sopra spiegato. Il mittente pu quindi firmare il
messaggio con i seguenti passi:

Il mittente sceglie un intero casuale k, non utilizzato in una firma precedente, tale che
1<=k<q e calcola kG=R , con R=(x,y). Se x=0 ripete scegliendo un k diverso.

Successivamente calcola s=k-1(H(m)+ax) (mod q) dove x la prima coordinata (cio


l'ascissa) del punto R. Se s=0 torna al punto precedente e sceglie un k diverso.

La firma del messaggio sar la coppia (R,s).

di importanza fondamentale che lutente scelga un k diverso per ogni firma. Infatti se
lutente sceglie lo stesso k per due firme diverse allora R sar lo stesso in quelle due firme,
ottenendo firme (R,s) e (R,s) note allattaccante. Inoltre lattaccante conosce i due messaggi
(perch i messaggi sono firmati ma non cifrati) e quindi potr calcolare le due hash H(m) e
H(m) dei messaggi. Allora s-s=k-1 (H(m)+ ax - H(m) - ax) =k-1(H(m) - H(m)) da cui si pu
ricavare k come k=( H(m)- H(m))/(s-s) . Adesso lattaccante pu calcolare a dalla formula s= k-
1(H(m)+ax) sse a=(sk - H(m))/x . Lattaccante ha quindi ottenuto la chiave privata della vittima

a partire da due sue firme. Questa tecnica fu utilizzata nel 2013 per rubare delle chiavi private
dai portafogli su dispositivi android. Infatti il generatore di numeri pseudo casuali generava
dei valori di k ripetuti durante le firme.

Il destinatario per verificare se la firma (R,s) autentica per il messaggio m esegue i


seguenti passi:

Il destinatario calcola u1=s-1 H(m) (mod q) e u2=s-1 x (mod q).

Poi calcola V=u1G+u2Q.

Se V=R allora la firma valida altrimenti invalida.

Il sistema di firma funziona, se tutto eseguito correttamente (cosa possibile solo a chi
conosce la chiave privata del mittente che si suppone essere solo il mittente stesso), poich:

V=u1G+u2Q=s-1 H(m)G+s-1 xQ=s-1(H(m)G+xaG)=s-1(H(m)+xa)G=kG=R


69

3.2 Hash Crittografiche

Una funzione di hash una qualsiasi funzione che trasformi un input di lunghezza
arbitraria in un output di lunghezza predefinita. La funzione hash deve essere facile da
calcolare, cio dato M possibile calcolare in maniera computazionalmente efficiente m=h(M),
e deve distribuire uniformemente i risultati, cio tutti i valori possibili restituibili in output
dallhash devono essere equiprobabili. Le funzioni di hash sono spesso utilizzate per ridurre
la dimensione di un dato permettendo di ottenerne una rappresentazione pi compatta che
dipenda comunque da tutte le informazioni contenute in quel dato.

Unhash per essere adatta in crittografia deve inoltre avere altre quattro propriet aggiuntive.

Unidirezionalit (o non reversibilit): una funzione hash crittografica deve essere non
reversibile, cio se m=h(M) allora m da solo non deve dare nessuna informazione su M
e quindi deve non essere computazionalmente possibile ricavare M a partire da m. Per
computazionalmente impossibile intendiamo che per trovare M devono essere
necessarie 2n operazioni di hash, dove n la dimensione di m.

Resistenza alle collisioni debole: dato M non deve essere computazionalmente


possibile trovare un M che sia mappato dalla funzione di hash sullo stesso valore di M,
cio tale che h(M)=h(M). Per computazionalmente impossibile intendiamo che per
trovare M devono essere necessarie 2(n/2) operazioni di hash, dove n la dimensione di
m, ed utilizziamo come esponente n/2 invece di n per lattacco del compleanno.

Resistenza alle collisioni forte: deve essere computazioanlmente impossibile trovare


una coppia (M,M) tale che h(M)=h(M).

Effetto valanga: una modifica minima nel valore in input deve comportare una
modifica casualmente grande nel risultato dellhash.

Tutte le funzioni hash pi note (comprese le due funzioni di cui tratteremo in seguito)
utilizzano uno schema iterativo originariamente proposto da Merkle e Damgard. Linput viene
diviso in blocchi di dimensione fissata (di solito 512 bit), lultimo blocco viene concatenato
con una rappresentazione della dimensione del messaggio e viene riempito fino a raggiungere
la lunghezza stabilita per ogni blocco. Se vogliamo un hash che dia risultati di n bit allora, la
70

funzione di hash definisce una funzione di compressione che prende in input un blocco ed
un valore di n bit e restituisce in output un risultato di n bit. La funzione di compressione
quindi applicata al primo blocco del messaggio e ad un valore di n bit iniziale. Il risultato
ottenuto utilizzato poi come input della stessa funzione di compressione insieme al secondo
blocco del messaggio, e cos via utilizzando il risultato di n bit del passo precedente come
input del passo successivo insieme al blocco successivo. Alla fine, dopo aver applicato la
funzione di compressione allultimo blocco, il risultato di n bit ottenuto sar il valore dellhash.
Oltre ad essere comodo ed efficiente lo schema iterativo possiede anche unottima propriet:
Merkle e Damgard hanno dimostrato che la funzione hash ottenuta da un metodo iterativo
con funzione di compressione resistente alle collisioni, sar anchessa resistente alle collisioni
(ma non viceversa). Quindi per definire (o progettare) una funzione hash iterativa
sufficiente definire la sua funzione di compressione.

3.2.1 RIPEMD-160

RIPEMD (Research and development in advanced communications technologies, Integrity


Primitives Evaluation, Message Disgest) un algoritmo di hash inventato in Europa come
alternativa alle MD4 e MD5 statunitensi. Nonostante il suo cugino RIPEMD-128 sia stato
violato e ritenuto non pi sicuro, ad oggi non noto nessun attacco efficace contro RIPEMD-
160. RIPEMD-160 utilizza input di lunghezza massima 264 bit e restituisce un output di 160
bit, una funzione hash iterativa con funzione di compressione che lavora su blocchi di 512
bit (e chiaramente restituisce un risultato di 160 bit).

La funzione di compressione prende in input cinque parole da 32 bit (quindi 160 bit in
totale) e restituisce cinque parole. Le cinque parole iniziali sono costanti e il risultato finale
sar la concatenazione delle cinque parole ottenute allultimo passo.

Per una descrizione dettagliata dellalgoritmo RIPEMD-160 si veda [61].

3.2.2 SHA-256

SHA (Secure Hash Algorithm) indica una famiglia di funzioni hash pubblicate dal NIST
come standard per il governo degli Stati Uniti. Le funzioni SHA-0 e SHA-1 (di 160 bit) sono
oggi considerate non pi sicure, mentre non si conoscono attacchi validi contro le funzioni
71

della famiglia SHA-2 (cio SHA-224, SHA-256, SHA-384 e SHA-512). Il NIST ha indetto nel
2007 un concorso per la definizione delle nuove hash della famiglia SHA-3 che ha portato nel
2012 allannuncio dellalgoritmo Keccak come vincitore. SHA-256 restituisce un output di 256
bit ed una funzione hash iterativa con funzione di compressione che lavora su blocchi di 512
bit. Il passo iterativo il seguente:

dove H(i) lhash restituita dalli-esima iterazione, Cx(y) la funzione di compressione


applicata al blocco x e al risultato precedente y. E il simbolo + indica la somma parola (cio 8
byte ossia 32 bit) per parola modulo 232 .

La funzione di compressione funziona come un cifrario a blocchi che cifra lhash


ottenuta dal passo precedente utilizzando il blocco corrente come chiave. Il valore iniziale alla
prima iterazione, poich non disponibile unhash intermedia, sono i 256 bit ottenuti dalla
concatenazione dei primi 32 bit della parte frazionaria della radice quadrata dei primi otto
primi, indicate di seguito in parole in formato esadecimale:

Ugualmente sono definiti i valori K0, , K63 come i primi 32 bit della parte frazionaria
della radice cubica dei primi sessantaquattro primi, indicati di seguito in formato
esadecimale:
72

Mostriamo quindi di seguito lalgoritmo completo con i simboli utilizzati rappresentati


in figura.


73

_________________________________________________________________________
74

3.3 Proof of Work

Il concetto di proof-of-work fu inizialmente introdotto per contrastare attacchi di tipo


denial of service. Per evitare che un attaccante inondi un server di richieste, il server chiede di
aggiungere ad ogni richiesta una prova di aver eseguito una certa quantit di lavoro.
Verificando che questa prova sia corretta il server ottiene la prova dell'onest della richiesta.
Un attaccante infatti avrebbe due possibilit: se seguisse il protocollo, fingendosi un utente
onesto, dovrebbe calcolare il certificato di onest per ogni richiesta spendendo una piccola
quantit di risorse per ogni richiesta. Per un gran numero di richieste l'attaccante dovrebbe
quindi impiegare una grande quantit di risorse, rendendo l'attacco impossibile o
economicamente controproducente. Se l'attaccante ignorasse il protocollo e inoltrasse
tantissime richieste con dei certificati non validi, il server potrebbe scartare tutte queste
richieste facilmente accorgendosi dei certificati errati. La potenza necessaria per calcolare
uno di questi certificati dovrebbe ovviamente essere abbastanza limitata da poter essere
calcolata in breve tempo per una richiesta singola (e quindi onesta), ma non trascurabile, in
modo da crescere rapidamente nel numero di richieste.

La funzione utilizzata per il calcolo della proof-of-work deve essere asimmetrica, cio
onerosa da calcolare ma immediata da verificare. Deve inoltre permettere di variare la
75

difficolt (solo del calcolo e non della verifica), cio deve permettere di aumentare o
diminuire la quantit di risorse necessarie probabilisticamente per risolvere il problema,
senza modificare la difficolt della verifica della soluzione. In altre parole deve essere una
funzione efficientemente verificabile ma parametrabilizzabilmente costosa da calcolare.
Importante anche che il calcolo dipenda sempre da nuovi parametri senza variare la
difficolt, per evitare che una proof-of-work possa essere calcolata a priori ed utilizzata
successivamente.

Come abbiamo visto nel precedente capitolo, Bitcoin utilizza una proof-of-work per la
validazione dei blocchi. La funzione di proof-of-work utilizzata consiste nel risolvere il
problema di trovare un nonce per cui la doppia hash SHA-256 dell'intestazione del blocco,
concatenata con il nonce scelto32, sia minore di un valore target stabilito. Questo tipo di proof-
of-work, detto hashcash [60] stato inventato da Adam Back (vedi sezione 1.2.1) e si basa sul
problema detto inversione parziale di un'hash, poich consiste nel trovare un qualsiasi
valore appartenente ad un insieme A, definito come l'insieme dei valori che hanno come
risultato di hash un qualsiasi elemento appartenente ad una altro insieme B prestabilito. Cio
equivale all'inversione di un hash (vedi sezione 3.2) su insiemi anzich su valori singoli.

Il problema scelto rispetta le propriet di una proof-of-work, poich l'hash utilizzata


un'hash crittografica e quindi l'unico modo per invertirla attraverso la forza bruta, cio
provando i possibili input33 fino a trovarne uno che soddisfa. Il calcolo della prova quindi
oneroso, ed il costo variabile e dipendente dal valore target scelto di cui cerchiamo un hash
minore. Questo valore rappresenta la difficolt della proof-of-work, che aumenta di difficolt
al diminuire del valore scelto. La verifica invece costante, poich basta calcolare una sola
volta l'hash dell'intestazione (con il nonce fornito) e controllare se il risultato minore del
valore target stabilito. Infine essendo l'hash dipendente dall'intestazione del blocco, la proof-
of-work valida solo per quello specifico blocco e non possibile quindi calcolarla a priori.

3.4 Post Quantum



32 Come abbiamo gi visto in realt il nonce contenuto all'interno dell'intestazione, piuttosto che esserle
concatenato successivamente.

33 I possibili input sono dati adlla concatenazione tra l'intestazione del blocco (costante) ed il nonce (variabile),
quindi cambiare input significa cambiare il nonce.
76

Consideriamo in questa sezione gli effetti dellavvento di computer quantistici sulle


funzioni crittografiche utilizzate da Bitcoin. Bitcoin utilizza la crittografia a chiave pubblica su
curve ellittiche per le firme digitali e le hash crittografiche SHA-256 e RIPEMD-160 per hash e
proof of work.

Consideriamo prima le funzioni di hash. Per le funzioni hash lalgoritmo quantistico


migliore ad oggi conosciuto lalgoritmo di ricerca di Grover, che fornisce uno speedup
quadratico, cio permette di ridurre alla radice quadrata lo spazio di ricerca per trovare una
collisione. Questo algoritmo pu essere applicato alla crittografia simmetrica ed alle funzioni
hash dimezzandone la difficolt. Infatti lo spazio di ricerca con chiavi lunghe n bits diventa
2n = 2(n* )=2(n/2). Poich una funzione hash crittografica richiede 2n computazioni per essere
invertita e 2n/2 computazioni per trovare una collisione con computer classici, utilizzando
lalgoritmo di Grover su di un computer quantistico possiamo ridurre le due difficolt a 2n/2 e
2n/4 rispettivamente. La crittografia asimmetrica invece un altro discorso. Grazie
allalgoritmo quantistico di Shor possibile risolvere in tempo polinomiale su di un computer
quantistico i problemi di fattorizzazione in fattori primi e logaritmo discreto. Quindi la
crittografia a chiave pubblica su curve ellittiche non sarebbe pi sicura. Abbiamo gi spiegato
come la sicurezza della firma digitale di ECDSA, utilizzato da Bitcoin, si basa sulla difficolt del
problema del logaritmo discreto. Poich questo problema non pi computazionalmente
difficile su di un computer quantistico, ECDSA non pi sicura.

Adesso che conosciamo gli effetti di un computer quantistico sulla sicurezza delle
primitive crittografiche utilizzate da Bitcoin, possiamo stimarne gli effetti. Possiamo subito
osservare come le hash restino comunque sicure, basterebbe infatti utilizzare hash con
dimensioni delle chiavi doppie per riottenere la sicurezza odierna. Un computer quantistico
avrebbe infatti solo un aumento della velocit quadratico rispetto ad un computer classico.
Nel caso della firma laumento di velocit invece esponenziale, rendendo la difficolt del
problema polinomiale, sarebbe quindi inutile aumentare la lunghezza delle chiavi e si
renderebbe necessario cambiare completamente algoritmo utilizzato. Gi oggi esistono
numerosi esempi di crittografia asimmetrica resistente ai computer quantistici, come ad
esempio la crittografia sui reticoli, quindi sarebbe necessario utilizzare uno di questi algoritmi
al posto di ECDSA.

Nonostante ECDSA sia vulnerabile alla crittoanalisi quantistica il modo in cui


utilizzato in Bitcoin sembrerebbe proteggerlo parzialmente dalla crittoanalisi quantistica.
77

Infatti lalgoritmo di Shor permette di risolvere efficientemente logaritmi discreti e quindi di


calcolare efficientemente la chiave privata di ECDSA a partire dalla chiave pubblica. In Bitcoin
per non utilizzata la chiave pubblica per ricevere pagamenti, ma solo lindirizzo pubblico,
che ottenuto come doppia hash della chiave pubblica (vedi sezione 2.1). Lutente rende nota
la propria chiave pubblica solo quando invia un pagamento, e quindi necessaria per
verificare la firma. Poich la sicurezza delle hash crittografiche solo ridotta e non distrutta
dalla crittoanalisi quantistica (e basta aumentare la lunghezza delle chiavi per proteggersi),
un attaccante quantistico non potr ricavare la chiave pubblica a partire da un indirizzo.
Lattaccante dovr quindi aspettare che la vittima utilizzi la chiave pubblica in una firma per
poter scoprire la chiave privata. Allora gli utenti potrebbero utilizzare una semplice tecnica
che li protegga dalle potenzialit dellalgoritmo di Shor: un indirizzo utilizzato in un
pagamento non deve mai pi essere riutilizzato. Poich in una transazione trasferita la
totalit dei fondi contenuti in input (vedi sezione 2.2), allora nel momento in cui la
transazione resa pubblica i fondi, protetti dalla chiave privata esposta ad attacchi
quantistici, sono nulli. Di fatto calcolare queste chiavi private sarebbe inutile poich i relativi
indirizzi sarebbero vuoti. Leffetto dellavvento del computer quantistico sarebbe quindi solo
di rendere gli indirizzi utilizzabili una sola volta. Purtroppo per questo non vero e quindi
questa semplice regola non sufficiente. La transazione vulnerabile nel tempo che trascorre
tra la comunicazione alla rete e la sua validazione in un blocco. Un attaccante potrebbe infatti
ascoltare le nuove transazioni e tentare di calcolare le chiavi private con lalgoritmo di Shor
prima che siano validate in un blocco. Appena trova una chiave lattaccante pu creare una
nuova transazione che invii i fondi utilizzati come input dalla vittima ad un proprio indirizzo.
Questa transazione fraudolenta sar a tutti gli effetti valida perch firmata correttamente
(dallattaccante che conosce la chiave privata) e quindi entrer in competizione con la
transazione onesta per essere validata. Una delle due transazioni sar scartata perch ritenuta
un tentativo di double spending mentre laltra sar validata per sempre nella catena.
Lattaccante parte svantaggiato poich i nodi accettano come valida la prima transazione
ricevuta che di certo quella del nodo onesto (poich lattaccante deve perdere del tempo a
calcolare la chiave privata), quindi in generale lattacco fallirebbe. Lattaccante potrebbe per
utilizzare questattacco insieme ad altre forme dattacco. Potrebbe ad esempio isolare il nodo
vittima dalla rete onesta con un sybil attack (vedi sezione 4.4.4), ascoltare le sue transazioni
senza inoltrarle ai nodi onesti, ed inoltrare al loro posto le transazioni fraudolente da lui
create. In generale la semplice consapevolezza che le firme possano essere contraffatte
78

sarebbe inaccettabile, poich renderebbe inaffidabile lintero processo di verifica. Quindi


sarebbe in ogni caso necessario cambiare algoritmo di firma, utilizzandone uno resistente alla
crittoanalisi quantistica.

Analizziamo infine leffetto di un computer quantistico sul mining. Se lutilizzo di un


computer quantistico rendesse improvvisamente obsoleti gli hardware specializzati utilizzati
dai miners odierni, sarebbe un duro colpo per leconomia dei miners. Infatti i dispositivi
dedicati utilizzati sono molto costosi e richiedono grandi investimenti iniziali prima di
ripagarsi nel tempo, lavvento di un miner quantistico super efficiente renderebbe questi
dispositivi inutili portando i miners a perdere il proprio investimento (e probabilmente alla
bancarotta). Questi dispositivi sono talmente specializzati da renderli impossibili da
rivendere. Infatti potrebbero solo essere venduti a miners di cripto-valute con proof-of-work
simili, che per non li comprerebbero, preferendo comprare i nuovi dispositivi quantistici.
Lintero ecosistema dei miners tradizionali sarebbe spazzato via lasciando il controllo ai nuovi
miners quantistici (che potrebbero approfittare della situazione per effettuare attacchi di tipo
50%+1). Per fortuna questo rischio sembra oggi inesistente. Risolvere una proof-of-work
richiede infatti di risolvere un problema di ricerca con una probabilit di riuscita pari a
target/2256 e quindi risolto in media dopo un tempo pari a 2256/target. Il meglio che potrebbe
fare un miner quantistico sarebbe di utilizzare il gi citato algoritmo di ricerca di Grover, che
gli permetterebbe di trovare la soluzione in media in un tempo pari a (2256/target)=
2128/target . Questo vuol dire che utilizzare una CPU quantistica garantirebbe un vantaggio
quadratico rispetto ad una CPU tradizionale. Ma una CPU tradizionale gi oggi di molti
ordini di grandezza pi lenta di un dispositivo ASIC appositamente costruito. Quando sar
disponibile un computer quantistico sufficientemente potente da rivaleggiare, sfruttando il
vantaggio quadratico offerto dallalgoritmo di Grover, con i dispositivi ASIC odierni (anche se i
dispositivi ASIC disponibili in quella data sarebbero probabilmente molto pi potenti di oggi),
probabilmente sar semplicemente troppo costoso per poter dedicare la sua potenza di
calcolo esclusivamente al mining di Bitcoin. I miners potranno prepararsi con largo anticipo
prima della disponibilit di questo nuovo computer, indirizzandosi anche loro verso la nuova
tecnologia.

Ricapitolando esistono gi oggi soluzioni disponibili (algoritmi crittografici quantum


resistent per la firma ed incremento delle dimensioni delle hash) contro le potenzialit note
dei computer quantistici. Lampio tempo che intercorrer tra la notizia (o il sospetto) della
79

costruzione di computer quantistici ed il loro effettivo utilizzo su Bitcoin sar sufficiente a


permettere sia al protocollo che ai miners di aggiornarsi di conseguenza. Ricordiamo inoltre
come la minaccia posta da un computer quantistico alla sicurezza degli algoritmi crittografici
oggi utilizzati non riguardi solo Bitcoin ma anche le istituzioni di pagamento classiche come le
compagnie di carte di credito, gli istituti finanziari o PayPal. Bitcoin non introduce particolari
vulnerabilit ad un problema che proprio dellintera sicurezza elettronica moderna.




Capitolo 4 - Attacchi

In questo capitolo analizzeremo i principali attacchi informatici (pratici e teorici)
contro il protocollo Bitcoin. Nella prima sezione analizzeremo gli attacchi basati sul mining.
Potremo cos scoprire la vulnerabilit dellidea di decentralizzazione alla base del protocollo.
Dimostreremo infatti come laccorpamento delle risorse di calcolo, supportato da tecniche di
mining disoneste possano portare al controllo della rete. La pericolosit di questo tipo di
attacchi resa maggiore dallassenza di possibili contromisure adeguate, e dal costo per la
rete. In caso di successo infatti questi attacchi porterebbero lattaccante al controllo completo
della rete distruggendo la libert promessa da Bitcoin. Nella seconda sezione analizzeremo gli
attacchi basati sul double spending, mostrando i problemi di sicurezza intrinseci nellutilizzo
di Bitcoin per i pagamenti quotidiani nel mondo reale. Nella terza sezione dimostreremo come
Bitcoin non offra un reale anonimato, e come la tecnica degli pseudonimi utilizzata sia spesso
insufficiente a tutelare la privacy degli utenti. La mancanza di privacy potrebbe essere un
grave ostacolo allaccettazione diffusa di Bitcoin. Nella stessa sezione mostreremo anche i
vantaggi offerti dalla mancanza di privacy, come la facilit di tracciamento dei furti.
Discuteremo alla fine del capitolo come i tipi di attacchi classici delle reti si possano applicare
a Bitcoin e con quali danni. Gli attacchi discussi in questo capitolo sono importanti per
determinare il successo di Bitcoin. I grandi problemi legati allanonimato ed allaccentramento
del mining minano infatti le fondamenta della sua intera economia, mentre le notizie frequenti
di furti ed attacchi scoraggiano potenziali utenti.

4.1 - Mining fraudolento



Vediamo in questa sezione gli attacchi pi interessanti basati sul mining.

4.1.1 50%+1

Alla base del protocollo di Bitcoin e del suo funzionamento c' l'ipotesi che nessun
attaccante abbia pi della met della potenza computazionale complessiva dell'intera rete.
Vediamo quindi cosa succede se questa ipotesi viene meno e verifichiamo se l'ipotesi valida
82

o meno nella pratica.

Immaginiamo che un miner fraudolento controlli pi del 50% delle risorse


computazionali dell'intera rete. Chiaramente questo miner non deve essere un utente singolo
ma pu in realt essere un mining pool fraudolento o un cartello di mining pool fraudolenti.
Poich l'attaccante ha la maggioranza assoluta della potenza di calcolo della rete avr pi
voti di qualsiasi altro miner e quindi sar sempre lui a decidere la storia corretta delle
transazioni. Nella pratica il miner probabilisticamente trover la proof-of work di un nuovo
blocco prima di qualsiasi altro miner, quindi solo i blocchi dell'attaccante entreranno a far
parte della catena. Chiaramente l'attaccante ha maggiore probabilit degli altri miners di
trovare un nuovo blocco ma non ne ha la certezza. Un miner onesto potrebbe essere fortunato
ed estrarre un blocco prima dell'attaccante. Questo non un problema per l'attaccante che
pu limitarsi ad ignorare qualsiasi blocco che non sia suo e continuare a provare ad estrarre
solo i suoi blocchi. Questo causerebbe una biforcazione nella catena. Anche se all'inizio il ramo
dei nodi onesti sarebbe in vantaggio di qualche blocco, poich l'attaccante ha probabilit
maggiore di tutti loro messi insieme a trovare un nuovo blocco, prima o poi la catena
dell'attaccante diventerebbe la pi lunga e quindi quella ufficiale34. Il controllo sui blocchi si
traduce nel controllo sulle transazioni da inserire nella catena e quindi delle transazioni
ritenute valide. L'attaccante pu decidere quali transazioni inserire e quali no. L'attaccante
potrebbe ad esempio decidere di bloccare tutte le transazioni con commissioni sotto una certa
soglia per costringere gli utenti a pagargli alte commissioni. Infatti siccome lattaccante
lunico ad aggiungere blocchi sar anche lunico a guadagnare commissioni. Potrebbe senn
accettare solo le transazioni indirizzate a commercianti o utenti suoi alleati (costringendo
gli utenti che vogliono essere suoi alleati a pagare una sorta di pizzo), ammesso che riesca
ad associare gli indirizzi ad utenti predeterminati.

L'attaccante che ha il controllo della catena dei blocchi pu cambiare la storia delle
transazioni a suo piacimento (detto attacco di revisione della storia). Per modificare un
qualsiasi blocco della catena, modificando le transazioni che contiene, l'attaccante crea una
biforcazione volontaria prima di quel blocco ed inizia a costruire una catena alternativa con le
stesse transazioni contenute nei blocchi successivi della vecchia catena. Poich controlla la

34 Abbiamo visto nella sezione 2.4 che se q > p (dove q la probabilit dell'attaccante di estrarre un nuovo
blocco e p quella di tutti i nodi onesti messi insieme) la probabilit che l'attaccante riesca a costruire una
catena pi lunga con X blocchi di svantaggio pari a 1, cio un evento certo.
83

maggioranza della potenza di calcolo, l'attaccante ha la certezza che questo nuovo ramo della
catena diventer il pi lungo indipendentemente dalla profondit del blocco da cui inizia la
biforcazione. Pu quindi eliminare transazioni gi confermate (con sei o pi conferme).
Questo spalanca la strada ad attacchi di tipo double-spending. L'attaccante pu cambiare una
qualsiasi transazione in cui conosce le chiavi private dei mittenti, sostituendo quindi un
pagamento ad un atro utente con un pagamento a se stesso. In realt, poich l'attaccante pu
semplicemente eliminare le transazioni gi confermate dalla catena, sarebbe per lui pi
semplice eliminare direttamente la transazione piuttosto che rimpiazzarla con una a se stesso.

Sebbene l'attaccante abbia il controllo della catena non pu modificare le transazioni di


altri utenti (ma solo eliminarle), n pu creare transazioni da indirizzi che non siano suoi. Non
pu utilizzare o modificare indirizzi che non gli appartengono, n creare fondi mai esistiti. I
blocchi che l'attaccante crea infatti devono essere comunque validi per essere accettati dagli
altri utenti.

Non esiste nessuna difesa del protocollo nell'eventualit che un attaccante assuma il
controllo della catena. Gli altri nodi sono costretti ad accettare le decisioni dell'attaccante.
L'unica consolazione dei nodi onesti che l'attaccante non avrebbe convenienza ad affossare
e distruggere il sistema, minandone la fiducia utilizzando spesso il double spending. Nessuno
si fiderebbe pi ad usare un sistema in cui i pagamenti a proprio favore possono essere
annullati in qualunque momento e quindi il valore dei bitcoins crollerebbe. L'attaccante
l'unico che aggiunge blocchi e quindi l'unico ad ottenere nuovi bitcoins come ricompense e a
collezionare tutte le commissioni di tutte le transazioni accettate. Avendo cos alti guadagni
l'attaccante dovrebbe essere il primo a voler sostenere il valore dei bitcoins e quindi a
continuare a far funzionare onestamente il protocollo. Purtroppo questo non vero nel caso
che l'attaccante non si curi del ritorno economico ed il suo unico scopo sia quello di
distruggere il sistema Bitcoin35.

Un attacco in cui lattaccante vuole affossare lintero sistema Bitcoin per un proprio
interesse esterno chiamato Goldfinger. Questo tipo di attacco reso pi efficace dalla


35 Come abbiamo visto (vedi sezione 1.2) Bitcoin nasce dalla cultura cypherpunk della rete libera, quindi molti
dei suoi utenti pi entusiasti sono convinti che "l'establishment" voglia a tutti i costi distruggere la loro
valuta digitale libera e indipendente. Molti utenti sono convinti che un'agenzia governativa degli Stati Uniti
d'America come l'NSA sarebbe pronta a contrastare Bitcoin con qualsiasi mezzo, senza curarsi dei costi da
affrontare.
84

spirale di sfiducia che innesca. Quando lattaccante ha ottenuto il controllo della catena deve
pagare un prezzo molto elevato per finanziare la maggioranza delle risorse per mantenere il
controllo. Ma pi che affossa il sistema e ne ostacola il corretto svolgimento, pi cala la fiducia
in Bitcoin e quindi diminuisce il valore dei bitcoins. Alcuni dei miner onesti potrebbero
considerare non pi conveniente restare nel sistema, o per labbassamento del valore reale
delle ricompense o pi semplicemente perch di fatto lunico a guadagnare dallattivit di
mining lattaccante. Pi miner onesti abbandonano e pi si alza la percentuale di risorse
possedute dallattaccante. Questi potrebbe quindi rilasciare risorse, controllandone per
sempre la maggioranza, per diminuire i propri costi. Pi che il valore scende e pi miner
onesti (razionali) abbandoneranno il sistema portando alla sua rovina. Per contrastare
lattaccante dovrebbero entrare nel sistema nuovi miner onesti (invece di abbandonarlo) ma
questo non accadrebbe perch i miner non avrebbero nessun interesse economico nel farlo.
Notiamo infine come un attaccante intelligente potrebbe risparmiare ulteriori risorse
portando a compimento lattacco senza bisogno di possedere effettivamente la maggioranza
delle risorse. Ipotizziamo che lattaccante controlli unampia percentuale di risorse ma non la
maggioranza (ad esempio tra il 30 e 40 % delle risorse totali). In questo caso pu sempre
provare a controllare la catena ma non ha pi la certezza di riuscirci, ha solo una probabilit
che decresce esponenzialmente con il numero di blocchi che vuole modificare. Ad esempio se
lattaccante possedesse il 40% delle risorse complessive avrebbe una probabilit del 50% di
riuscire a modificare o eliminare una transazione appena confermata con sei conferme, quindi
con altri cinque blocchi aggiunti sopra al blocco che la contiene. Spacciandosi per un utente
preoccupato lattaccante sparge la falsa voce che si formato un cartello di due o pi grossi
mining pools, accusando mining pools in realt onesti. Per dare credibilit a questa voce
lattaccante potrebbe usare il suo grande (ma non maggioritario) potere di calcolo per
provare ad invertire alcune transazioni ritenute confermate o per creare molte biforcazioni
nella rete. Lattaccante potrebbe mostrare pubblicamente gli esempi di transazioni che
riuscito ad annullare (tacendo i propri fallimenti) per rinforzare la diceria. Chiaramente le
mining pool oneste cercherebbero di smentire la loro appartenenza a qualunque cartello ma
la perdita di credibilit potrebbe portare alluscita di miner preoccupati da questi mining pool
per uscire dal sistema o migrare verso altri mining pools, potenzialmente proprio quelli di
nascosto controllati dallattaccante, peggiorando al situazione. La confusione generata
potrebbe essere sufficiente a portare ad una perdita di valore che porterebbe alcuni miners
non pi competitivi a ritirarsi aumentando la percentuale di potenza di calcolo dellattaccante
85

e rafforzando quindi il suo attacco, fino al controllo effettivo della maggioranza della potenza
di calcolo.

In ogni caso, anche Se l'attaccante fosse benigno e si limitasse ad arricchirsi


collezionando ricompense e commissioni, di fatto la rete non sarebbe pi decentralizzata e
l'idea fondante dell'intero protocollo sarebbe tradita, portando quindi al fallimento ideologico
del progetto.

A causa dell'accorpamento costante dei miners in mining pool lo scenario di una rete
controllata da un cartello di mining pool non pi cos irrealistico. Gi oggi basterebbe un
accordo tra i tre principali mining pool esistenti per portarli al controllo della maggioranza
della potenza computazionale totale della rete (27%+15%+13%). Osserviamo inoltre come la
difficolt della proof-of-work continui ad aumentare rendendo sempre pi costoso il processo
di mining. Nel breve futuro sar necessario dotarsi di hardware dedicati sempre pi potenti
per risolvere le proof-of-work. Lalto costo iniziale dellhardware necessario ed il costo
costante dellenergia elettrica consumata potrebbero rendere il lavoro di mining
economicamente non vantaggioso per i nuovi utenti. Inevitabilmente i mining pool saranno
formati da farm di hardware costosi localizzate in zone del pianeta a basso costo di energia
elettrica (come lIslanda). In un mercato sempre pi elitario sar inevitabile laccentramento
di grandi poteri computazionali in poche mani, rendendo pi accessibile la soglia del 50%+1 .
Inoltre nel futuro le ricompense scenderanno e potrebbero diventare talmente basse da non
attrarre nuovi miners, la difficolt potrebbe quindi crescere pi lentamente della potenza di
calcolo dei miners, di fatto abbassandosi. Difficolt minori ed una comunit ristretta di miners
renderebbero il controllo della catena pi accessibile.
86

Figura(4.1) torta rappresentante la percentuale di potere computazionale posseduta da ogni


mining pool noto (fonte [80] estratta il 22/3/2014)

Abbiamo gi spiegato che non esistono contromisure per impedire ad un miner con la
maggioranza delle risorse di controllare la catena. Esistono per suggerimenti per difendere
la rete da una revisione profonda della storia delle transazioni. Osserviamo innanzitutto come
un tentativo di revisione profondo, cio creato da un biforcazione profonda nella catena, sia
chiaramente visibile. Gli utenti onesti si accorgerebbero subito di una revisione appena
venissero a conoscenza del lungo ramo alternativo. Gli utenti potrebbero quindi basarsi su
unipotesi conservatrice: se un utente stato a lungo nella rete conoscendo una certa catena,
diffider di qualsiasi nuovo ramo che cerchi di biforcarla in profondit. Lipotesi ragionevole
poich una tale biforcazione pu essere solo conseguenza di un attacco. Gli utenti da lungo
tempo sulla rete potrebbero quindi crearsi delle istantanee di sicurezza di alcuni blocchi
abbastanza in profondit nella catena da essere ritenibili storici, cio non modificabili.
87

Queste istantanee sono dette checkpoint e consistono nel salvare le informazioni di quel
blocco proteggendole crittograficamente da modifiche future. Questi utenti potrebbero quindi
decidere di ignorare il nuovo ramo andando contro le regole del protocollo. Si creerebbe una
spaccature nella comunit degli utenti. Gli utenti da lungo tempo sulla rete continuerebbero a
difendere il vecchio ramo (contro le regole) mentre i nuovi utenti seguirebbero le specifiche e
accetterebbero il nuovo ramo fraudolento. Verrebbe a crearsi una situazione simile a quella
della biforcazione del 2013 (vedi sezione 1.3.3) e sarebbe necessaria la stessa soluzione.
Dovrebbe emergere nella comunit un gruppo di utenti autorevoli che decidano per lintera
comunit, convincendo tutti i nodi onesti a rifiutare il nuovo ramo. Questo sarebbe sia contro
le regole di Bitcoin che contro i suoi principi base di valuta decentralizzata.

Il protocollo attuale utilizza gi la tecnica dei checkpoint ma con unimportante


differenza. Non lutente a crearsi i propri checkpoint ma sono gli sviluppatori a creare gli
stessi checkpoint per tutti. Infatti in ogni nuova versione del client Bitcoin ufficiale, bitcoind,
viene aggiunta una lista di checkpoint di blocchi storici. In questo modo anche un nuovo
utente pu difendersi da tentativi di revisione della storia. Lo svantaggio di questa soluzione
che lutente deve affidarsi ad unentit terza (il team degli sviluppatori). Chiaramente i
checkpoint forniti possono essere subito controllati sulla catena, quindi non c rischio di
truffe da parte degli sviluppatori. Doversi basare su unentit centrale distrugge per lidea di
decentralizzazione che sarebbe possibile mantenere con la tecnica del checkpoint personale, e
quindi agli utenti pi puristi la soluzione non piaciuta.

4.1.2 Selfish Mine



Mostriamo ora una tecnica di attacco potenzialmente devastante per la stabilit di
Bitcoin se applicata. Questa tecnica stata illustrata in [10] e si basa sulla strategia di un
mining pool di mantenere segreti i blocchi estratti per creare una biforcazione segreta della
catena, i blocchi sono rivelati solo per sorpassare il ramo pubblico della catena e rendere nulli
gli sforzi degli altri miner per costruire quel ramo. Normalmente un miner si aspetta un
guadagno direttamente proporzionale alla propria frazione di potere computazionale totale,
ma utilizzando la tecnica di Selfish-Mine possibile avere guadagni probabilisticamente
maggiori di quelli onestamente attesi. La tecnica mostrata dimostra quindi come sia falsa
88

lipotesi secondo cui, grazie agli incentivi, sia conveniente seguire le regole di mining dettate
dal protocollo. Vedremo infatti come una tecnica di mining alternativa possa portare, in
alcune circostanze, a guadagni maggiori.

Lidea alla base di Selfish-Mining (o mining egoista) di costringere i nodi onesti a


compiere del lavoro inutile su rami della catena che saranno potati, sprecando quindi la loro
potenza di calcolo senza ottenere ricompense. Per fare questo il miner fraudolento tiene
segreti i propri blocchi e li rivela solo per annullare il lavoro dei nodi onesti. Il miner
fraudolento crea un lungo ramo segreto della catena di cui solo lui a conoscenza, lasciando i
nodi onesti a lavorare sul ramo pubblico e pi corto della catena. Questo permette al miner
fraudolento di inserire nella catena una percentuale di blocchi maggiori della percentuale di
potere di calcolo posseduta e quindi di guadagnare in proporzione pi dei nodi onesti.

La strategia adottata dallalgoritmo di selfish mining la seguente:

Quando il ramo pubblico pi lungo del ramo privato, il miner fraudolento sa di avere
bassa probabilit di superare il ramo onesto poich ha potenza di calcolo minore e parte in
svantaggio (vedi sezione 2.4). Quindi ogni volta che il proprio ramo privato viene superato dal
ramo pubblico lalgoritmo abbandona il proprio ramo privato e inizia a costruire sul ramo
pubblico come qualsiasi nodo onesto.

Quando il miner fraudolento trova un nuovo blocco non lo comunica agli altri ma lo
tiene privato. Aggiunge questo blocco alla propria catena privata se esiste, senn inizia un
nuovo ramo privato con il blocco appena trovato, creando una biforcazione segreta. Il miner
fraudolento in vantaggio sui miners onesti perch conosce gi un blocco e pu dedicarsi alla
ricerca del blocco successivo mentre gli altri stanno ancora cercando di estrarre il primo.
Adesso pu capitare che il miner fraudolento trovi un nuovo blocco da aggiungere al suo ramo
privato oppure che i miners onesti trovino il blocco successivo del ramo pubblico.

Se i miners onesti hanno trovato un blocco, il miner fraudolento stato raggiunto ed


in difficolt, perch il suo blocco trovato in conflitto con il blocco onesto, quindi
pubblica immediatamente il proprio blocco. Adesso si tratta di una gara tra il blocco
onesto e quello del miner fraudolento per vedere chi raggiunger per primo il maggior
numero di miners. Infatti entrambi i blocchi sono validi e quindi ogni miner accetter il
primo blocco che riceve. Si creata una biforcazione in cui il miner fraudolento e tutti i
miners che hanno ricevuto per primo il suo blocco lavorano ad un ramo e gli altri
89

miners lavorano al ramo del blocco onesto. Se scoperto un nuovo blocco sul ramo del
miner fraudolento allora quel ramo diventer pi lungo, il blocco del miner
fraudolento entrer nella catena ed il miner fraudolento otterr la ricompensa.
Altrimenti sar il ramo del blocco onesto a vincere e la ricompensa sar sua, lasciando
il miner egoista senza guadagno (guadagno che avrebbe invece avuto se avesse
pubblicato subito il blocco come richiesto dal protocollo). Poich il miner egoista vuole
che il suo ramo diventi il pi lungo e quindi quello definitivo pubblicher subito un
secondo blocco appena lo trova, invece di tenerlo nascosto. Osserviamo come il miner
sia aiutato nel lavoro sul suo ramo egoista dai miner onesti inconsapevoli che hanno
ricevuto il suo blocco prima di quello onesto.
Se il miner egoista ha trovato un secondo blocco nel suo ramo privato (ed i nodi onesti
non hanno ancora trovato il primo blocco del ramo pubblico) allora mantiene il ramo
privato e continua a cercare di aggiungergli nuovi blocchi. Quando i miner onesti
trovano un nuovo blocco il miner egoista pu trovarsi in due situazioni:
o Il ramo privato ha un vantaggio di almeno due blocchi sul ramo pubblico: il
miner egoista pubblica solo il primo blocco segreto della sua catena, se
necessario creando una biforcazione altrimenti aggiungendolo in testa al ramo
egoista creato da una precedente biforcazione. Cos il ramo pubblico della
catena sar lungo quanto quello egoista.
o Il ramo privato ha un vantaggio di un solo blocco sul ramo pubblico: il miner
egoista pubblica immediatamente i suoi due blocchi privati. Cos facendo la
catena privata pi lunga (di un blocco) della catena pubblica e quindi tutti i
miners laccetteranno. Il miner egoista guadagna tutte le ricompense di tutti i
blocchi della catena privata che ha costruito (e aggiunto sul ramo egoista), i
miners onesti perdono invece le ricompense dei blocchi che avevano estratto
sul ramo pubblico (perch questi blocchi fanno parte di un ramo potato).
Adesso il nodo egoista pu ricominciare tutto da capo.
90

Figura 4.2 algoritmo Selfish-Mine tratto da [10]

Calcoliamo ora il guadagno atteso da un miner (o mining pool) che utilizza lalgoritmo
di Selfish-Mine.

Indichiamo con la frazione della potenza di calcolo dellintera rete controllata


dallattaccante. Quindi sar anche la probabilit dellattaccante di estrarre un nuovo blocco.
La frazione della potenza di calcolo dellintera rete controllata da nodi onesti sar quindi 1- .
Osserviamo subito che 0 < < infatti il miner egoista avr di certo una frazione della
potenza di calcolo per quanto piccolo che sia (quindi > 0) e non possiede pi di met della
potenza di calcolo totale ( < ), altrimenti non avrebbe bisogno di usare nessuna tecnica
speciale poich controllerebbe gi la catena. Quando due, o pi, nodi comunicano
simultaneamente un nuovo blocco gli altri nodi accetteranno il primo blocco di cui vengono a
conoscenza. Chiamiamo quindi la frazione di miners che accetta i nuovi blocchi inviati dal
miner fraudolento. 1- sar quindi la frazione di miners che accettano invece i nuovi blocchi
inviati da miner onesti. una variabile che dipende dalla latenza delle connessioni sulla rete
91

e dalla sua topologia. Inoltre pu variare anche a seconda di quale miner onesto invia il
nuovo blocco, poich ogni miner ha, in generale, un insieme diverso di connessioni. Per
evitare di dover considerare un diverso in ogni situazione approssimeremo i vari distinti
con un unico stimato. Tutti i miners collegati direttamente nella rete al miner egoista
riceveranno subito il suo blocco, possibile per che alcuni di questi miner siano collegati
direttamente anche al miner onesto che ha trovato il nuovo blocco, nel qual caso sar la
latenza delle connessioni a decidere quale blocco arrivi prima. Inoltre potrebbe capitare che
uno dei miners collegati direttamente al miner fraudolento sia il nodo onesto che ha appena
estratto il nuovo blocco. Potremo quindi utilizzare come prudente stima di il numero di
miner collegati direttamente al miner egoista meno il numero medio di collegamenti di un
miner onesto con altri miners, diviso per il numero totale di miners. Spiegheremo in seguito
come lattaccante possa aumentare il valore di a suo vantaggio.

Infine abbiamo bisogno di un parametro per caratterizzare il guadagno dovuto


allinserimento di un nuovo blocco nella catena (definitiva). Questo guadagno dato dalla
somma della ricompensa e delle commissioni. La ricompensa fissa (nellarco di quattro
anni), le commissioni invece variano a seconda delle transazioni inserite nel blocco.
Empiricamente si osserva per che il guadagno principale deriva dalla ricompensa, che oggi
di 25 BTC contro il valore di solito inferiore ad 1 BTC della somma delle commissioni. Le
commissioni quindi costituiscono in genere meno del 4% del guadagno complessivo. Poich
non c sostanziale differenza tra i blocchi estratti da un miner egoista o da uno onesto le
commissioni saranno in media uguali, quindi ignoreremo il guadagno dato dalle commissioni
nella trattazione. Il guadagno pu quindi considerarsi costante per ogni blocco, e pari alla
ricompensa corrente. Per semplificare la trattazione indicheremo come unitario il guadagno
di ogni blocco intendendo che viene guadagnata una ricompensa, che ricordiamo ha sempre
lo stesso valore (se considerata entro un periodo di quattro anni). Ricordiamo che la
ricompensa per un blocco ottenuta solo se il blocco sar parte della catena definiva. Quindi
estrarre un blocco non di per s garanzia di guadagno.

Seguiamo quindi il procedimento utilizzato in [10] per rappresentare lavanzamento


del sistema con un automa a stati finiti, etichettato con la probabilit di ogni cambiamento di
stato.
92

Figura 4.3 automa etichettato con le probabilit associate ad ogni transizione di stato, fonte
[10]

Il numero indicato nel nome di ogni stato indica il vantaggio che ha il miner egoista sui miner
onesti, cio il numero di blocchi di differenza tra il ramo privato ed il ramo pubblico della
catena. Nellautoma esistono due stati 0 per rappresentare il comportamento dellalgoritmo
nei due casi distinti di parit. Lo stato 0 rappresenta il momento in cui esiste ununica catena
pubblica senza biforcazioni. Siamo allinizio del procedimento di ricerca descritto in
precedenza. Se un miner onesto trova un nuovo blocco (con probabilit 1-) il miner egoista
accetter il nuovo blocco e re inizier da capo la ricerca, quindi restiamo nello stato 0 ed i
miner onesti guadagnano una ricompensa. Se il miner egoista scopre un nuovo blocco (con
probabilit ) allora ha un blocco di vantaggio (quindi passiamo allo stato 1), il miner biforca
la catena segretamente inserendo questo blocco come primo blocco del suo ramo privato. Il
miner per non guadagna ancora nulla dalla scoperta del nuovo blocco, poich il blocco
privato e non ancora entrato a far parte della catena definitiva.

Nello stato 1 abbiamo due possibilit:

Se il miner egoista trova un nuovo blocco (con probabilit ) lo aggiunge al suo ramo
privato aumentando a 2 il suo vantaggio. Poich sono aggiunti al ramo privato, questi blocchi
non garantiscono ancora nessuna ricompensa.

Se un nodo onesto estrae un nuovo blocco (con probabilit 1-) allora i due rami hanno
altezza uguale essendo entrambi costituiti da un solo blocco, ci spostiamo quindi nello stato 0.
Ora che siamo nello stato 0 il miner egoista comunica subito agli altri miner il proprio blocco
segreto per cercare di battere sul tempo il blocco del miner onesto. Inizia quindi una gara per
trovare il nuovo blocco in cui il miner egoista aiutato inavvertitamente da alcuni miners
onesti. Ci sono tre possibilit con diverse probabilit:
93

1. Probabilit : il miner egoista estrae per primo il blocco successivo, lo comunica


subito rendendo il ramo da lui creato il pi lungo e quindi accettato da tutti. Il miner
egoista ha guadagnato due ricompense (quella del nuovo blocco e quella del blocco
precedentemente segreto).
2. Probabilit (1-) : un miner onesto che sta lavorando al ramo del miner egoista
estrae per primo il blocco successivo rendendo il ramo egoista il pi lungo e quindi
accettato da tutti. Il miner onesto guadagna la ricompensa per il nuovo blocco ma il
miner egoista guadagna la ricompensa per il blocco precedente (quello cha ha causato
la biforcazione).
3. Probabilit (1- ) (1-) : un miner onesto estrae per primo il blocco successivo del
ramo onesto, rendendolo accettato da tutti. Il miner egoista non ha guadagnato nulla
mentre i miner onesti hanno guadagnato due ricompense (quella del nuovo blocco e
quella del blocco onesto precedente).

Se siamo nello stato 2 possono accadere due eventi diversi:

Probabilit : il miner egoista estrae il blocco successivo della sua catena segreta e lo
mantiene segreto aumentando il vantaggio sul ramo onesto (il sistema passa allo stato
3). Per ora il miner egoista non guadagna nulla dal nuovo blocco scoperto.
Probabilit 1- : un miner onesto trova il blocco successivo sulla catena pubblica. I nodi
onesti sono troppo vicini e quindi il miner egoista comunica tutto il suo ramo privato
che pi lungo di un blocco rispetto a quello pubblico e quindi il ramo privato viene
accettato nella catena al posto del nuovo blocco del miner onesto. Adesso il miner
egoista non ha pi informazioni private e re inizia a cercare blocchi dallo stato 0. Il
miner egoista ha guadagnato due ricompense (quella dei due blocchi che ha tenuto
segreti).

Se invece siamo in un qualsiasi stato k con k>2 allora abbiamo le due seguenti possibilit:

1. Probabilit : il miner egoista estrae il blocco successivo della sua catena segreta e lo
mantiene segreto aumentando il vantaggio sul ramo onesto (il sistema passa allo stato
k+1). Per ora il miner egoista non guadagna nulla dal nuovo blocco scoperto.
2. Probabilit 1- : un miner onesto trova il blocco successivo sulla catena pubblica. La
distanza tra il miner egoista ed i miner onesti diminuisce di uno, ma resta almeno due,
quindi il miner egoista non deve preoccuparsi. Il miner egoista comunica in risposta il
94

suo blocco pi vecchi ancora privato. Adesso siamo in una situazione sicura per il
miner fraudolento perch ha un vantaggio di almeno due blocchi. Appena il vantaggio
si ridurr ad un solo blocco (cio stato 2 con transazione 1-) pubblicher lintera
catena segreta ottenendo le ricompense di tutti i suoi blocchi segreti. Quindi il miner
onesto non trarr nessun guadagno dal nuovo nodo estratto, mentre invece il miner
egoista otterr la ricompensa per il blocco che ha appena reso pubblico.

Calcoliamo ora il guadagno atteso del miner egoista. Per farlo dobbiamo calcolare la
probabilit del sistema di trovarsi in ogni stato.

Innanzitutto sappiamo che il sistema deve trovarsi in uno degli stati e quindi:


(4.1)

Vediamo poi che P0 = (1-)P0+1 P0 + (1-)P2 quindi (1-1+)P0=P0 + (1-)P2 . Ma P0 = (1-) P1 e


quindi:

P0 = (1-) P1 +(1-)P2

(4.2)

Vediamo che P1= P0 quindi sostituendo P0 otteniamo P1= (1-) P1 + (1-) P2 e quindi :

P1 = (1-) P2
(4.3)

Consideriamo ora P2 . Vediamo che P2 = P1+ (1-) P3 quindi P2 = (1-) P2 + (1-) P3 e quindi
P2 = (1-) P3 . Analogamente P3 = P2 + (1-) P4 quindi P3 = (1-) P3 + (1-) P4 e quindi P3 =
(1-) P4 . Lo stesso ragionamento vale per tutti gli stati successivi quindi:


(4.4)

Combinando le formule (4.3) e (4.4) otteniamo :


(4.5)
95

Nel caso k = 2 otteniamo:


(4.6)

Sostituendo la formula (4.6) nella formula (4.2) otteniamo :


(4.7)

Adesso quindi abbiamo le probabilit di tutti gli stati espresse in funzione di P1 , quindi
possiamo sostituirle nella formula (4.1) ottenendo:


(4.8)

da cui ricaviamo il valore di P1:


(4.9)

E sostituendo P1 nelle formule delle probabilit degli altri stati otteniamo:


(4.10)

Calcoliamo quindi il guadagno atteso utilizzando le probabilit appena calcolate ed i


96

guadagni sopra indicati (dal testo sottolineato). Otteniamo:

Se sommiamo i due guadagni otteniamo:

Possiamo poi osservare che minore di uno (ricordando che 0 < < , e quindi il
denominatore positivo), infatti:

Questa somma minore di uno poich lalgoritmo fa sprecare risorse ai miner onesti. Per un
miner la percentuale di guadagno rispetto al guadagno totale di tutti i partecipanti dovrebbe
essere pari alla percentuale di potere di calcolo che detiene. Ma per un miner egoista questo
non vero, infatti il rapporto tra il suo guadagno ed il guadagno totale non necessariamente
uguale ad come sarebbe per un miner onesto, come dimostrato dalla formula seguente:

Questo guadagno relativo pu essere minore, maggiore o uguale ad a seconda del valore di
e . Quindi esiste un valore soglia di al variare di per cui i guadagni sono effettivamente
proporzionali alla potenza di calcolo. Ma se supera questa soglia i guadagni saranno in
proporzione maggiori. In particolare, fissato un possiamo calcolare che il miner egoista
ottiene un guadagno maggiore del dovuto se compreso nel seguente intervallo:


(4.11)
97

Infatti il guadagno di un miner egoista maggiore di quello che gli spetterebbe se seguisse il
protocollo, se maggiore di , e quindi:

(ricordando che 0 < < e quindi il denominatore positivo, e che < 1 e quindi < 3/2
sempre vero).

Non solo questo guadagno proporzionalmente maggiore ma aumenta anche pi che


linearmente allaumentare della frazione di potere computazionale posseduto. In altre parole
pi poter di calcolo il miner egoista controlla e maggiore sar lingiustizia dei suoi guadagni.
Se analizziamo la formula (4.11) possiamo fare alcune osservazioni sulla soglia minima al
variare di . Sappiamo che 0 1, e sappiamo che allaumentare del valore di la soglia si

abbassa, perch (1-)/(3-2) strettamente decrescente quando 0 1. Vediamo quindi i

tre casi pi interessanti:

= 0: questo il caso pessimo per il miner egoista. = 0 significa che il miner egoista
sempre pi lento ad inoltrare blocchi, a qualsiasi altro miner, rispetto a qualsiasi altro
miner onesto. In questo caso la soglia sar (1-0)/(3-0) =1/3 . Questo vuol dire che nel
caso pessimo per il miner egoista potrebbe aggiudicarsi guadagni ingiustificatamente
maggiori dei miners onesti se controllasse pi di un terzo del potere computazionale
complessivo.
= : in questo caso la met dei miner riceve prima i blocchi del miner egoista e
laltra met di un miner onesto. In questo caso equilibrato la soglia sar pari a (1-
1/2)/(3-1) = .
= 1: questo il caso ottimo per il miner fraudolento. = 1 significa che il miner
egoista sempre pi veloce ad inoltrare blocchi, a qualsiasi miner, rispetto a qualsiasi
miner onesto. In questo caso la soglia sar (1-1)/(3-2) =0 . Questo vuol dire che il miner
egoista guadagnerebbe pi del dovuto indipendentemente dalla frazione del potere
computazionale complessivo posseduta. In questo scenario sarebbe sempre
conveniente utilizzare la tecnica di Selfish-Mining.

Vediamo quindi il grafico del guadagno relativo di un miner egoista al variare di e .


98

Figura 4.4 il grafico mostra il guadagno relativo di un miner che utilizzi la tecnica di Selfish-
Mine al variare di , per i tre valori di mostrati nel testo. Si nota dalla curva che il miner
egoista guadagna di meno se la sua potenza di calcolo minore della soglia. Se invece supera la
soglia, il guadagno relativo maggiore del guadagno relativo onesto e cresce pi che
linearmente allaumentare della potenza di calcolo.

Cerchiamo di capire tutto questo cosa comporti per Bitcoin. Ipotizziamo che un
attaccante voglia utilizzare la tecnica di Selfish-Mine per ottenere guadagni illeciti, quale la
strategia per lui migliore da seguire? Lo scopo dellattaccante superare la soglia dopo la
quale la tecnica egoista diventa vantaggiosa. Questa soglia dipende da , quindi lattaccante
dovr cercare di ottenere un il pi alto possibile. Per fare questo lattaccante pu creare
tanti nodi ai suoi servizi da aggiungere ai mining pool onesti. Questi nodi dovrebbero avere
capacit di calcolo bassissime per non avvantaggiare i mining pool onesti a spese del miner
egoista. entra in gioco quando il miner egoista ha scoperto un solo blocco e lha tenuto
99

segreto, ma prima che ne possa scoprire un secondo uno dei miners onesti scopre un nuovo
blocco iniziando una gara con il miner egoista per che invia prima il proprio blocco agli altri
miners. Il miner egoista deve quindi sapere in anticipo quando un mining pool onesto sta per
comunicare un blocco per batterlo sul tempo. Per prima cosa il miner egoista cerca di avere il
maggior numero possibile di connessioni dirette con gli altri miners per permettere ai suoi
messaggi di raggiungere il maggior numero possibile di miners con un numero di
intermediari (hops) pari ad uno. Poi il miner utilizza i suoi nodi infiltrati nei mining pool
onesti come sentinelle. Appena uno di questi nodi viene informato, dal mining pool a cui
appartiene, che stato trovato un nuovo blocco, da lallarme al miner egoista.
Immediatamente il miner egoista e tutti i nodi infiltrati iniziano a trasmettere il blocco segreto
ignorando il nuovo blocco onesto. Con questa tecnica il blocco segreto sar in generale pi
rapido di qualsiasi blocco onesto e quindi sar molto vicina ad uno.

Lattaccante pu quindi ottenere vicino ad uno e quindi una soglia vicina a zero. Per
questo allattaccante basterebbe una piccola frazione delle risorse computazionali per
ottenere guadagni relativamente maggiori dei nodi onesti utilizzando la tecnica di Selfish-
Mine. Adesso che lattaccante ha superato la soglia ottiene guadagni maggiori e quindi pu
offrire ai miner onesti guadagni migliori se entrano a far parte del suo mining pool egoista.
Qualsiasi miner razionale sceglier di aderire al mining pool egoista piuttosto che ad uno
onesto grazie ai guadagni relativamente maggiori. Come abbiamo gi spiegato, il guadagno
relativo cresce pi che linearmente e quindi allaumentare del numero di miner nel pool (cio
di ) aumenta il guadagno relativo di tutti miners del pool. Quindi il miner egoista ben felice
di accettare nuovi miners nel suo pool. Il mining pool egoista il pi conveniente di cui far
parte quindi tutti i miner razionali vorranno entrarci. Le dimensioni del mining pool egoista
crescerebbero fino a portarlo a controllare la maggioranza delle risorse complessive. A questo
punto il pool deterrebbe pi del 50% del potere di calcolo e quindi controllerebbe la catena
ottenendo tutte le ricompense. Il pool non avrebbe ormai pi bisogno di usare lalgoritmo di
Selfish-Mine n di accettare altri miners, perch otterrebbe gi il massimo guadagno possibile.
Il mining pool potrebbe anche sfruttare la propria posizione di dominanza come discusso
allinizio di questa sezione (vedi sezione 4.1.1).

Abbiamo visto come nellimplementazione attuale di Bitcoin sia possibile per un


attaccante raggiungere una soglia vicino a zero, rendendo il protocollo esposto ad un
attaccante egoista con pochissime risorse iniziali. Per risolvere questo problema gli inventori
100

di Selfish-Mine propongono la seguente soluzione in [10]. Lunica soluzione possibile


rendere la soglia la pi alta possibile. Il limite teorico di 1/3 nel caso di =0 ma il vero limite
(nel caso di = ). Infatti per ottenere = 0 un miner dovrebbe accettare sempre i
blocchi di miners onesti e mai quelli di miners egoisti. Ma un miner non pu sapere se il
blocco ricevuto proviene da un miner egoista o onesto. Se il miner onesto ignorasse sempre i
blocchi di un determinato miner che ritiene egoista potrebbe in realt svantaggiare un miner
onesto aiutando di fatto il miner egoista. Il meglio che pu fare un qualsiasi nodo di scegliere
a caso tra qualsiasi blocco riceve, scegliendo la met delle volte un blocco onesto e laltra met
un blocco egoista. Gli autori propongono quindi la seguente modifica: quando un miner riceve
pi blocchi di uguale altezza nella catena gli inoltra tutti ai vicini e sceglie su quale lavorare
uniformemente a caso (invece che scegliere sempre il primo ricevuto). Questo cambiamento
retro compatibile e non introduce nuove vulnerabilit poich si limita a rendere
esplicitamente casuale una scelta che in precedenza era casualmente determinata dalla
topologia della rete. A mio avviso la miglior difesa per i miner onesti resta comunque quella di
avere unaltissima connettivit con gli altri miners per abbattere il tempo di trasmissione dei
nuovi blocchi.

Unaltra tecnica di difesa potrebbe essere quella di isolare il mining pool egoista.
Chiaramente per questo particolarmente difficile. Infatti il mining pool egoista potrebbe
restare anonimo utilizzando nodi temporanei per inoltrare i nuovi blocchi creati. Oppure
potrebbe dividersi in pi mining pool pi piccoli che in segreto lavorerebbero ad un unico
problema condividendo i blocchi segreti trovati. Inoltre un mining pool distribuito tra diversi
mining pool potrebbe pi facilmente difendersi da nodi onesti infiltrati. Infatti i nodi onesti
potrebbero infiltrarsi in un mining pool egoista rendendo pubblici i blocchi privati di cui
vengono a conoscenza. La divisione in pi mining pool permetterebbe di isolare i mining pool
infiltrati da nodi onesti ed espellerli.

Un contrasto ad un mining pool egoista potrebbe venire da miners altruisti che si


rifiuterebbero di entrare nel pool indipendentemente dal profitto. Esistono varie motivazioni
che potrebbero portare alcuni utenti a rifiutare il profitto maggiore offerto dal miner egoista.
Bitcoin molto popolare tra utenti con radicati ideali di libert che non accetterebbero mai di
diventare miners egoisti. Ugualmente alcuni miners con grandi potenze di calcolo potrebbero
essere preoccupati che unirsi ad un mining pool egoista porterebbe nel lungo periodo al
controllo del mining pool della maggioranza delle risorse di calcolo. La sfiducia provocata
101

dalla nascita di unentit centrale con il controllo sulla catena potrebbe spaventare gli utenti
portando ad una perdita di valore dei bitcoins su cui si basano le entrate di questi grandi
miners. Questi utenti potrebbero quindi ritenere non economicamente vantaggioso nel lungo
periodo aderire al mining egoista.

Indipendentemente dalle contromisure applicate abbiamo mostrato che esiste una


soglia relativamente bassa che renderebbe luso di Selfish-Mine vantaggioso e porterebbe nel
lungo periodo al controllo totale della catena. La soglia pi sicura ottenibile nella pratica del
25% , ma anche teoricamente non pu essere maggiore del 33%. Basterebbe oggi che un
mining pool raggiungesse questa soglia per poter iniziare ad adoperare la tecnica proposta
fino ad arrivare inevitabilmente al controllo del 50%+1 delle risorse. Osserviamo che dalla
Figura 4.1 si vede che gi oggi il principale mining pool (GHash.IO) possiede il 27% del potere
computazionale totale. Questa percentuale minore della soglia teorica del 33% , ma
maggiore della soglia del 25% proposta come soluzione. Nella pratica gi oggi questo mining
pool potrebbe utilizzare lalgoritmo Selfish-Mine per incrementare fraudolentemente i propri
guadagni nel breve periodo, fino a crescere abbastanza da ottenere il controllo della rete.
Poich il grafico (Figura 4.1) si basa sul numero di blocchi resi pubblici e non sulleffettiva
potenza di calcolo, non sappiamo se di fatto alcuni dei mining pool presenti non stiano gi
utilizzando questa tecnica. Fino ad oggi per nessun miner ha denunciato laccaduto, quindi
possiamo essere ragionevolmente sicuri che i mining pool principali siano ancora onesti.

4.1.3 Information Witholding Attacks



Bitcoin si basa su di una rete peer-to-peer su cui eseguito un protocollo open source.
Ogni nodo della rete utilizza un proprio client Bitcoin per interfacciarsi con la rete. Questi
software possono differenziarsi molto luno dallaltro, anche il software pi usato, bitcoind,
disponibile in molte versioni diverse che convivono sulla rete. Il protocollo standardizza il
tipo e formato di indirizzi, messaggi, blocchi e transazioni e detta le regole che ogni peer deve
seguire. Un nodo sar costretto a rispettare il protocollo per gestire i dati (messaggi,
transazioni, blocchi e indirizzi) che circolano sulla rete, altrimenti i suoi dati non saranno
accettati dagli altri peer. Il nodo pu per modificare il protocollo a proprio vantaggio per la
parte che riguarda il suo comportamento interno. Come abbiamo visto nel caso del Selfish-
102

Mining un utente pu ad esempio cambiare la propria politica di mining per aumentare il


proprio guadagno. Un utente razionale utilizzer quindi le regole private che gli permettano il
guadagno maggiore, anche se dovessero essere in conflitto con le regole dettate dal
protocollo. Mostriamo quindi due tipi di attacchi che si basano su questosservazione.

Il protocollo impone che quando un nodo apprenda di una nuova transazione la


notifichi ai suoi vicini, permettendo alla transazione di diffondersi sullintera rete. Quando
per un miner viene a conoscenza di una nuova transazione nel suo interesse che meno
miner possibile ne vengano a conoscenza, in questo modo dovr competere con pochi altri
miners per ottenerne la commissione. Il miner quindi terr per s la notizia di una nuova
transazione senza comunicarla ai vicini. Questo tipo di attacco detto transaction
witholding attack. Questo comportamento perfettamente razionale e, se utilizzata su larga
scala, potrebbe impedire il diffondersi delle transazioni sulla rete. La conseguenza sarebbe un
numero minore di transazioni in ogni blocco e quindi un aumento del tempo necessario a
validare una singola transazione. Infatti se in un blocco ci sono meno transazioni ed ogni
blocco validato ogni dieci minuti allora ogni dieci minuti saranno validate meno transazioni,
quindi la singola transazione avr tempi di validazione medi maggiori. Nella pratica
questattacco non efficace poich ogni peer ha un alto numero di connessioni con altri peers
e i miners hanno un numero di connessioni aperte molto elevato. Quindi in pochi hops una
transazione di un qualsiasi utente raggiunge da sola la maggior parte dei miners.

Un tipo di attacco completamente diverso detto block witholding attack. In questo


tipo di attacco l'attaccante un miner che vuole aumentare fraudolentemente i propri
guadagni, cercando di guadagnare in proporzione pi della propria potenza di calcolo (come
abbiamo gi visto per Selfish-Mine). Un miner divide la sua potenza di calcolo in due gruppi di
miners. Il primo gruppo verr utilizzato dal miner fraudolento per costruire un mining pool e
cercare di estrarre blocchi onestamente. L'altro gruppo sar disseminato all'interno dei
principali mining pools onesti. L'attaccante finora non ha fatto nulla di fraudolento, anzi
sembra che stia aiutando i mining pools onesti poich sta aumentando la loro potenza di
calcolo a spese proprie. In realt i miner fraudolenti infiltrati nei mining pools onesti lavorano
ai nonce forniti dal pool ma ogni volta che trovano una soluzione non la comunicano. Si
chiama block witholding, proprio perch i miner infiltrati trattengono le soluzioni trovate.
Osserviamo che queste soluzioni non possono essere utilizzate dai miner infiltrati per tradire
il mining pool e intascare loro la ricompensa. La proof-of-work cercata era calcolata
103

sull'intestazione fornita dal gestore del pool che contiene la radice di un merkle tree con
transazione coinbase gi stabilita. Questa transazione indirizza la ricompensa all'indirizzo
del gestore del pool ed il miner truffatore non pu modificarlo senza cambiare la radice del
merkle tree e quindi invalidare la proof-of-work appena trovata.

Facciamo ora un'analisi rigorosa dei vantaggi ottenuti dal miner fraudolento,
definendo con la frazione della potenza di calcolo totale posseduta dall'attaccante e la
frazione della potenza computazionale che l'attaccante utilizza per i nodi infiltrati. I miner
infiltrati fanno in modo che i pool onesti guadagnino di meno, infatti il guadagno relativo, pari
al rapporto tra la percentuale di blocchi estratti e la potenza di calcolo utilizzata :

poich i nodi infiltrati contribuiscono alla potenza di calcolo del pool ma non alla scoperta di
nuovi blocchi. Di conseguenza in proporzione il mining pool controllato dall'attaccante
guadagner di pi, ottenendo un vantaggio pari a:

Il guadagno dell'attaccante sar quindi pari alla somma dei guadagni dei suoi nodi infiltrati
(che vengono pagati dai mining pools a cui partecipano) e del guadagno maggiorato del suo
mining pool privato. Il guadagno relativo sar quindi pari a:

Fissato , questo guadagno sar massimo quando 2 sar massimo e quindi quando = .
Quindi la strategia ottima per l'attaccante di dedicare met della propria potenza di calcolo
ai miners infiltrati.

In generale i mining pools per calcolare la divisione dei pagamenti da fare ai miners
membri richiedono che i miners inviino tutte le soluzioni trovate con un target molto pi
semplice di quello corrente. In questo modo il gestore del pool pu controllare che
effettivamente i miners stanno lavorando al problema (senza che debbano trovare la
104

soluzione). I miners infiltrati invierebbero al gestore tutti i nonce che soddisfano queste
difficolt minori ma mai i nonce che sono soluzioni anche della difficolt effettiva. Un miner
singolo ha bassissima probabilit di trovare una soluzione, quindi il gestore di un pool non
potrebbe capire se un miner non invia mai soluzioni perch sfortunato o perch un
infiltrato fraudolento. Il gestore potrebbe accorgersi dell'attacco se nel lungo periodo il
numero di blocchi estratti minore di quello atteso, ma non avrebbe nessun modo di capire
quali dei miners membri del pool siano degli infiltrati.

4.1.4 Botnets36

Un altro tipo di attacco basato sul mining consiste nelleseguire operazioni di mining e
collezionare le ricompensa senza spendere le risorse necessarie (elettricit e potere
computazionale). Lattaccante usa virus, trojan o altro malware per infiltrarsi nei computer
delle vittime e scaricare sulla vittima i costi di mining. Un attacco di questo tipo inizia con
linfezione di una o pi vittime trasformandole in miners involontari. Il programma usato non
di per s un programma maligno, spesso sono utilizzati gli stessi programmi creati dagli
sviluppatori ufficiali di Bitcoin. Il programma reso fraudolento dalla mancanza di consenso
tra lattaccante e la vittima. Il programma inizia a lavorare in background sul dispositivo della
vittima comunicando con lattaccante per ricevere le informazioni necessarie al mining o per
inviare i risultati. Lattaccante agisce come una sorta di grande mining pool distribuito che
divide lo spazio dei nonce da controllare tra i dispositivi infettati e colleziona i risultati. Per
portare avanti questattacco lattaccante per deve avere un server capace di gestire le
migliaia di connessioni necessarie. Per evitare questi costi un attaccante pu scegliere
unalternativa pi economica. Lattaccante predispone il malware per collegarsi direttamente
ad un proprio account in un mining pool onesto. Sar il mining pool a doversi occupare delle
connessioni e di distribuire il carico di lavoro tra i dispositivi. Questa soluzione presenta il
rischio di essere scoperti, rivelando lintera rete di dispositivi infettati. Un mining pool pu
infatti accorgersi che tutti questi miner hanno una bassissima potenza di calcolo e fanno tutti
riferimento allo stesso utente. Una soluzione comune di utilizzare un proxy che faccia ad
intermediari tra il mining pool onesto ed i dispositivi infettati. In generale comunque le
mining pool non cercano di smascherare questi tipi dattacco, infatti nellinteresse delle


36 Il termine botnet deriva dalle parole roBOT e NETwork ed usato per indicare un insieme di programmi che
comunicano attraverso la rete per cooperare ad un fine comune.
105

mining pool avere pi potere computazionale, poich questo aumenta le probabilit di


estrarre per primi un blocco, e quindi la percentuale trattenuta dalla mining pool. Inoltre una
botnet bandita potrebbe vendicarsi del mining pool utilizzano i dispositivi infetti per un
massiccio attacco di tipo denial of service distribuito37.

Lutilizzo di risorse rubate per il mining permette alti guadagni a bassi costi. Infatti, il
costo di un attacco del genere molto inferiore rispetto al costo dellhardware e
dellelettricit necessario per iniziare un miner onesto. Ottenendo profitti ingiustamente
questattacco diminuisce i guadagni attesi dei miners onesti e quindi aumenta i costi relativi
del mining onesto. Tuttavia oggigiorno la proof-of-work di un nuovo blocco diventata
talmente difficile da trovare da rendere necessari hardware appositamente progettati per il
mining. Inoltre i recenti antivirus si sono evoluti per contrastare anche questo tipo di
malware, quindi la vita attesa del programma nel dispositivo della vittima di pochi giorni.
Una botnet si basa su tantissimi dispositivi ma ognuno di questi dispositivi poco potente ed
ha vita38 limitata. Mantenere lintera struttura pu rivelarsi non pi economicamente
conveniente per unattaccante. quindi plausibile pensare che lutilizzo di botnet andr
progressivamente sparendo nel futuro di Bitcoin, o almeno finch la difficolt rester
sufficientemente elevata.

In [17] si pu trovare un recente e meticoloso studio delle pi note botnet dedicate al


mining. Nel testo sono presenti interessanti stime sul numero di dispositivi infettati e bitcoins
ottenuti dalle botnets studiate. Gli autori osservano anche che la maggioranza delle botnet (il
76%) partecipano a mining pool onesti e che i bitcoins guadagnati sono cambiati presso
servizi di cambio on-line (in media una settimana dopo averle ricevute) senza seri tentativi di
mascherare i propri indirizzi. Infine documentata la diminuzione dei profitti a causa
dellaumento della difficolt, mostrando come molte botnet si stiano spostando verso altre
valute digitali ancora convenienti per il mining.

4.2 Double Spending




37 Come successo nel caso della botnet denominata HitmanUK.

38 La vita intesa come durata del controllo dellattaccante sul dispositivo.


106

Abbiamo gi parlato degli attacchi di tipo double spending nella sezione 2.3 . Abbiamo
gi visto come sia stato introdotto il sistema delle conferme per rendere troppo costoso per
l'attaccante un tentativo di double spending che si basi su una biforcazione volontaria della
catena. Abbiamo visto come il valore convenzionale di sei conferme sia un parametro
arbitrario ragionevole per proteggersi da attaccanti con scarso potere computazionale ma
inadeguato per fronteggiare attaccanti con grandi potenze di calcolo (vedi Figura 2.5).
Sappiamo anche che aspettare sei conferme si traduce in media in unattesa di un'ora per
accettare una transazione come confermata. Abbiamo inoltre osservato nella sezione 4.1.1
come un attaccante che controlli pi della met del potere computazionale dell'intera rete
possa sempre eseguire attacchi double spending incontrastato.

4.2.1 Pagamento Veloce


L'attesa media di un'ora necessaria per confermare un pagamento accettabile in un


ambiente di commercio on-line dove i compratori devono comunque aspettare giorni prima
che l'oggetto sia spedito e recapitato al loro indirizzo. Per tutti i pagamenti nella vita
quotidiana (supermercato, benzinaio, sportello bancomat, ristorante) per questa attesa
insostenibile. Gli utenti hanno quindi l'opzione di utilizzare il metodo di Pagamento Veloce
che consiste nell'accettare una transazione senza aspettare la sua conferma nella catena, ma
basandosi solo sulle notizie raccolte dalla rete al momento del pagamento. Il pagamento
veloce impiega meno di dieci secondi per essere validato ma consigliato utilizzarlo solo
per pagamenti di somme modeste. Il pagamento veloce infatti estremamente vulnerabile ad
attacchi di tipo double spending. Questo prevedibile, poich il pagamento veloce non
considera la catena che lo strumento introdotto da Bitcoin proprio per tracciare le
transazioni ed evitare eventi fraudolenti come il double spending.

In caso di attacchi double spending contro utenti che utilizzano l'opzione di pagamento
veloce le caratteristiche dell'attaccante sono diverse da quelle di un attaccante di un attacco
double spending classico. Infatti la catena completamente ignorata nell'attacco quindi
l'attaccante non deve essere un miner e la sua potenza di calcolo ininfluente. Dal punto di
vista dell'attaccante la catena considerata intoccabile, quindi se la transazione corretta entra
in un blocco della catena l'attacco fallito. L'attacco ha successo se l'attaccante riesce a far
107

inserire in un blocco della catena la sua transazione alternativa invece della transazione
legittima. Nel seguito chiameremo transazione iniziale la transazione a favore della vittima e
fraudolenta la transazione che l'attaccante vuole sostituire alla transazione iniziale. Notiamo
che entrambe le transazioni devono essere transazioni valide, e che la transazione fraudolenta
deve contenere tutti gli input contenuti nella transazione iniziale (ma non necessariamente
viceversa).

Lo scopo dell'attaccante di far ricevere alla vittima la transazione iniziale ma fare in


modo che la maggioranza degli altri nodi accetti invece la transazione fraudolenta. Questo tipo
di attacco soprannominato race attack. Come abbiamo gi spiegato nella sezione 2.6,
quando un nodo riceve una transazione controlla subito se valida. Poich le due transazioni
sono in conflitto, ogni nodo considerer valida solo la prima transazione che riceve, e la
inoltrer ai vicini, la seconda transazione sar invece scartata. Lo scopo dell'attaccante
quindi fare in modo che la maggior parte dei nodi, ma non la vittima, venga a conoscenza della
trasmissione fraudolenta per prima. Se la vittima ricevesse per prima la transazione
fraudolenta allora considererebbe i fondi indicati come gi spesi dall'attaccante e quindi
rifiuterebbe poi la transizione iniziale come pagamento, portando al fallimento dell'attacco.
necessario quindi che la vittima riceva per prima la transazione iniziale. Per permettere
questo l'attaccante stabilisce una connessione diretta con la vittima, cos pu inviare alla
vittima la transazione iniziale ed essere sicuro che sia ricevuta prima che qualche vicino della
vittima gli comunichi la transazione fraudolenta. Per aumentare le probabilit dell'attacco
l'attaccante dissemina la rete di nodi aiutanti (helpers) che lo aiutino nella diffusione della
transazione fraudolenta. L'attacco avr maggiori probabilit di successo se i nodi aiutanti
sono collegati direttamente o con un hop al massimo a tanti nodi miners. L'unica accortezza
che l'attaccante deve prendere che questi nodi aiutanti non siano collegati direttamente alla
vittima, altrimenti correrebbe il rischio che la vittima venga a conoscenza della transazione
fraudolenta prima di quella legittima. Al momento dell'attacco l'attaccante comunica la
transazione fraudolenta ai nodi aiutanti con il compito di diffonderla e subito comunica la
transazione iniziale alla vittima. Pi gli aiutanti sono ben distribuiti e numerosi, e maggiore
sar il numero di nodi che verr a conoscenza della transazione fraudolenta prima di quella
iniziale. Gli autori di [4] hanno eseguito dei test sulla rete reale di Bitcoin mostrando come
bastino due aiutanti e la simultaneit tra l'invio delle due transazioni per assicurare
all'attaccante probabilit di successo vicine ad uno.
108

Vediamo ora le tecniche proposte per contrastare quest'attacco.

La prima proposta si chiama listening period: qualsiasi utente che accetta pagamenti
veloci resta in ascolto per un numero prefissato di secondi (quasi sempre minore di dieci)
prima di accettare un pagamento. Restare in ascolto significa che il nodo ascolta tutte le
transazioni che riceve dai vicini e controlla che nessuna di questa sia un tentativo di double
spending, cio contenga tra gli inputs gli stessi fondi usati nella transazione correntemente in
attesa. Il periodo di attesa di pochi secondi poich la diffusione dei messaggi sulla rete segue
le stesse dinamiche di un protocollo gossip, quindi in pochi salti (hops) iniziali la maggior
parte dei nodi venuta a conoscenza del messaggio. L'attacco pu per ancora avere successo
se l'attaccante modifica di poco la sua strategia: dopo aver comunicato la transazione iniziale
alla vittima, l'attaccante aspetta un periodo adeguato prima di inviare la transazione
fraudolenta ai suoi aiutanti. Questo periodo deve essere tale che la vittima abbia il tempo di
inoltrare la transazione iniziale appena ricevuta a tutti i suoi vicini, permettendo
contemporaneamente agli aiutanti di far arrivare per prima la transazione fraudolenta ad
un'alta percentuale dei nodi della rete. In questo modo l'attacco ha ancora alte probabilit di
successo poich la maggioranza dei nodi della rete considera valida la transazione
fraudolenta. Allo stesso tempo il periodo di ascolto diventa inutile poich tutti i vicini della
vittima hanno ricevuto per prima la transazione iniziale, quindi se riceveranno in seguito la
transazione fraudolenta la scarteranno, perch non valida, senza inoltrarla alla vittima. Quindi
la vittima sar schermata dai suoi stessi vicini e non potr sentire mai la transazione
fraudolenta.

La vittima pu proteggersi da questo attacco perfezionato affidandosi ad un'entit di


ascolto terza. Il lavoro di questa entit sarebbe quello di ascoltare e ricordare tutte le
transazioni che passano sulla rete. In questo modo un utente pu comunicarle una
transazione sospetta all'entit e questa rester in ascolto per il tempo stabilito alla ricerca di
possibili transazioni alternative fraudolente. Per evitare di essere isolata ed aumentare la
propria efficacia, l'entit potrebbe disseminare la rete di nodi osservatori (collegati al maggior
numero possibile di altri nodi) che si limitino ad ascoltare le transazioni ricevute e ad inviarle
al nodo centrale. In questo modo l'entit verrebbe di certo a sapere dell'esistenza di tentativi
di double spending. Infatti l'attacco ha successo solo se la transazione fraudolenta raggiunge
la maggioranza dei nodi della rete, quindi estremamente improbabile che sia l'entit
centrale che nessuno dei suoi ascoltatori ne vengano a conoscenza. L'aspetto negativo di
109

questa soluzione per che l'utente deve riporre fiducia nell'entit che gli fornisce il servizio
di ascolto. L'entit potrebbe essere corrotta e tacere alcuni tentativi di double spending per
un qualche suo tornaconto. Bitcoin nasce per essere una valuta libera e decentralizzata dove
tutto il potere affidato al singolo utente. Gli utenti sono perci spesso riluttanti ad affidarsi
ad entit terze.

La seconda proposta si chiama messaggi d'allerta: ogni peer che riceve una
transazione sospettata di double spendng, perch in conflitto con una trasmissione ricevuta in
precedenza, invia un messaggio di tipo alert (vedi sezione 2.6) contenente le due transazioni
sospette. Una nuova transazione sarebbe ritenuta in conflitto con una transazione gi nota se
la nuova transazione ritenuta non valida (dalla verifica della transazione) perch contiene
uno o pi inputs della transazione ricevuta in precedenza. Il nodo aggiunge le due transazioni
sospette nel messaggio per permettere ai nodi che ricevono il messaggio di controllare le due
transazioni. In questo modo chi riceve il messaggio pu controllare che le transazioni
contengano davvero uno o pi inputs ripetuti (se questo non vero l'allarme falso e quindi il
messaggio viene ignorato e non pi inoltrato) e pu verificare se la transazione lo riguarda.
Poich lo scopo dell'attaccante raggiungere il maggior numero possibile di nodi con la
transazione fraudolenta, di certo qualche nodo della rete verr a conoscenza di entrambe le
transazioni e lancer l'allarme ai vicini. Grazie alla rapidissima diffusione dei messaggi nella
rete, questo messaggio d'allarme sar lanciato entro pochi secondi dall'inizio dell'attacco e il
relativo messaggio dall'allarme raggiunger la vittima nellarco di qualche altro secondo. Ad
un utente che vuole controllare una transazione ricevuta con il metodo di pagamento veloce,
basterebbe quindi ascoltare la rete per pochi secondi in attesa di un messaggio d'allarme che
riguardi la sua transazione. Se non dovesse sentire nulla di preoccupante nel tempo prefissato
potrebbe ritenersi ragionevolmente sicuro che non sia in atto un tentativo di double spending
ai suoi danni. L'aspetto negativo di questa soluzione per l'aumento del traffico di messaggi
sulla rete e quindi un aumento della latenza generale.

4.2.2 Finney Attack


Esiste un attacco di tipo double spending contro utenti che utilizzano la tecnica di
pagamento veloce detto Finney Attack (dal nome del suo inventore Hal Finney) che permette
110

di evitare entrambe le contromisure illustrate nella sezione precedente. Lattacco per pi


costoso perch richiede che lattaccante sia un miner, e quindi disponga di unelevata capacit
di calcolo. Lattaccante cerca la prook of work di un nuovo blocco corretto in cui ha inserito
una sua transazione a se stesso (che rappresenta la transazione fraudolenta). Se lattaccante
riesce ad estrarre il blocco prima degli altri miner allora lo tiene privato ed utilizza subito, per
un acquisto, i fondi utilizzati in input nella transazione fraudolenta che ha inserito nel blocco.
Lattaccante rilascia subito dopo il blocco privato cos che sia accettato come nuovo blocco
valido nella catena. La transazione fraudolenta diventer quindi ufficiale. Il pagamento
effettuato allutente onesto sar in conflitto con questa transazione ufficiale e quindi ignorato
da tutti gli utenti. Qualsiasi tecnica di prevenzione del double spending basata sullascolto
della rete diventa inutile poich solo lattaccante sa dellesistenza della transazione
fraudolenta. Il problema dellattacco la difficolt di scoprire un nuovo blocco. Per un
vantaggio dellattacco che il miner fraudolento pu iniziare a cercare di estrarre il blocco in
anticipo, ed effettuare lattacco solo dopo che il blocco stato trovato. Un singolo miner ha
per una probabilit bassissima di estrarre un nuovo blocco, quindi la probabilit di successo
dellattacco resta bassissima. Se ad esempio un attaccante possedesse lo 0,01% delle risorse
totali della rete (che, anche se sembra piccola, rappresenta una percentuale molto costosa
nella rete odierna) il suo attacco avrebbe successo meno dello 0,01% del numero di blocchi
che proverebbe, cio avrebbe successo in un blocco ogni 10.000. Poich un nuovo blocco
estratto ogni dieci minuti in media lattacco sarebbe efficace una volta ogni centomila minuti,
cio una volta ogni dieci settimane. Un attaccante avrebbe migliori probabilit di concludere
con successo lattacco se fosse il gestore di un grande mining pool. Egli infatti potrebbe
inserire la propria transazione fraudolenta in ogni blocco (senza commissioni) costringendo
di fatto i miner del pool ad aiutarlo involontariamente nellattacco. I miners onesti del pool
potrebbero per insospettirsi del tempo di attesa del rilascio di nuovi blocchi e scoprire il
gestore fraudolento abbandonando il pool. Il rischio di perdere i guadagni derivanti da un
mining pool sarebbe di certo maggiore dei guadagni derivati dal double spending. In ogni caso
lattaccante deve includere nel costo dellattacco anche la possibilit di perdere la ricompensa
del nuovo blocco trovato se un miner onesto trova un nuovo blocco nel tempo impiegato
dallattaccante a portare a termine lacquisto.

Per difendersi da questo tipo di attacco sufficiente accettare pagamenti veloci solo
per importi modesti. Infatti in questi casi lattacco non sarebbe quasi mai economicamente
vantaggioso per lattaccante. Per tutti i pagamenti di importi considerevoli consigliato non
111

accettare pagamenti veloci ed attendere una o pi conferme. Come sempre il numero minimo
di conferme da attendere dovrebbe essere proporzionale al valore della transazione e tale da
rendere un tentativo di double spending non conveniente per lattaccante.

4.3 Distruzione DellAnonimato


Vediamo in questa sezione unanalisi delleffettivo anonimato degli utenti in Bitcoin.


Abbiamo visto nellintroduzione come la protezione della privacy degli utenti sia uno dei
pilastri fondanti del progetto Bitcoin. Questa valuta digitale aveva lo scopo originale di
sostituirsi al contante fisico e quindi doveva rispecchiarne le propriet. Una banconota
anonima nel senso che non c modo di tracciare i suoi cambi di proprietario. Ricordiamo che
ogni utente di Bitcoin possiede uno o pi indirizzi con cui pu ricevere o inviare pagamenti. Il
protocollo consiglia inoltre di creare un nuovo indirizzo per ogni transazione. Le transazioni
sono pubbliche e pubblicamente memorizzate per sempre nella catena dei blocchi. Poich
ogni transazione specifica solo degli indirizzi (che sono lunghe stringhe casuali), non
sembrerebbe ci sia modo di scoprire quali utenti partecipino in quella transazione. In realt
proprio il contrario. Poich la catena ricorda lintera storia delle transazioni possibile
tracciare lintera storia di una somma dal suo destinatario finale fino alle transazioni
generatrici. Sebbene non possiamo collegare dei fondi (cio un indirizzo) ad un utente,
usando la catena possiamo tracciare i loro spostamenti. Questo anonimato parziale
chiamata pseudo-anonimato o, pi correttamente, pseudonymity (che significa che ogni
utente protetto solo da pseudonimi).

4.3.1 Deanonymizing

Si parla di attacco di distruzione dellanonimato (deanonymize attack) quando


lattaccante usa le informazioni contenute nella catena insieme ad informazioni ricavate da
fonti esterne per collegare un indirizzo con il corretto utente che ne proprietario.

Con il termine proprietario di un indirizzo intendiamo un qualsiasi utente che


conosce la chiave privata associata a quellindirizzo. Il proprietario di un indirizzo non
necessariamente il legale rappresentante di quellindirizzo nel mondo reale. Se ad esempio un
112

utente utilizza un servizio di portafoglio on-line sar il servizio a possedere le chiavi private e
quindi a eseguire transazione per conto degli utenti. Sebbene i responsabili legali dei fondi e
del loro utilizzo siano i clienti del servizio, il proprietario sar il servizio stesso. Di fatto
Bitcoin riconosce come proprietario di un indirizzo solo chi pu dimostrarlo firmando le
transazioni, e questo possibile solo conoscendo la chiave privata. Se il servizio
interrompesse i contatti con i propri utenti e si tenesse i bitcoins da loro depositati, agli occhi
del protocollo questo non sarebbe furto poich il servizio lunico che pu dimostrare di
possedere quei bitcoins.

I primo passo di questo attacco consiste nelanalisi dellintera catena dei blocchi per
ottenere un grafo della storia complessiva di Bitcoin. In questo grafo ogni nodo rappresenta
un indirizzo ed ogni arco entrante o uscente rappresenta una transazione che contiene
quellindirizzo rispettivamente tra i propri output o input. Gli archi possono essere etichettati
con il valore di bitcoins trasferite e con un timestamp contenente la data della transazione. Il
passo successivo sar associare ad una singola entit un insieme di indirizzi. In altre parole
vogliamo collassare i nodi contenenti gli indirizzi di un unico utente in un unico cluster di nodi
rappresentante quellutente. Notiamo come un utente pu trasferire fondi tra i suoi indirizzi e
quindi in questo cluster possono essere presenti self-loops. Per ottenere questo risultato
dobbiamo basarci su delle regole euristiche ricavabili dal comportamento degli utenti nella
rete Bitcoin.

Leuristica pi comune detta Input multipli: tutti gli input specificati in una
transazione con input multipli appartengono allo stesso utente. Questa regola si base
sullosservazione che gli input devono essere firmati dal proprietario e quindi quando un
utente crea una transazione deve conoscere la chiave privata di ogni input per poterlo
firmare. Questa regola non pi vera se pi utenti contribuiscono con i propri input in
ununica transazione. Poich la transazione unica questi utenti dovrebbero raggiungere un
accordo per scambiarsi le informazioni necessarie ed affidarsi ad un utente singolo per unire
queste informazioni. Questo meccanismo non oggi supportato da nessun software per la
gestione di portafogli, quindi gli utenti dovrebbero costruirsi questa transazione a mano. Il
numero di falsi positivi introdotti dalla regola quindi trascurabile. Possiamo quindi calcolare
la chiusura transitiva di questa regola applicata al grafo ed ottenere un primo clustering degli
indirizzi.

Unaltra euristica utilizzata in genere chiamata Indirizzo del resto: lindirizzo


113

utilizzato per contenere il resto di una transazione appartiene allo stesso utente a cui
appartengono gli indirizzi in input della transazione. Questa euristica ragionevole ma
efficace solo se riesce ad identificare correttamente quale sia lindirizzo contenente il resto in
una transazione. Esistono infatti molte transazioni con output multipli ed difficile capire
quale indirizzo tra gli output sia usato per recuperare il resto. Dobbiamo quindi stabilire delle
regole aggiuntive che permettano di individuare correttamente lindirizzo del resto ottenendo
il numero di falsi positivi minore possibile (anche al prezzo di un alto numero di falsi
negativi). Per trovare queste regole dobbiamo studiare il comportamento attuale degli utenti
di Bitcoin. La maggior parte degli utenti utilizzano dei software di gestione del portafoglio
quando vogliono creare una transazione. In generale questi software permettono allutente di
specificare i destinatari del pagamento e la commissione, e successivamente calcolano in
automatico il resto inviandolo ad un nuovo indirizzo appositamente creato. In genere lutente
non conosce questo nuovo indirizzo e quindi non lo comunica agli altri utenti per ricevere
pagamenti. Quindi questi indirizzi hanno una sola transazione in entrata nel grafo degli
indirizzi. Possiamo quindi derivare la seguente regola:

se un indirizzo utilizzato come output nella transazione non utilizzato tra gli output di
nessunaltra transazione allora un indirizzo per il resto.

Questa regola per non valida se la transazione contiene due o pi output che
rispettano la regola precedente. Infatti la regola individuerebbe entrambi gli outputs come
resto, mentre nella realt quasi impossibile che una transazione contenga il resto diviso in
pi parti. Dobbiamo quindi non considerare tutte le transazioni che fornirebbero indirizzi di
resto multipli applicando la regola. Un altro problema fornito dal comportamento dei
mining pools. Un mining pool di solito invia il pagamento delle ricompense ai suoi soci
mettendo tanti output distinti nella transazione generatrice. Questi output non devono mai
essere considerati resti39. Evitiamo di considerare anche le transazioni che contengono tra gi
output uno degli indirizzi contenuti in input. In questo caso, infatti, il resto inviato ad uno
degli indirizzi in input e quindi non ci da nessuna informazione aggiuntiva. Infine la regola
pu essere adattata per considerare il funzionamento di determinati software di gestione di
portafoglio. Se ad esempio sappiamo che una transazione generata da un determinato


39 Sarebbe inutile oltre che errato poich una transazione generatrice non ha inputs e quindi non potremmo
legare questi resti a nessun input.
114

software e sappiamo anche che quel software inserisce sempre loutput per il resto come
ultimo output, possiamo agire di conseguenza. La regola euristica precedente deve essere
quindi raffinata con le osservazioni appena fatte.

Applicando la regola raffinata al grafo ottenuto con la prima regola possiamo ottenere
un ulteriore accorpamento di indirizzi in cluster pi grandi.

Le due regole appena esposte sono quelle pi affidabili ed usate ma esistono molte
altre euristiche pi rare ma altrettanto utili.

Nel caso che lattaccante sia il proprietario di un servizio on-line, pu raccogliere


informazioni sugli indirizzi che gestisce. Se ad esempio lattaccante il proprietario di un
servizio di mixing (vedi in seguito) pu associare gli indirizzi in entrata con gli indirizzi in
uscita corretti. Notiamo come questo caso includa anche un proprietario onesto di un servizio
che sia costretto a collaborare con unagenzia governativa. Altre euristiche possono basarsi
sullo studio delle tecniche usate dagli utenti per confondere i propri fondi (come ad esempio
la tecnica di peeling chain descritta in seguito), per smascherarle efficacemente. Tecniche
pi sofisticate, e costose, possono dare nuove informazioni, ad esempio possiamo adoperare
una tecnica di controllo dei prezzi. Se facciamo un elenco di tutti i prezzi giornalieri dei siti di
vendita on-line che accettano bitcoins possiamo ricavare alcuni prezzi che sono presenti in un
unico sito. Applicando il cambio giornaliero tra la valuta del sito e BTC possiamo ottenere il
prezzo esatto in bitcoins fino allottava cifra decimale. Possiamo quindi associare loutput di
tutte le transazioni con una spesa esattamente uguale a quel prezzo come indirizzi posseduti
da un determinato sito. Altre tecniche possono analizzare i timestamps delle transazioni per
cercare comportamenti riconducibili a determinati utenti. Se ad esempio sappiamo quando un
utente ha creato o ricevuto una transazione e conosciamo il valore approssimativo della
transazione, possiamo analizzare la catena per ottenere una sola transazione che soddisfi
entrambi questi parametri, associando gli indirizzi contenuti allutente sospettato.

Applicando le regole euristiche precedenti otteniamo un grafo contenente clusters di


indirizzi riconducibili ad un solo utente, ma non sappiamo ancora come associare ad ogni
cluster unidentit. Per fare questo dobbiamo raccogliere informazioni allesterno della catena
dei blocchi. Vogliamo ora raccogliere un database di coppie (identit reale, indirizzo) per dare
un volto ai clusters trovati. Per fare questo esistono molte tecniche possibili.

Alcuni utenti rivelano pubblicamente un proprio indirizzo. Spesso questo accade sul
115

forum ufficiale di Bitcoin o su twitter, anche se era pi comune in passato rispetto ad oggi.
Inoltre alcuni indirizzi sono resi pubblici dai siti che li possiedono per ricevere donazioni o
pagamenti. Esistono gi raccolte di questi indirizzi, ma si possono anche trovare da soli
utilizzando un motore di ricerca sfruttando la struttura nota di un indirizzo Bitcoin.

La tecnica pi semplice per ottenere degli indirizzi di entit note di fare affari con
loro. Un attaccante pu investire una modesta quantit di bitcoins per creare transazioni con
altre entit. Se vogliamo ottenere alcuni indirizzi da commercianti on-line noti, sufficiente
comprare da loro oggetti o servizi. Analogamente possiamo utilizzare servizi di cambio on-
line, di scommesse o di gestione del portafoglio on-line per ottenere alcuni loro indirizzi.
Possiamo anche partecipare ad un mining pool per scoprire il suo indirizzo pubblico.

possibile infine scoprire lindirizzo IP di molti utenti della rete peer-to-peer di


Bitcoin. La tecnica utilizzata si basa sullipotesi che il primo nodo a comunicare una
transazione il nodo che lha creata e quindi gli indirizzi usati in input nella transazione gli
appartengono. Basandosi su questipotesi un attaccante dissemina nella rete uno o pi nodi
ascoltatori. Questi nodi si connettono a tutti i peer disponibili e restano in ascolto delle
transazioni inviate. I nodi ascoltatori mantengono un elenco contenente il peer da cui hanno
ricevuto per prima ogni transazione. Confrontando le liste di tutti i nodi ascoltatori
lattaccante pu fare delle ipotesi attendibili sullindirizzo IP associato ai proprietari di molte
transazioni. Il caso ottimo per lattaccante sarebbe quello in cui almeno un ascoltatore
connesso a tutti i peer raggiungibili della rete, in questo caso, infatti, le informazioni raccolte
sarebbero ottimali. Le informazioni non sarebbero comunque perfette perch alcuni peer
potrebbero aver schermato il loro IP reale (ad esempio usando TOR) o perch alcuni peer
potrebbero avere delle connessioni molto lente dirette allascoltatore e quindi potrebbero
dare notizia della transazione dopo altri peer pi rapidi. Conoscere lindirizzo IP di un utente
non sufficiente a conoscere la sua identit ma in molti casi pu rivelare informazioni
preziose.

Applicando i metodi appena descritti possibile rintracciare molti utenti e seguire la


storia dei loro fondi. Inoltre si pu inferire lidentit di utenti sconosciuti analizzando i loro
scambi con utenti conosciuti. Osserviamo anche che lintera storia di tutte le transazioni
pubblicata nella catena, quindi possibile scoprire una nuova identit per risalire allidentit
di molti utenti che hanno fatto affari con lei nel remoto passato. Se un utente acquista un
servizio illegale la sua transazione rester per sempre nella catena e quindi la sua azione
116

illecita potr essere retroattivamente scoperta. Lattacco per rende pi facile individuare gli
indirizzi di grandi partecipanti molto visibili nelleconomia Bitcoin, rispetto ai semplici utenti
occasionali.

Se un utente mantiene un basso profilo pu restare anonimo? La risposta duplice. Il


procedimento generale di distruzione dellanonimato non permette di individuare qualsiasi
utente ma solo una parte. Se un attaccante volesse scoprire lidentit di un utente legata ad un
particolare indirizzo le tecniche precedenti potrebbero non essere sufficienti, ma
costituirebbero il punto di partenza dellattacco. Un utente mette a rischio il proprio
anonimato nel momento stesso in cui ottiene i suoi primi bitcoins. Se lutente ha acquistato i
suoi bitcoins da un sito di cambio on-line allora li avr pagati con un pagamento tradizionale
on-line (ad esempio con una carta di credito o Paypal) e quindi la sua vera identit subito
manifesta. Infatti lattaccante potrebbe rubare le informazioni dal sito di cambio o potrebbe
ottenere quelle informazioni con un mandato di un giudice nel caso fosse un organo di polizia.
In alternativa lutente potrebbe aver ottenuto dei nuovi bitcoins grazie al mining. Un nuovo
utente per non avrebbe nessuna speranza di estrarre un nuovo blocco senza un grande
investimento in hardware specializzato. La vittima sarebbe quindi costretta ad aggregarsi ad
un mining pool esistente per ottenere la sua percentuale della ricompensa. Lutente potrebbe
in questo caso rivelare informazioni o indizi utili allattaccante (ad esempio un indirizzo IP)
durante le comunicazioni con il mining pool per la distribuzione dei nonce o la scoperta di un
nuovo blocco. Anche se la vittima riuscisse ad ottenere dei bitcoins mantenendosi
completamente anonimo rischierebbe di essere scoperto ogni volta che li usa per comprare
qualcosa. Grazie al grafo degli utenti lattaccante pu seguire gli spostamenti dei fondi della
vittima ed accorgersi quando questa fa acquisti da un commerciante noto. Lattaccante pu
quindi ottenere informazioni sensibili dellutente (come, ad esempio, lindirizzo di spedizione)
ottenendole (per vie legali o illegalmente) dal commerciante.

Come si capisce da questo esempio lanello debole nellanonimato costituito dai


servizi terzi. Questi servizi sono a conoscenza di informazioni sensibili dei propri clienti
(come ad esempio identit, carte di credito, indirizzi o abitudini). Queste informazioni
potrebbero quindi essere ottenute da organi di polizia, agenzie governative o semplici ladri
come avviene gi per gli istituti di credito tradizionali o le compagnie di pagamenti on-line.


117

4.3.2 Contromisure

Vediamo le soluzioni proposte per ristabilire la privacy degli utenti.

Un soluzione proposta quella di utilizzare un mixer. Un mixer unentit terza, di cui


lutente si fida, che raccoglie i fondi dellutente, li mescola insieme ai fondi di tutti gli altri
utenti suoi clinti, e restituisce allutente dei fondi di uguale valore di quelli iniziali. Utilizzare
un mixer comporta il classico problema delle entit terze in Bitcoin: la fiducia. Lutente deve
infatti fidarsi, senza nessuna garanzia, che il mixer gli restituisca i fondi depositati ( capitato
di mixer fraudolenti che sono semplicemente spariti con i fondi raccolti). Lutente deve inoltre
fidarsi che il mixer svolga correttamente il lavoro promesso. Cio, il mixer deve garantire che i
fondi restituiti non siano collegabili ai fondi in ingresso. Questo non in generale possibile se
un utente deposita ingenti fondi in un unico mixer. Infatti se i fondi di un unico utente
costituiscono la maggioranza dei fondi contenuti in mixer questo non potr mescolarli a
sufficienza restituendo allutente gran parte dei propri fondi depositati. Questo fatto (insieme
al rischio che il mixer sia un truffatore) rende inadatto luso di un mixer per grandi quantit di
bitcoins da parte di un unico utente. Il mixer deve anche garantire che i suoi registri interni (i
cosiddetti transaction logs), contenenti le informazioni per collegare i fondi in entrata a
quelli in uscita, non siano accessibili dallesterno e vengano distrutti dopo luso. Questo
particolarmente difficile se i mixer sono obbligati a seguire leggi contro il riciclaggio di denaro
che impongano la tracciabilit delle somme utilizzate. Per diminuire la probabilit di
utilizzare mixers compromessi un utente pu utilizzare pi mixers diversi in cascata, inviando
i fondi restituiti da un mixer al successivo. Questa tecnica aumenta l'anonimato ma aumenta
anche il costo totale delle commisisioni, e aumenta la probabilit di perdere i propri fondi a
causa di un mixer fraudolento (basta che un solo mixer della catena sia fraudolento per
perdere tutto).

Un mixer in generale funziona in maniera molto semplice. Il gestore del servizio di


mixing crea numerosi indirizzi non collegati tra loro da nessuna transazione. fondamentale
per il buon funzionamento del sistema che le regole di distruzione dell'anonimato spiegate in
precedenza non possano collegare due o pi di questi indirizzi allo stesso utente (gestore del
mixer). Gli indirizzi sono divisi in due categorie: indirizzi d'entrata e indirizzi d'uscita. Gli
indirizzi dentrata sono inizialmente vuoti mentre gli indirizzi d'uscita sono riempiti con i
118

capitali del mixer. Quando un utente vuole usufruire del servizio invia la somma da mescolare
ad un indirizzo di entrata del mixer. Il mixer successivamente indirizzer ai nuovi indirizzi
indicati dall'utente pagamenti di valore costante ad intervalli di tempo variabili, fino al
raggiungimento del valore della completa somma depositata. Chiaramente il mixer tratterr
una percentuale sulle uscite nel caso sia un servizio a pagamento. Le somme sono restituite in
scaglioni di valore predefinito per evitare di poter collegare gli indirizzi di ingresso e uscita
osservando il valore dei fondi trasferiti da ciascun utente. Il mixer rilascia i fondi in un
periodo dilatato di tempo per lo stesso motivo. Poich tra un indirizzo di uscita ed uno
d'entrata non c' nessun collegamento il processo rompe efficacemente il flusso dei fondi da
una transazione all'altra. Il mixer lavora per su un orizzonte temporale lungo (pu passare
molto tempo tra il deposito dei fondi e l'ultima emissione), quindi deve ricordare
correttamente quanti fondi mandare a ciascun indirizzo e quanti fondi ha gi mandato. Il
mantenimento e la protezione di questi registri sono il punto debole del mixer perch, se
svelati, annullerebbero tutto il lavoro di occultamento. Una buona pratica sarebbe di
distruggere periodicamente tutte le informazioni non pi necessarie, ma non sempre viene
fatto. Come mostrato in [23] non tutti i servizi disponibili seguono il corretto funzionamento
di un mixer. Un esempio portato nel testo BitLaundry, un popolare servizio di mixing. Pare
infatti che il servizio si limiti ad accorpare tanti input degli utenti in pochi indirizzi, contenenti
quindi grandi fondi, che poi sono ri-scomposti per i pagamenti in uscita. Sebbene sia
impossibile stabilire di chi siano i fondi che vengono inviati (essendo frutto di un
accorpamento dei fondi di tutti) resta comunque una connessione tra i fondi in entrata e
quelli in uscita dello stesso utente. Quindi l'attaccante sa che l'indirizzo d'uscita della vittima
tra tutti quegli indirizzi d'uscita, anche se non sa di preciso quale sia.

Unaltra tecnica per nascondere i propri capitali consiste nelluso delle transazioni per
dividere o ricombinare i propri fondi, sparpagliandoli tra molti indirizzi scollegati tra loro. Le
tecniche pi semplici sono aggregation e split. Per aggregation si intende l'unione di
fondi contenuti in pi indirizzi in un unico grande fondo su di un unico indirizzo. Per split si
intende il contrario di aggregation, cio la divisione di un'unica grande somma in tante
piccole somme su indirizzi diversi. Un'altra tecnica comune soprannominata peeling chain.
Il processo inizia con una grande somma contenuta in un unico indirizzo. La somma diluita
attraverso molte transazioni che depositano piccoli importi in indirizzi controllati dal
proprietario mentre trasferiscono la somma principale in un indirizzo temporaneo creato
apposta. Attraverso pi passi della catena la somma viene diluita in tantissimi pezzetti di
119

poco valore. Questa tecnica utilizzata non solo per aumentare lanonimato ma anche come
forma di pagamento per alcuni mining pool. Il mining pool invece di creare una transazione
generatrice con tantissimi output, invia lintera somma ad unico indirizzo, che poi la
ridistribuir ai membri del pool attraverso una peeling chain. La tecnica di peeling chain pu
essere ripetuta pi volte riunendo i piccoli fondi disseminati per i vari indirizzi in un unico
indirizzo per re iniziare una nuova peeling chain. Queste tecniche di offuscamento non sono
realmente efficaci poich non rompono il flusso di informazioni trasmesso da una transazione
all'altra. Il massimo che possono ottenere di confondere un attaccante impedendogli di
capire se le nuove transazioni siano pagamenti dell'utente a se stesso o ad un'altro utente
(quindi spese regolari). Queste tecniche, da sole, non sono in genere sufficienti a dissuadere
un attaccante determinato.

Infine osserviamo una tecnica pi recente per riciclare i propri fondi. Oggigiorno sono
molto popolari i servizi di scommesse on-line in bitcoins. Le regole posson variare da servizio
a servizio, ma in generale si basano su di un scommessa contro una probabilit fissa decisa
dallutente. Un utente pu quindi scegliere probabilit molto alte (superiori al 90%) per
minimizzare il rischio di perdere (minimizzando per anche la vincita relativa). Se il servizio
di scommesse accetta di ricevere ed inviare pagamenti su due indirizzi diversi un utente pu
utilizzare questi siti come dei mixer. Lutente per prima cosa divide i suoi fondi in tante
piccole somme, poi gioca queste somme con unaltissima probabilit di vittoria facendosi
spedire eventuali vincite a nuovi indirizzi mai utilizzati. I fondi devono essere divisi in somme
pi piccole per evitare il rischio di perdere tutti i fondi a causa di una scommessa sfortunata.
Lalta probabilit di vittoria garantisce che la maggior parte dei fondi saranno effettivamente
rispediti allutente, mentre i pochi fondi perduti possono essere considerati come il costo da
pagare al mixer. In genere gli indirizzi di questi grandi servizi di scommesse sono facilmente
accorpati in u unico cluster del grafo degli utenti, quindi lattaccante pu vedere che la vittima
sta scommettendo i propri fondi presso quel sito. Se il sito molto popolare, effettuer per
tantissimi pagamenti di piccole somme (poich in genere gli utenti scommettono solo somme
modeste) in breve tempo. Lattaccante non sar quindi in generale in grado di capire quali
siano le transazioni indirizzate alla vittima tra tutte le transazioni in uscita. Chiaramente un
utente deve migliorare le proprie possibilit di non essere rintracciato utilizzando somme
dellimporto pi comune su sito. Alcuni siti ad esempio hanno una puntata minima e molti
utenti si limitano sempre a scommettere importi pari alla puntata minima. Lutente potrebbe
quindi dividere i propri fondi tante volte in puntate pari allimporto minimo, per mescolare i
120

suoi fondi in uscito alla massa di utenti onesti che hanno scommesso quellimporto ed hanno
vinto.

4.3.3 Tracciamento Dei Furti


Abbiamo visto come mantenere la propria privacy in bitcoin sia molto difficile. Questo
problema si riflette sull'uso di Bitcoin da parte dei criminali. Abbiamo gi visto come sia poco
efficace e pericoloso utilizzare i mixers od altre tecniche di offuscamento per grandi quantit
di bitcoins. Bitcoin non quindi conveniente per il riciclaggio di soldi sporchi da parte di
criminali, la storia di Bitcoin per ricca di furti. Rubare bitcoins e godersi il bottino per non
affatto semplice, infatti la riuscita del furto solo la prima parte del problema. Una parte
ugualmente difficile il riciclaggio della refurtiva. In genere un furto ha successo quando un
ladro riesce a spostare fraudolentemente dei fondi da un indirizzo della vittima ai propri. Se la
vittima si accorge del furto pu subito sapere l'indirizzo del ladro cercando sulla catena la
transazione (del furto) con l'indirizzo rapinato tra gli input. Utilizzando il grafo degli utenti
ottenuto con le tecniche sopra descritte, la vittima, e qualsiasi altro utente informato del furto,
possono seguire gli spostamenti dei fondi trafugati. Quindi un utente pu denunciare alla
comunit un furto da un proprio indirizzo. In questo modo tutti gli utenti onesti potranno
tenere d'occhio gli spostamenti di fondi tra gli indirizzi del ladro e rifiutarsi di accettare come
pagamento i fondi rubati. Gi oggi i maggiori siti di cambio e commercio on-line utilizzano
delle liste nere in cui inseriscono gli indirizzi di ladri noti40. Non c' chiaramente nessuna
garanzia che l'utente che denuncia il furto non stia mentendo, ma nell'interesse di ogni
utente non denunciare furti falsi. Se il furto falso ci sono due possibilit: o l'utente ha inviato
volontariamente i fondi ad un altro suo indirizzo oppure l'utente ha inviato i fondi ad un altro
utente come regolare pagamento. Se l'utente ha inviato i fondi a se stesso non ha nessun
interesse ad inscenare un furto, poich l'utente otterrebbe solo di marchiare i propri fondi
come illeciti rendendoli pi difficili da spendere. Se l'utente accusa di furto un venditore
onesto dopo un pagamento, il venditore potr difendersi di fronte alla comunit,


40 Queste liste sono utilizzate per in maniera molto superficiale. Sono infatti banditi solo gli indirizzi iniziali
del furto o quelli chiaramente collegati. Non viene eseguito nessun tipo di analisi per tracciare pi in
profondit i fondi rubati. I siti ottengono una percentuale su tutti gli scambi, quindi nel loro interesse
accettare tutti i bitcoins disponibili, anche quelli rubati. La loro popolarit per potrebbe risentire di accuse
di collusione con i ladri, quindi vengono utilizzate queste liste nere come facciata. comunque positivo
lesempio del servizio di portafoglio online Strongcoin che intercett 923 BTC rubate al mining pool Ozcoin e
depositate dal ladro su un suo portafoglio. Strongcoin imped al ladro di ritirare i bitcoins e li restitu invece a
Ozcoin.
121

potenzialmente svelando al pubblico informazioni private che conosce sull'utente. Quindi


l'utente correrebbe il rischio che vengano rese pubbliche sue informazioni private e che
l'utente stesso sia marchiato come truffatore se la comunit desse ragione al venditore.

Ladri pi esperti potrebbero utilizzare tecniche sofisticate di offuscamento e


confusione delle proprie transazioni rendendo il lavoro degli utenti onesti pi complicato. In
generale un'ipotetica indagine non potrebbe provare dove siano andati a finire i fondi ma
potrebbe avere dei sospetti su alcuni indirizzi finali usati presumibilmente dal ladro per
convertire in valuta corrente dei fondi in bitcoins. L'ipotetico investigatore potrebbe quindi
ottenere dal sito di cambio utilizzato l'identit del proprietario degli indirizzi e condurre
un'indagine nel mondo reale per smascherare il ladro. In [20] e [21] sono mostrati alcuni
esempi (di grande successo) di tracciamento degli spostamenti di fondi rubati. In questi
esempi dimostrato come bastino poche intuizioni per riuscire a tracciare dei fondi
(presumibilmente) rubati fino a dei siti di cambio.

Lo studio della correlazione tra due indirizzi detto taint analysis che potremmo
tradurre come analisi dellimpronta. Dato un indirizzo, eseguire la sua taint analysis vuol
dire calcolare la percentuale di fondi che ha ricevuto da un qualsiasi altro indirizzo. Lanalisi
non si limita alla transazione pi recente ma analizza lintera storia delle transazioni.
Utilizzando quindi unanalisi dellimpronta, possibile ad esempio controllare se un mixer ha
funzionato correttamente. Un mixer funziona correttamente se lindirizzo in ingresso non
trovato (con nessuna percentuale) come risultato di una taint analysis sullindirizzo a cui sono
inviati i fondi in uscita dal mixer. Questa tecnica viene anche usata spesso per calcolare la
percentuale di fondi provenienti da un noto indirizzo di un ladro. Unendo la taint analysis al
grafo degli utenti possibile avere una buona idea della destinazione dei (presunti) fondi
rubati. La taint analysis molto semplice da utilizzare anche per i non esperti grazie
allapposito strumento offerto dal sito blockchain.info [87].

4.4 Altri Attacchi


Gli attacchi presentati in precedenza sono, a modesto avviso dellautore, gli attacchi pi
interessanti contro Bitcoin. Questi attacchi sono infatti specifici di Bitcoin (o di altre monete
122

digitali simili) e sfruttano al meglio i problemi alla base del suo funzionamento. Bitcoin non
per immune dagli attacchi classici sulle reti come furti, sybil attacks o attacchi di tipo denial
of service distribuito. Sono stati inoltre sviluppati nuovi attacchi basati sul funzionamento
pratico di Bitcoin, piuttosto che sui suoi principi fondanti, come il Timejacking. Mostreremo di
seguito come questi attacchi siano portati a termine in Bitcoin, ma prima discutiamo cosa
siano i portafogli in Bitcoin.

4.4.1 Portafoglio

Per gestire i propri indirizzi un utente pu raccoglierli in un portafoglio. Un


portafoglio contiene tutte le informazioni sugli indirizzi dellutente, comprese le relative
chiavi private. Un portafoglio pu essere digitale cio realizzato attraverso software sia on-
line che stand-alone. Un software di gestione di portafogli pu essere usato da un utente per
inviare pagamenti in maniera intuitiva senza conoscere nessun dettaglio sul funzionamento di
Bitcoin o su come siano strutturate le transazioni. Pu anche generare su richiesta nuovi
indirizzi o svolgere altre funzionalit come, ad esempio, calcolare il saldo complessivo di ogni
indirizzo. Poich il portafoglio per funzionare deve conoscere le chiavi private degli indirizzi
che contiene (per firmare i pagamenti), molto importante che queste chiavi siano
memorizzate al sicuro. Sono, infatti, molto comuni i furti di chiavi dai portafogli. Il vantaggio
principale di un software di portafoglio sia on-line che stand-alone la sua comodit e
accessibilit ed il suo difetto principale la vulnerabilit ai furti. Esistono oggi molti servizi di
portafogli on-line, alcuni dei quali agiscono come vere e proprie banche offrendo degli
interessi agli utenti proprietari di un conto. Affidare per la propria chiave segreta ad
unentit terza richiede di riporre fiducia in quellentit. Questo in parte contrario agli ideali
fondatori che volevano che Bitcoin funzionasse tra gli utenti senza bisogno di instaurare una
rete di fiducia e senza nessuna entit terza. Nella pratica oggi molto complicato, soprattutto
per gli utenti meno tecnicamente preparati, gestire da soli i propri indirizzi e quindi i servizi
di portafogli on-line si sono molto diffusi e sono spesso stati teatro di furti o truffe. Il modo pi
sicuro per gestire un portafoglio, e soprattutto le chiavi private, di salvare queste chiavi off-
line, su un dispositivo non raggiungibile dalla rete. certamente molto difficile imparare le
chiavi private a memoria (essendo lunghe stringhe di simboli senza senso) ma possibile
stamparle su carta. In questo caso si parla di portafogli cartacei.

Esistono compagnie che offrono portafogli di carta pre-generati che lutente pu


123

scaricare e stamparsi a casa. Un meccanismo pi sicuro fornire un programma client che


lavori off-line firmato dal venditore, che permetta allutente di generare e stampare da solo,
ma soprattutto scollegato dalla rete, il proprio portafoglio. Un portafoglio di carta in origine
vuoto ma pu essere riempito con i fondi dellutente trasferendoli dai suoi indirizzi
precedenti. In un portafoglio di carta lindirizzo pubblico ben visibile ed stampato anche
come QR-code per permettere allun utente di inserirlo rapidamente e senza rischio di errori
fotografandolo con un cellulare (ricordiamo che i bitcoins inviati ad indirizzi errati inesistenti
sono perse per sempre). La chiave privata, anchessa sia in forma di stringa che di QR-code,
nascosta da un meccanismo che permette allutente di accorgersi subito se stata svelata ( lo
stesso procedimento che usano alcune compagnie di carte di credito quando devono inviare
informazioni sensibili per posta). Il portafoglio di carta pu essere poi conservato come
avviene da sempre con documenti importanti o banconote di grosso taglio. Lunica differenza
che lindirizzo pu contenere valori molto pi alti di qualsiasi banconota tradizionale.

Usare un portafoglio di carta pre-generato rischioso perch richiede che lutente si


fidi dellentit terza che lha creato. Questa entit deve infatti garantire che nessuno sia venuto
a conoscenza della chiave privata durante la creazione del portafoglio e che questa chiave sia
stata cancellata insieme a qualsiasi traccia che possa aver lasciato durante la sua creazione.
Inoltre lentit deve garantire che la chiave privata sia stata generata in maniera davvero
casuale e che il programma usato per generarla non sia stato modificato da un attaccante
durante il processo. Osserviamo infine che un portafoglio di carta non permette tutte le
funzionalit dinamiche di un portafoglio software, come il controllo del proprio bilancio
complessivo o linvio di transazioni. Questo tipo di portafoglio dovrebbe essere usato come un
indirizzo cassaforte in cui depositare i fondi di cui lutente non ha immediato bisogno, per
tenerli al sicuro da eventuali furti.
124

Figura 4.5 esempio di portafoglio di carta come viene stampato fronte e retro e come
appare una volta ripiegato

Esistono anche bitcoins fisici che funzionano, concettualmente, come portafogli


monouso. Un bicoin fisico una moneta di metallo contenente al suo interno un ologramma
tamper-evident che nasconde la chiave privata di un indirizzo contenente la quantit di
bitcoins indicata sulla moneta. Queste monete fisiche sono dette Casascius Bitcoins, dal
125

nickname del loro inventore, e sono disponibili in tagli da 0.5 , 1, 10, 25 e 100 BTC . Un utente
pu acquistarle dal sito di Casascius pagando in bitcoins limporto indicato sulla moneta, pi
una commissione per il servizio41. Una volta ricevuta la moneta, lutente pu spenderla come
una normale moneta classica, passandola di mano in mano. Il proprietario corrente della
moneta pu riscattare il valore rappresentato aprendo lologramma, e venendo cos a
conoscenza della chiave privata. Ogni utente quindi prima di accettare una moneta dovr
prima controllare che non sia stata aperta (e quindi gi svuotata del suo valore). Pu
sembrare strano che una valuta digitale completamente astratta come Bitcoin sia utilizzata in
monete fisiche di metallo, ma utilizzare monete fisiche ha alcuni vantaggi interessanti. Le
monete possono essere passate da una mano allaltra senza bisogno di un computer o di
attese per la conferma della transazione. Le transazioni con monete fisiche (cio il passaggio
di monete da mano a mano) avvengono nel mondo reale e quindi non entrano a far parte della
catena contribuendo a diminuire le sue dimensioni totali. Una moneta, che non sia stata
aperta, sicura contro un tentativo di double-spending (vedi sezione 2.3). La chiave privata
stampata su una moneta, quindi non possibile rubarla in nessun modo senza venire prima in
possesso della moneta e rompere lologramma42.

Figura 4.6 esempio di bitcoins fisici e dellologramma


contenuto al loro interno


41 Il servizio stato interrotto alla fine del 2013 in seguito ad un esposto della FinCEN, che accusava Casascius
di emettere moneta senza i necessari permessi.

42 Come sempre, nel caso di chiavi private generate da unentit terza, bisogna fidarsi che il processo di
creazione della chiave sia stato corretto e segreto, e che le sue tracce siano state cancellate. Bisogna inoltre
fidarsi che chi ha creato la moneta non ricordi segretamente la chiave privata associata.
126

4.4.2 Furti
I furti di assets digitali sono sempre esistiti e continueranno ad esistere. I furti di
bitcoins non sono diversi dai furti alle grandi compagnie di pagamenti virtuali tradizionali. La
differenza che unentit centralizzata di grandi dimensioni ha pi fondi e conoscenze
tecniche per difendersi rispetto ad un utente qualsiasi. Inoltre in caso di pagamenti
fraudolenti la compagnia pu annullare il pagamento non autorizzato recuperando i fondi
rubati. In Bitcoin impossibile, a meno di attacchi che modifichino la catena, annullare una
transazione dopo che entrata a far parte della catena ufficiale43. Nel caso di Bitcoin le
informazioni sensibili da rubare sono le chiavi private degli indirizzi di una vittima. Infatti non
possibile rubare le monete in s. Un trasferimento valido se indicato da una transazione.
Per rubare i fondi di un indirizzo un ladro deve creare una transazione da quellindirizzo al
proprio, ma per farlo ha bisogno della chiave privata dellindirizzo in input, per poterlo
firmare correttamente. Lunica possibilit per il ladro quindi di rubare la chiave privata.
Abbiamo gi parlato come la chiave privata sia memorizzata nel portafoglio dellutente (vedi
sezione 4.4.1). quindi fondamentale che lutente protegga bene il proprio portafoglio. I
software per gestione del portafoglio off-line permettono spesso di cifrare il proprio
portafoglio ma non sempre gli utenti scelgono questa opzione. Un portafoglio non cifrato un
semplice file su una memoria che viene collegata alla rete quando lutente accede al
portafoglio per creare delle transazioni. quindi alla merc di qualsiasi ladro. Scegliere un
servizio di gestione del portafoglio on-line non meno rischioso. In generale la compagnia che
offre il servizio prende tutte le precauzioni necessarie ma la storia di Bitcoin ricca di notizie
di furti a questi servizi. Inoltre affidarsi ad un servizio on-line aggiunge il rischio che il gestore
del servizio sia egli stesso un ladro e che sparisca con i fondi affidatigli. Proteggere
adeguatamente il proprio portafoglio potrebbe danneggiarne lusabilit (soprattutto per
utenti poco esperti). La soluzione migliore proposta quindi quella di utilizzare due diversi
portafogli per ogni utente. Il primo portafoglio usato come portafoglio banca. In esso
lutente mantiene la maggior parte dei suoi fondi ed utilizzato solo per effettuare rari
pagamenti di grandi somme. Questo portafoglio potr essere protetto adeguatamente senza
preoccuparsi della sua usabilit (poich sar utilizzato solo per le rare transazioni di grandi


43 Si dice che le transazioni hanno la propriet di essere non reversibili.
127

capitali). Lutente creer poi delle transazioni pre-approvate (cio firmate) da questo
portafoglio al secondo portafoglio posseduto dallutente. Queste transazioni devono essere di
poco valore e potranno essere usate dallutente per ritirare fondi dal portafoglio banca come
se usasse un bancomat. Il secondo portafoglio, rifornito da questi piccoli trasferimenti, sar
usato dallutente per le piccole spese quotidiane. Il portafoglio quotidiano potr avere difese
sufficienti a garantire una certa sicurezza ma senza danneggiare lusabilit del portafoglio. Il
furto del portafoglio quotidiano sar una perdita contenuta per lutente poich contiene solo
una piccola frazione della totalit dei suoi fondi contenuti al sicuro nellindirizzo banca.

Una consolazione per la vittima di un furto che i fondi rubati non saranno facili da
spendere se la vittima riesce ad ottenere la solidariet della comunit. Come abbiamo gi
spiegato nella sezione 4.3.3, spesso possibile tracciare una parte dei fondi rubati fino ad un
servizio che conosce informazioni sensibili utili a ricostruire lidentit del ladro.

4.4.3 DDoS
Gli attacchi di tipo denial of service distribuito in Bitcoin seguono le stesse regole di
questi attacchi in altri tipi di reti. Lo scopo dellattaccante sommergere un nodo di dati
inutili cos che non possa lavorare ai normali messaggi ricevuti dalla rete44.

La prima strategia utilizzata da Bitcoin per proteggersi da questo tipo di attacco


cercare di impedire che lattaccante possa utilizzare i nodi stessi della rete come aiutanti
involontari. Grazie alla rapida diffusione di tipo gossip dei messaggi, ad un attaccante
basterebbe inviare tanti messaggi ad un ristretto numero di peer, questi peers li
inoltrerebbero poi ai loro vicini inondando lintera rete. Abbiamo gi visto nella sezione 2.6
che i messaggi sono verificati prima di essere inoltrati, ed inoltre non sono mai inoltrati
messaggi di cui il nodo era gi a conoscenza. Questo protegge dallattacco sopra indicato
poich sono inoltrati solo i messaggi validi. Un attaccante potrebbe allora inviare sulla rete
tante transazioni valide. Ma una transazione per essere valida dovrebbe contenere tra gli
input validamente firmati, quindi lattaccante dovrebbe usare i suoi veri fondi per lattacco.


44 Un altro tipo di attacco DoS portato contro un utente di Bitcoin mira ad intasare il suo utilizzo di risorse
di calcolo invece che la sua banda. Questo possibile costringendo lutente a fare molte operazioni costose di
verifica (operazioni di verifica crittografica) o a dover recuperare molti dati dal disco per verificare le
transazioni.
128

Questo non un problema perch lattaccante potrebbe pagare i fondi a se stesso. Se


lattaccante per ha specificato una commissione nella transazione inviare abbastanza
transazioni da intasare la rete si tradurrebbe per lui in un costo molto elevato in commissioni.
Lattaccante potrebbe quindi inviare transazioni a se stesso senza commissioni. Per
proteggersi da questa eventualit ogni nodo della rete ha un parametro contenete la
percentuale massima (rispetto al numero totale di transazioni) di transazioni senza
commissioni che disposto a ricevere (e quindi inoltrare). A partire dalla versione 0.8.3 del
client bitcoin ufficiale (rilasciata a giugno 2013) stato introdotto il limite di 5430 satoshi
(0.00005430 BTC) come output minimo di qualsiasi transazione. Le transazioni con output
minori sono considerate non standard: una transazione non standard non mai inoltrata ai
vicini, ma considerata comunque valida se viene inserita da qualcunaltro nella catena.
Poich il client ufficiale utilizzato dalla maggioranza dei nodi e, soprattutto, dalla quasi
totalit dei miners, le transazioni non standard sono fortemente penalizzate nella
propagazione nella rete, restando spesso bloccate del tutto. Il limite stato scelto dagli
utilizzatori perch considerato il valore minimo che rende una transazione economicamente
conveniente per la comunit45. La catena infatti intasata da transazioni di pochi satoshi
(dette polvere o rumore) che occupano incrementano sensibilmente le sue dimensioni,
danneggiando tutti gli utenti, senza dare un effettivo vantaggio economico ai proprietari
(poich sommate insieme valgono pochi centesimi di dollaro al cambio attuale). Come sempre
notiamo come decisioni imposte dagli sviluppatori come questa, offuschino il principio di
decentralizzazione alla base del protocollo.

Il protocollo inoltre suggerisce ad ogni peer di tenere un punteggio di DoS per ogni
suo vicino incrementandolo allaumentare del numero di messaggi invalidi ricevuti da quel
peer. Se il punteggio di DoS supera una certa soglia il nodo interrompe la connessione con
quel vicino e si rifiuta di accettare una nuova connessione da quellindirizzo IP per un lasso di
tempo prefissato. Questo permette di isolare rapidamente le fonti di un attacco di tipo DDoS.

Un nuovo tipo di attacco DDoS stato portato a termine nel febbraio 2014 sfruttando
la malleability delle transazioni Bitcoin. Ricordiamo che la malleability permette di apportare


45 Nelle parole degli sviluppatori: Payments (transaction outputs) of 0.543 times the minimum relay fee

(0.00005430 BTC) are now considered non-standard, because storing them costs the network more than
they are worth and spending them will usually cost their owner more in transaction fees than they are
worth.
129

minime modifiche ad una transazione senza invalidarla. Lhash della transazione per
cambiato e quindi si ottengono due transazioni con hash diverse (ma stesso significato)
entrambe valide. Lattaccante pu sfruttare questa propriet per inondare la rete di
transazioni valide ripetute pi volte. Lattaccante pu inserire nella rete un nodo il cui unico
scopo di ascoltare nuove transazioni, modificarle (molte volte) sfruttando la malleability ed
inoltrarle sulla rete. Quindi ogni transazione circoler sulla rete in molte copie tutte valide, e
tutte accettate dai peers poich lhash diversa. Infatti bitcoin utilizza le hash degli oggetti
come identificativi degli oggetti stessi, quindi i peers considerano diverse tutte le transazioni
con hash diversa. Alla fine solo una copia della transazione sar inserita in un blocco
diventando quella ufficiale e tutti i suoi cloni saranno considerati tentativi di double spending
e quindi scartati. Lo scopo dellattaccante per non modificare una transazione, ma
semplicemente crearne abbastanza copie da intasare la rete (e le liste di transazioni non
confermate dei peers), per questo lattacco ha successo. Per contrastare questo attacco le
versioni del client Bitcoin di riferimento bitcoind dalla 0.8 in poi hanno aggiunto la regola che
le transazioni malleabili (cio con rappresentazioni non standard della firma) vengano
considerate non standard (quindi sono accettate ma non inoltrate).

Abbiamo visto come un nodo possa difendersi da un attacco DDoS che invii transazioni
ripetute, ma le transazioni non sono gli unici tipi di messaggi inviati sulla rete. La rete anche
utilizzata per scambiare blocchi tra gli utenti. Poich i blocchi hanno dimensioni molto
maggiori di una singola transazione, riuscire ad intasare la rete di blocchi rende lattacco
molto pi efficace. Il problema che i nodi possono capire dalla sola intestazione di un blocco
se questo corretto o meno. Le intestazioni dei blocchi sono molto pi leggere del blocco
stesso e quindi facili da inviare e verificare in fretta. Per fare in modo che un utente richieda
linvio di un blocco intero necessario che lintestazione sia corretta. Creare intestazioni
corrette per difficile quanto creare blocchi corretti, perch la proof-of-work dipende solo
dalla radice del merkle tree delle transazioni. Quindi lattaccante dovrebbe essere un miner
con enorme potenza di calcolo per riuscire a generare abbastanza blocchi validi da
sommergere la rete. Lattacco sembrerebbe quindi impossibile, o meglio troppo costoso.
Esiste per una soluzione alternativa. Lattaccante potrebbe biforcare la catena molto in
basso, cio vicino ai primi blocchi creati. La difficolt di quei blocchi irrisoria rispetto alla
potenza di calcolo odierna di qualsiasi miner. Lattaccante potrebbe quindi estrarre un gran
numero di blocchi in poco tempo, prima che la difficolt diventi eccessiva, ed usare questi
blocchi validi per il suo attacco DDoS. Per contrastare questa strategia gli utenti onesti
130

possono ricorrere ai checkpoint (vedi sezione 4.1.1). La lista dei checkpoint di ogni nodo
contiene dei nodi storici ritenuti non modificabili. Lutente pu quindi controllare i nuovi
blocchi che riceve ed ignorare tutti quelli pi vecchi di un checkpoint, perch non sono
accettate nuove biforcazioni in un ramo storico della catena. I blocchi dellattaccante
sarebbero di certo pi vecchi del checkpoint pi recente e quindi verrebbero scartati,
portando al fallimento dellattacco.

4.4.4 Sybil Attacks

Per sybil attack si intende la tecnica di inserire in una rete peer-to-peer molti nodi
controllati dallattaccante. La rete peer-to-peer di Bitcoin vulnerabile ad attacchi sybil come
qualsiasi altra rete peer-to-peer. Vediamo come un tale attacco pu essere portato a termine
in Bitcoin e quali vantaggi pu ricavarne lattaccante. Poich la rete di Bitcoin si basa
sullanonimato e la mancanza di fiducia tra i peers, particolarmente vulnerabile a
questattacco. Inoltre il basso costo di gestione di ogni nodo rende lattacco anche economico.
Lattaccante prima dissemina la rete di suoi nodi schiavi. Lo scopo dellattaccante di isolare
dei nodi onesti dalla rete facendo in modo che si connettano solo a nodi da lui controllati. Un
nodo schiavo quindi inoltrer ai peers onesti messaggi addr contenenti liste di soli nodi
controllati dallattaccante. Questi nodi schiavi possono essere usati dallattaccante per inviare
informazioni false ai nodi onesti intrappolati. Infatti se un nodo onesto collegato solo a nodi
schiavi creder allimmagine della rete fornita dai nodi schiavi. Questo attacco pu essere
utilizzato per portare a termine attacchi double spending sia su pagamento veloce che su
classica attesa delle conferme. Nel caso di pagamento veloce i nodi schiavi impediranno al
nodo onesto di venire a sapere dal resto della rete che lattaccante ha creato unaltra
transazione, impedendogli di scoprire lattacco. Nel caso che il nodo attenda le classiche sei
conferme, lattaccante deve includere la transazione in un blocco da lui creato ed aggiungere
altri cinque blocchi sopra di questo. Poich lattaccante ha potenza di calcolo minore
dellintera rete, normalmente il suo ramo sarebbe molto pi corto e quindi ignorato. Ma
poich lattaccante lunico che comunica con il nodo vittima, questo creder che la catena
dellattaccante sia lunica, e quindi la pi lunga. La vittima vedrebbe il pagamento come
confermato perch presente abbastanza in profondit nella catena dellattaccante, mentre
lattaccante avr trasmesso alla rete vera la sua transazione fraudolenta, che quindi verr
131

inserita e confermata nella catena ufficiale. Come sempre lattaccante deve considerare il
costo di estrarre i nuovi blocchi e confrontarlo con leffettivo guadagno del successo del
double spending. Lattaccante infatti utilizzer le proprie risorse di calcolo per estrarre sei
blocchi che non gli garantiranno nessuna ricompensa o commissione (poich non entreranno
a far parte della catena ufficiale). Se il costo atteso per estrarre questi blocchi maggiore
dellimporto di tutti gli attacchi double spending che hanno successo grazie a quei blocchi,
lattacco non sar vantaggioso.

4.4.5 Timejacking
Lattacco consiste nellannunciare un timestamp errato quando lattaccante si connette
alla rete in modo da cambiare il tempo dei nodi vicini rendendo altri tipi dattacco pi facili.
Come abbiamo visto nella sezione 2.6, un nodo calcola il tempo della rete come mediana dei
tempi dei vicini, se il risultato non dista pi di settanta minuti dal suo tempo di sistema. Un
attaccante pu quindi influenzare il tempo di determinati nodi facendo in modo che si
connettano a molti nodi schiavi, da lui controllati, che comunichino un tempo prestabilito alle
vittime. Modificando il tempo percepito dai nodi della rete lattaccante pu portare delle
vittima a rifiutare dei blocchi corretti. Lattaccante fa in modo che il nodo vittima calcoli un
tempo di quasi settanta minuti minore del tempo reale. Poi fa in modo che la maggioranza dei
miner calcolino il proprio tempo come quasi settanta minuti maggiore del tempo reale. Come
gi detto, per far questo lattaccante deve connettere alla vittima e ai miner molti nodi che
comunichino tempi decisi dallattaccante.

Nelle regole del protocollo specificato che quando un nodo controlla la validit di
nuovi blocchi ricevuti deve controllare anche che il timestamp contenuto nel blocco non sia
maggiore di due ore rispetto al suo tempo corrente, se questo vero il blocco viene ritenuto
invalido. Questa regola permette il seguente attacco. Lattaccante estrae un nuovo blocco
corretto con timestamp maggiore di poco meno di centonovanta minuti rispetto al tempo
reale. Lattaccante in generale non avr alta probabilit di estrarre questo blocco ma pu
aspettare ed iniziare lattacco quando cos fortunato da estrarre un blocco. Il nuovo blocco
estratto non valido per la vittima perch il suo tempo quasi di duecentosessanta minuti
maggiore (quindi pi dei centoventi minuti imposti dalle regole). I miner con il tempo
aumentato per vedranno il timestamp del blocco distante di meno di centoventi minuti e
132

quindi riterranno il blocco corretto continuando ad aggiungere su questo nuovi blocchi. Tutti i
blocchi successivi creati dai miners avranno una differenza di timestamp di quasi
centoquaranta minuti rispetto al tempo della vittima (perch il tempo della vittima settanta
minuti minore del tempo reale ed il tempo dei miners settanta minuti maggiore del tempo
reale) e quindi saranno sempre rifiutati dalla vittima. Lattaccante pu ora eseguire attacchi di
tipo double spending creando nuovi blocchi con il timestamp corretto in una biforcazione
della catena prima del primo blocco con timestamp gonfiato. Questi blocchi saranno rifiutati
dalla catena reale perch contiene gi i blocchi con timestamp gonfiato che costituiscono il
ramo pi lungo. La vittima considera per quei blocchi non validi e quindi la sua versione
della catena rimasta quella precedente allattacco, quindi i nuovi blocchi dellattaccante
saranno per lei validi. Di fatto lattaccante riuscito ad isolare la vittima come durante un
sybil attack, ma invece di usare nodi schiavi come schermo, ha modificato fraudolentemente il
suo tempo. Si applicano per lattaccante le stesse considerazioni sui costi del sybil attack.
Infatti lattaccante deve fornire alla vittima una catena alternativa, spendendo la potenza di
calcolo necessaria senza guadagnare nessuna ricompensa.

Anzich tentare un attacco double spending contro un nodo lattaccante pu scegliere


come vittima un miner rivale. In questo caso il miner vittima considerer i nuovi blocchi creati
invalidi e quindi continuer a lavorare sulla vecchia catena, producendo blocchi che alla fine
saranno su un ramo corto e quindi scartati. Il miner vittima continuer quindi a sprecare la
propria potenza di calcolo. Se lattaccante un mining pool e la vittima unaltro mining pool,
lattacco permetterebbe di escludere di fatto la vittima dalla competizione sui nuovi blocchi
(poich lavora ad una catena inutile). Quindi la frazione di potenza di calcolo posseduta dalla
vittima verrebbe esclusa dalla rete, rendendo la potenza di calcolo totale minore e quindi la
frazione di potenza di calcolo del mining pool fraudolento (e di tutti gli altri), e quindi il suo
guadagno atteso, maggiore.

Le contromisure contro questo attacco consistono nel cambiare la regola per calcolare
il tempo della rete, riducendo la distanza massima di settanta minuti accettata o utilizzando
semplicemente il proprio tempo di sistema. Unaltra soluzione sarebbe di modificare la regola
per il controllo della correttezza dei blocchi: invece di controllare il timestamp di un nuovo
blocco contro il proprio tempo, ogni nodo controllerebbe che il timestamp del nuovo blocco
non ecceda di un fattore fissato la mediana del tempo di creazione degli ultimi undici blocchi
nella catena. Questa soluzione rende laccettazione di un nuovo blocco indipendente dal
133

tempo di ogni singolo nodo, e quindi renderebbe questo tipo dattacco impossibile.


Capitolo 5 Valuta Alternative

Come abbiamo pi volte detto, Bitcoin stata la prima valuta digitale a riscuotere
interesse ed essere utilizzata allesterno della comunit dei crittografi. Non stata per
lultima. Allombra della popolarit di Bitcoin sono prosperate numerose nuove valute digitali
derivate da modifiche pi o meno profonde del suo protocollo. Sfruttando il rinnovato
interesse per le valute digitali sono nate anche nuove valute completamente alternative a
Bitcoin. In questo capitolo mostreremo lidea alla base di queste valute mostrando i principali
esempi nati da modifiche del protocollo Bitcoin ed il pi interessante esempio di valuta
completamente indipendente.

5.1 Discendenti di Bitcoin

Bitcoin stata la prima valuta digitale che abbia raggiunto grande accettazione tra gli
utenti. Durante il suo rodaggio iniziale dal 2009 al 2011 ha subito alcuni aggiustamenti e
correzione del codice utilizzato, ma i principi alla base del funzionamento del protocollo sono
rimasti invariati. Partendo dalle idee di Bitcoin sono state in seguito proposte molte valute
alternative che modificano alcuni di questi principi di base. Infatti, in genere, ogni nuova
valuta ha lo scopo di migliorare un aspetto preciso di Bitcoin. Vediamo di seguito le principali
valute nate da Bitcoin puntualizzando i miglioramenti che vogliono ottenere e osservando il
loro valore al giorno d'oggi46. Nel seguito useremo il termine capitalizzazione di una valuta
per rappresentare il prodotto tra il valore medio attuale di un'unit della valuta (in dollari
USD) per il numero totale odierno di unit di quella valuta in circolazione. Le valute trattate
sono state scelte perch sono gli esempi storicamente pi interessanti di cloni di Bitcoin.
Inoltre erano le quattro valute con maggiore capitalizzazione nel dicembre 2013, cio nel
periodo di maggior euforia per le valute digitali.


46 I valori considerati si riferiscono al 1/4/2014.
136

5.1.1 Litecoin

Litecoin [89, 90, 91] nasce nell'ottobre del 2011. Questa valuta sempre stata la
seconda valuta digitale figlia di Bitcoin per capitalizzazione (la prima ovviamente Bitcoin)
ed l'alternativa a Bitcoin che ha ricevuto maggiore copertura mediatica. La capitalizzazione
attuale di 362.563.503 $, anche se allinizio di dicembre 2013 era di 645.025.963 $. Litecoin
spesso definita come argento rispetto all'oro di Bitcoin47. La principale modifica introdotta
da Litecoin riguarda il mining. Lo scopo di Litecoin infatti di rendere l'estrazione dei blocchi
pi rapida e pi difficilmente ottimizzabile da hardware specializzato. L'algoritmo di mining
disegnato per fare in modo che nuovi blocchi siano trovati quattro volte pi velocemente di
Bitcoin (ogni due minuti e mezzo invece che ogni dieci minuti come in Bitcoin), e la rete
genera di conseguenza quattro volte pi blocchi e quindi quattro volte pi monete
(ottantaquattro milioni invece di ventuno come in Bitcoin).

La differenza principale introdotta da Litecoin l'utilizzo dell'algoritmo crittografico


scrypt al posto della doppia SHA-256 di Bitcoin nella proof-of-work, e la modifica della
difficolt della proof-of-work per ottenere un nuovo blocco in media ogni 2,5 minuti invece di
dieci. Scrypt un algoritmo studiato per essere utilizzato come key derivation function. Una
tale funzione un algoritmo che data una password in input restituisce in output una chiave
casuale, come se fosse una funzione hash. La differenza con una funzione hash che la
funzione resa intenzionalmente costosa in termini computazionali o di memoria necessaria.
Queste funzioni sono in genere utilizzate per evitare che un attaccante possa provare
efficientemente molte password diverse fino a trovare la chiave giusta. Se un utente onesto
user la funzione, utilizzer subito la password giusta e quindi un breve tempo di attesa per
lui irrilevante. Se invece un attaccante tentasse un attacco di forza bruta tentando tante
password diverse, il tempo dellattacco sarebbe la somma di tutti i tempi dattesa, e questo
tempo pu diventare proibitivo per numeri di tentativi elevati. Le funzioni precedenti a scrypt
utilizzavano tempi dattesa fissati ma non consideravano la memoria, quindi un attaccante
poteva costruire tanti dispositivi ASIC dedicati con cui parallelizzare il problema. Lo scopo di
scrypt quindi di rendere la funzione costosa anche in spazio oltre che in tempo, scrypt

47 Questo perch le litecoins sono pi numerose e facili da ottenere, e richiedono meno conferme per essere

spese delle bitcoins.


137

utilizza per questo un vettore di stringhe pseudo casuali di bit che sono utilizzati in pi punti,
e a tempi diversi, dallalgoritmo. quindi necessario disporre della memoria necessaria a
contenere questo vettore48, impedendo di costruire dispositivi dedicati (o almeno rendendolo
proibitivamente costoso). La difficolt (o meglio il costo elevato) di costruire dispositivi ASIC
dedicati per risolvere in parallelo scrypt proprio la propriet che gli ideatori di Litecoin
cercavano. Lo scopo era infatti rendere pi difficile ottimizzare il lavoro necessario per
risolvere le proof of work su GPU o hadrware dedicato. Questa scelta serve a permettere a
qualsiasi utente di diventare un miner efficace senza dover disporre di costosissimi hardware
dedicati (come accade oggi per Bitcoin). Il fatto che qualsiasi utente pu diventare un miner
(con probabilit accettabili di guadagno) a basso costo, permette di rendere la valuta pi
decentralizzata. Di fatto possibile costruire hardware specializzati ma questi sarebbero
molto pi costosi in proporzione al guadagno rispetto a quelli disponibili per Bitcoin, e quindi
poco diffusi, perci oggi la maggior parte del mining di Litecoin effettuato da GPU moderne
che dispongono di buone quantit di memoria veloce. Dare per pi potere (relativo) a
computer non specializzati rende Litecoin particolarmente appetibile per le botnets (vedi
sezione 4.1.4). Infatti se tutti gli utenti utilizzano dispositivi normali per il mining, una
botnet che controlli molti dispositivi avr un'alta percentuale del potere di calcolo totale della
rete. Se ad esempio una botnet controlla 10.000 CPU (o GPU) in Litecoin avr lo stesso peso di
10.000 utenti onesti, in Bitcoin invece avr lo stesso potere computazionale di un solo miner
che utilizzi una ASIC di fascia media.

Il tempo di attesa medio minore per estrarre un blocco porta numerosi vantaggi
rispetto a Bitcoin. Nello stesso periodo di tempo necessario ad aspettare una conferma in
Bitcoin un utente di Litecoin ottiene quattro conferme. In Bitcoin un utente che non vuole
aspettare dieci minuti deve utilizzare la tecnica di pagamento veloce, con tutti i rischi
associati, in Litecoin invece un utente pu scegliere di aspettare una sola conferma al posto
del pagamento veloce aspettando solo due minuti e mezzo (in media). Questo tempo molto
minore di dieci minuti ma anche molto maggiore dei dieci secondi del pagamento veloce,
quindi pu essere un buon compromesso per pagamenti sicuri abbastanza rapidi. Osserviamo
che un blocco di Litecoin generato da una potenza di calcolo minore di un blocco di Bitcoin,


48 In alternativa le stringhe possono essere rigenerate ogni volta che sono necessarie, queste computazioni inutili

aggiuntive aumentano per il tempo utilizzato, rendendo quindi il calcolo ugualmente costoso per
lattaccante.
138

quindi in generale meno sicuro. A parit di numero di conferme pi facile eseguire


attacchi double-spending contro Litecoin che Bitcoin. Per, anche se fidarsi di una conferma in
Litecoin meno sicuro che in Bitcoin, di certo pi sicuro che aspettare zero conferme
utilizzando il metodo di pagamento veloce di Bitcoin. Creare una biforcazione per modificare
un blocco richiede che l'attaccante sia un miner ed abbia una sufficiente potenza di calcolo,
abbiamo visto invece nella sezione 4.2.1, che un attaccante non ha bisogno di essere un miner
per eseguire un double spending contro un pagamento veloce, quindi la sua potenza di calcolo
ininfluente e perci lattacco pi economico.

Se aspettiamo lo stesso tempo per confermare una transazione in Litecoin e Bitcoin,


l'utente di Litecoin avr un numero di conferme quattro volte maggiore49. Ipotizziamo che un
attaccante provi a biforcare la catena per eseguire un attacco double spending ed abbia la
stessa percentuale di potenza di calcolo totale sia in Bitcoin che in Litecoin (cio lo stesso
(q/p) della formula binomiale formula 2.1). In entrambi i sistemi vale la stessa formula
(formula 2.1), e abbiamo gi osservato in quella sezione come la probabilit di successo
dell'attacco decresca esponenzialmente nel numero di blocchi di svantaggio che ha
l'attaccante. Ma in Litecoin l'attaccante avr un numero medio di blocchi di svantaggio quattro
volte superiore che in Bitcoin. Quindi la probabilit di riuscita dell'attacco sar molto pi
bassa. Se invece gli utenti Litecoin aspettassero lo stesso numero di conferme di Bitcoin,
ottenute in media in un tempo quattro volte inferiore, allora Litecoin sarebbe meno sicuro di
Bitcoin. Infatti, anche se la probabilit di riuscita resta la stessa, un attacco in Litecoin sarebbe
quattro volte pi semplice, computazionalmente parlando. Questo vuol dire che per ogni
attacco double spending in Bitcoin lo stesso attaccante potrebbe eseguire quattro attacchi
double spending in Litecoin. Quindi, a parit di probabilit di riuscita dell'attacco, l'attaccante
in Litecoin avrebbe una probabilit quattro volte maggiore che in Bitcoin che almeno uno dei
suoi attacchi abbia successo. Il tempo di attesa minore per i blocchi aumenta anche la
probabilit di biforcazioni (non intenzionali) della catena. Infatti abbiamo gi osservato nella
sezione 2.6 che durante la comunicazione di un nuovo blocco un miner che non ne ancora
venuto a conoscenza potrebbe estrarre un blocco alternativo creando una biforcazione.
Poich le reti peer-to peer di Litecoin e Bitcoin seguono le stesse regole, possiamo ipotizzare


49 Se ad esempio consideriamo le classiche sei conferme di Bitcoin un utente deve aspettare in media unora. In
Litecoin in un'ora sono estratti in media ventiquattro blocchi, quindi un utente Litecoin avrebbe ventiquattro
conferme.
139

che il tempo di propagazione di un nuovo blocco sia uguale nei due protocolli (ipotizzando
che le due reti abbiano dimensioni uguali). Ma poich il tempo di attesa per estrarre un nuovo
blocco in Litecoin minore la probabilit che venga estratto un blocco alternativo durante la
propagazione di un blocco (e quindi si crei una biforcazione involontaria) quattro volte
maggiore in Litecoin.

Il tempo ridotto di estrazione di un blocco riduce anche l'attesa dei miner di ricevere le
ricompense, a parit di probabilit di estrarre un blocco un miner Litecoin estrae un numero
di blocchi quattro volto superiore di un miner Bitcoin in un intervallo di tempo fissato. Questo
permette di ridurre la varianza delle ricompense ottenute dai miner, aumentando la
convenienza dei miner meno potenti a restare nel sistema senza bisogno di aggregarsi ad un
mining pool, contribuendo a rendere il sistema stesso pi decentralizzato. Il numero di
blocchi quattro volte superiore per aumenterebbe le dimensioni della catena, infatti anche
ipotizzando lo stesso numero di transazioni per unit di tempo tra Bitcoin e Litecoin,
quest'ultimo avr un numero di intestazioni dei blocchi quattro volte maggiore. I nodi
maggiormente penalizzati da questo aumento di dimensioni sarebbero chiaramente i nodi che
utilizzano la tecnica di verifica di pagamento semplificata (vedi sezione 2.5). Questi nodi
infatti, salvando solo le intestazioni, avrebbero una catena di dimensioni quattro volte
maggiori rispetto a Bitcoin.

Litecoin genera blocchi quattro volte pi velocemente di Bitcoin e quindi dimezza le


ricompense ogni 840.000 blocchi (invece di 210.000). Il numero di blocchi dopo i quali
aggiustare la difficolt di ogni blocco stato per lasciato invariato (a 2016 blocchi), quindi
Litecoin aggiusta la difficolt quattro volte pi in fretta (cio dopo tre giorni e mezzo invece
che dopo due settimane). Questo porta il vantaggio di un pi rapido adattamento alla potenza
di calcolo della rete. Se avvengono importanti aggiunte o perdite di potenza di calcolo la
difficolt si riequilibrer prima, portando a un tempo minore in cui i blocchi sono generati
troppo in fretta o troppo lentamente. Lo svantaggio per che la difficolt pi sensibile a
cambi di potenza giornaliera, portando potenzialmente a cambi di difficolt errati.
Consideriamo l'esempio in cui un miner con un'importante percentuale della potenza di
calcolo della rete decida di estrarre blocchi solo la domenica perch il costo per l'elettricit
minore. Nella prima met della settimana la difficolt calibrata senza tenere conto di questo
miner. Nella seconda met per il miner inizia ad estrarre blocchi, quindi la difficolt a cui
lavora minore rispetto a quella corretta per l'aggiunta della sua potenza di calcolo. A
140

mezzanotte di domenica la difficolt viene quindi aumentata per controbilanciare la potenza


di calcolo aggiunta. Il miner non lavora per in tutta la prima met della settimana. In questo
periodo la difficolt artificialmente troppo alta per la potenza di calcolo effettiva e quindi i
blocchi sono generati pi lentamente. A mezzogiorno di gioved la difficolt viene quindi
abbassata, portando ad un vantaggio per il miner che lavora la domenica. La difficolt
continuerebbe cos ad essere instabilmente modificata, avvantaggiando il miner che lavora
solo la domenica e penalizzando i miner che lavorano nella prima met della settimana. In
Bitcoin questo non succederebbe, infatti fu scelto lintervallo di due settimane perch ritenuto
dagli sviluppatori un intervallo sufficiente per controllare questi cambi di potenza giornaliera.

Infine osserviamo che il numero totale di litecoins quattro volte maggiore di quello di
bitcoins, ma i litecoins sono generati quattro volte pi in fretta. Quindi la curva di aumento del
numero di monete la stessa di Bitcoin. Di fatto avere quattro volte pi monete sarebbe
esattamente come avere lo stesso numero di bitcoins, con l'aggiunta di poter dividere un
satoshi (cio 10-8 BTC) in quattro parti, cio utilizzare anche 0,25 , 0,5 e 0,75 satoshi.

5.1.2 Peercoin

Peercoin [33, 92, 93] nasce nell'agosto del 2012. Questa


valuta la terza valuta digitale discendente di Bitcoin per
capitalizzazione (dopo Bitcoin e Litecoin). Allinizio di dicembre
2013 aveva una capitalizzazione pari a 77.344.278 $, mentre oggi
scesa a 44.174.637 $. La principale modifica introdotta da Peercoin
consite nella modifica del mining per includere una proof-of-stake e
per renderlo pi efficiente in termini energetici. Inoltre il numero massimo di monete non
fissato, ma pu crescere indefinitamente mantenendo per un tasso di inflazione costante.

Il simbolo di Peercoin contiene una foglia, richiamo ad idee ecologiste. Infatti lo scopo
principale della modifica della tecnica di mining di Bitcoin quello di rendere il mining pi
efficiente nell'uso dellenergia elettrica. All'aumentare della difficolt della proof-of-work di
un blocco Bitcoin aumenta la potenza di calcolo necessaria e quindi l'energia consumata.
Peercoin introduce il concetto di proof-of-stake da affiancare alla classica proof-of-work per
risolvere questo problema. Peercoin utilizza due diversi tipi di blocchi, il primo tipo sono i
141

classici blocchi di Bitcoin basati sulla proof-of-work, il secondo tipo un nuovo tipo di blocchi
basati su proof-of-stake. A differenza di Bitcoin la catena pi lunga non considerata quella
con la difficolt complessiva maggiore, ma piuttosto quella con let delle monete consumata
(vedi sotto) maggiore. Inoltre la ricompensa di ogni blocco che utilizza la proof-of-work non
viene dimezzata appena si raggiunge un numero predeterminato di blocchi, ma viene
diminuita in modo continuo, in modo che la ricompensa si dimezzi quando la difficolt
aumenta di un fattore sedici.

La proof-of-stake si basa sul concetto di et della moneta (coin age). Let di una
somma ottenuta da una transazione data dal prodotto tra il valore (cio il numero di
monete) di quella somma per il tempo trascorso dalla transazione (cio quanto sono
vecchie quelle monete). Ogni utente pu cercare la proof-of-stake di qualsiasi sua somma
che sia pi vecchia di trenta giorni50. Maggiore let delle monete (cio la somma o il tempo
passato dalla transazione) e maggiori sono le probabilit di risolvere la proof-of-stake. Il
protocollo aggiunge per un limite di 90 giorni dopo i quali le monete non invecchiano
ulteriormente, cio et = valore * min(tempo,90 giorni). Quando una proof-of-stake risolta,
lutente ottiene come ricompensa l1% della somma utilizzata, che viene raccolta dallutente
attraverso una transazione speciale (detta coinstake) che trasmette a se stesso il 101% dei
fondi utilizzati. Con questa transazione let della moneta viene azzerata (perch stata
appena ricevuta da una transazione), detto anche consumata, e dovr re-iniziare ad
invecchiare per poter essere utilizzata di nuovo in una proof-of-stake. Potremmo paragonare i
due metodi dicendo che la proof-of-work si basa su una dimostrazione di potenza di calcolo,
mentre la proof-of-stake si basa su una dimostrazione di fiducia nella valuta (poich lutente
ha investito nella valuta un grande capitale per lungo tempo).

Analizziamo ora i principali vantaggi di utilizzare la proof-of-stake. Allaumentare della


difficolt dei blocchi i miner sono meno incentivati ad utilizzare proof-of-work rispetto alla
proof-of-stake. Di fatto la proof-of-work sar utilizzata solo per i facili blocchi iniziali, dopo di
che sar stata generata abbastanza moneta da rendere le sole proof-of-stake sufficienti. La
proof-of-stake non dipende dalla potenza di calcolo ed quindi molto vantaggiosa in termini


50 Risolvere una proof of stake nella pratica significa trovare un nonce giusto per unhash contro un dato target

come nella proof of work. La differenza che lo spazio di ricerca dei noce limitato dallet delle monete
coinvolte. Il target dipende dallet delle monete utilizzate nella proof of stake, ed aumenta allaumentare di
questa et rendendo pi facile trovare unhash corretta (cio riducendo la difficolt).
142

di risparmio energetico. La proof-of-stake protegge anche meglio della proof-of-work da


attacchi di tipo 50%+1 (vedi sezione 4.1.1). Infatti per ottenere il controllo della catena
lattaccante deve controllare la maggioranza delle monete, invece della maggioranza delle
risorse di calcolo, lattacco quindi, in genere, molto pi costoso. Inoltre lattacco anche pi
dannoso per lattaccante. Se lattaccante controlla la maggioranza delle monete anche il
primo a perderci se il valore delle monete diminuisce, quindi gli utenti sono garantiti che
lattaccante avr il minor interesse di tutti ad affossare il sistema. Anche se lattaccante vuole
tentare un attacco di tipo Goldfinger, e il suo scopo proprio quello di distruggere il valore
delle monete, lattacco contro proof of stake pi costoso. Infatti, se lattaccante riesce ad
ottenere il controllo della maggioranza delle risorse di calcolo in Bitcoin e distrugge il sistema,
poi ha ancora quelle risorse di calcolo che pu rivendere, utilizzare per attaccare altre valute
digitali o semplicemente dedicare ad altri scopi proficui. Se lattaccante possiede la
maggioranza delle monete e distrugge il sistema le sue monete non valgono pi nulla e quindi
dopo lattacco allattaccante non resta niente in mano (di fatto come se lattaccante pagasse
lattacco due volte).

A causa delluso della proof-of-stake sono create l1% di nuove monete ogni anno.
Questo stato deciso dagli sviluppatori per dare a Peercoin uninflazione controllata e stabile.
Le transazioni in Peercoin hanno un costo di commissione fisso e pari a 0,01 PPC. Questa
commissione per non viene raccolta dai miner ma viene invece distrutta. In questo modo
ogni unit del valore di 1 PPC pu essere usata massimo cento volte prima di essere distrutta.
Questo serve per controllare la crescita della moneta, infatti la distruzione di valore causata
dalla commissione per ogni transazione porta il numero di transazioni a diminuire,
diminuendo quindi let delle monete consumata nelle transazioni e aumentando cos il
numero di monete prodotte come ricompense dalle proof-of-stake. Nellidea degli sviluppatori
le commissioni distrutte e linflazione della proof-of-stake dovrebbero bilanciarsi a vicenda
mantenendo costante il valore della moneta.

5.1.3 Namecoin

Namecoin [97, 98, 99] nasce nelAprile del 2011. Questa valuta era la
quarta valuta digitale per capitalizzazione allinizio di dicembre 2013
(57.632.949 $). Oggi invece la nona valuta digitale in assoluto con una
143

capitalizzazione di 19.771.241 $. La principale novit introdotta da Namecoin consiste


nellutilizzare la valuta come un DNS (Domain Name System) decentralizzato.

Lo scopo principale della valuta di rendere internet libero dalla censura. Pi che
come valuta Namecoin quindi utilizzato come DNS decentralizzato, ogni utente infatti
acquista un dominio pagando una commissione di 0,01 NMC. Namecoin introduce tre nuovi
tipi di transazioni: name_new per creare un nuovo nome, con costo fisso di 0,01NMC ;
name_firstupdate che permette di attivare il dominio rendendolo pubblicamente visibile;
name_update per aggiornare o trasferire (allindirizzo namecoin di un altro utente) un
dominio, i domini infatti possono poi essere trasferiti tra gli utenti con le transazioni. I nuovi
domini generati utilizzano il TLD (Top Level Domain) .bit. Questo dominio non supportato
dai server DNS tradizionali, quindi un utente che vuole risolvere un nome deve andare a
cercarlo nella catena dei blocchi di Namecoin. Da Febbraio 2014 Firefox ha per sviluppato un
plug-in che permette a qualsiasi utente di risolvere un nome del dominio .bit (scaricando e
analizzando la catena in background).

Il vantaggio di Namecoin che utilizza la stessa identica tecnica di mining di Bitcoin,


quindi esiste una tecnica di mining detta merged mining che permette ai miner di Bitcoin di
estrarre contemporaneamente blocchi validi sia per Bitcoin che per Namecoin. Questo va a
vantaggio di Namecoin, rendendo lenorme potenza di calcolo della rete Bitcoin garante del
mining, e quindi della sicurezza, di Namecoin.

5.1.4 Primecoin

Primecoin [31, 94, 95, 96] nasce nel luglio del 2013. Questa valuta era
la quinta valuta digitale, figlia di Bitcoin, per capitalizzazione allinizio di
dicembre 2013 (15.569.041 $). Oggi invece ha perso molto terreno ed la
sedicesima valuta digitale in assoluto con una capitalizzazione di 3.699.506
$. Le principali modifiche introdotte da Primecoin consitono nella modifica
del mining, utilizzando una proof-of-work diversa che permette di ottenere vantaggi laterali
con le computazioni effettuate per risolverla. La ricompensa di ogni blocco variabile e la
difficolt modificata dopo ogni nuovo blocco per permettere di estrarre un nuovo blocco in
media ogni minuto.
144

La proof-of-wok non consiste nel trovare un nonce per unhash sotto un determinato
target come in Bitcoin, ma piuttosto di trovare una catena di numeri primi. Sono accettate le
catene Cunnigham del primo (pk+1 = 2pk + 1) e secondo tipo (pk+1 = 2pk - 1) e catene bi-twin (
(pk+1,qk+1) = (2t-1,2t+1) dove t=pk+1=qk-1 ) . La dimensione dei primi utilizzati nelle catene
per limitata per evitare che la verifica di primalit (probabilistica) sia troppo onerosa per gli
utenti. Per collegare una catena di numeri primi ad un blocco si richiede che lorigine della
catena51 sia divisibile per lhash dellintestazione del blocco. Lhash del blocco poi calcolata
come lhash dellintestazione del blocco concatenata con la catena risultato della proof-of-
work. La difficolt della proof-of-work viene aggiustata aumentando la difficolt della catena
da trovare (e la difficolt di una catena aumenta esponenzialmente nella sua lunghezza), ed
aggiustata ad ogni blocco (invece che ogni 2016 blocchi) per generare in media un nuovo
blocco ogni minuto. La difficolt di una catena di numeri primi P1, , Pk calcolata come k +
(Pk+1 / r ) , dove Pk+1 il successivo numero (non necessariamente primo) della catena e r il
resto del test di primalit di Fermat su Pk+1. La ricompensa per ogni blocco variabile ed
calcolata come 999 / (difficolt).

Il vantaggio principale della valuta resta il fatto di utilizzare una proof-of-work non
basata su funzioni di hash e di produrre risultati matematicamente importanti come effetto
laterale del mining (le catene di numeri primi).

5.2 Ripple

Analizziamo Ripple [36, 100, 101] come esempio popolare di valuta digitale alternativa
a Bitcoin. Il nostro scopo non analizzare i dettagli del protocollo, ma piuttosto di confrontare
le sue idee di base con quelle alla base di Bitcoin.

Come Bitcoin, Ripple un protocollo distribuito e open source che funziona su una rete
peer to peer. La valuta interna di Ripple sono i ripples (XRP) ma la rete funziona utilizzando

51 Lorigine di una catena che inizia con il primo P P-1 nel caso di catene Cunnigham del primo tipo, P+1 per

catene Cunnigham del secondo tipo e p+1=q-1 per catene bi-twin che iniziino con la coppia (p,q).
145

anche altre valute tradizionali, digitali o qualsiasi altra unit di valore che gli utenti
desiderano scambiarsi. Di fatto Ripple pu essere considerato un servizio di cambio
distribuito tanto quanto una valuta digitale. Come Bitcoin, anche Ripple mantiene un database
distribuito delle transazioni, ma il database aggiornato attraverso una tecnica detta di
consenso, invece che attraverso il mining. Questa tecnica molto pi veloce (richiede
qualche secondo invece di dieci minuti) ed economica (non richiede investimenti particolari
in hardware, n consumo aggiuntivo di energia elettrica), rispetto al mining di Bitcoin.

5.2.1 Fondamentali del Protocollo

Per entrare a far parte della rete Ripple ogni utente deve crearsi un nuovo account e
caricare dei fondi su quellaccount. Per poter fare questo esistono dei nodi particolari
chiamati gateways. Un gateway agisce nella rete Ripple come una banca agisce nel mondo
reale, ogni utente pu depositare fondi reali (cio provenienti dai suoi conti bancari, dai suoi
indirizzi Bitcoin o altro) presso un gateway, ed ottenere laccredito di quei fondi sul suo
account allinterno della rete Ripple. Per accreditare i fondi allutente, il gateway si limita a
comunicare il deposito alla rete, affinch la transazione venga aggiunta nel database
distribuito. Allo stesso modo dei depositi il gateway gestisce anche i prelievi, permettendo
allutente di ritirare i fondi contenuti nellaccount. Sar compito del gateway comunicare il
prelievo alla rete. La rete Ripple si basa su rapporti di fiducia tra gli utenti (compresi i
gateway). Ogni utente pu indicare una somma massima in una determinata valuta per cui si
fida di un altro utente o gateway. Ogni utente pu inoltre accettare cambi allinterno del suo
account specificando il tasso di cambio tra le due valute, di fatto lutente si comporta cos
come un servizio di cambio. Ogni utente che vuole effettuare una transazione con un altro
utente si limita ad inviare il valore necessario nella valuta che preferisce. Ripple utilizza poi
un algoritmo di ricerca del cammino ottimo che percorre i canali di fiducia tra i vari utenti o
gateways (senza superare i limiti fissati) cercando i cambi pi favorevoli, fino ad arrivare al
destinatario con il valore pagato convertito nella valuta richiesta dal destinatario. Quindi il
pagamento attraversa numerosi utenti e permette cambi di valuta distribuiti. Se un utente
europeo vuole effettuare una transazione con un utente tailandese, non deve preoccuparsi del
cambio n della distanza, infatti lalgoritmo calcoler il cammino ottimo utilizzando magari
alcuni cambi intermedi (ad esempio da EUR a USD e poi da USD in AUD e infine da dollari
146

australiani in valuta tailandese). I nodi intermedi attraversati dal cammino sono semplici
utenti che hanno specificato i propri tassi di cambio tra valute che possiedono e sono collegati
da un cammino di fiducia con entrambi i due utenti impegnati nella transazione.

Le transazioni sono salvate in un database distribuito aggiornato attraverso una


procedura di consenso. Il database contiene una lista di tutti gli account con i propri fondi
nelle diverse valute, ed ogni transazione una richiesta di modifica a questo database. Ogni
nodo nella rete pu diventare validatore, cio occuparsi dellaggiornamento del database
distribuito. Quando un nodo validatore viene a conoscenza di una transazione la aggiunge alla
sua lista di transazioni in attesa. Periodicamente lutente trasforma questa lista in una
proposta. Una proposta semplicemente una lista di transazioni di cui il nodo venuto a
conoscenza. Il nodo invia la propria proposta agli altri validatori di cui si fida (cio a cui
collegato da un cammino di fiducia), i quali votano su ogni transazione contenuta nella
proposta. Votare significa controllare se ogni proposta contenuta nella propria lista di
transazioni in attesa di essere validate, se la transazione presente allora il nodo aggiunge un
voto a quella transazione nella sua lista. Il nodo aspetta un tempo prefissato durante il quale
vota sulle proposte che riceve a sua volta, dopodich crea ed invia una nuova proposta
contenente tutte le transazioni della propria lista che hanno ricevuto almeno il 50% dei voti. Il
nodo ricever quindi le proposte con transazioni al 50% degli altri nodi e voter ancora su
queste per il tempo prefissato. Allo scadere del tempo raccoglier in una nuova proposta solo
le transazioni che hanno ricevuto il 60% dei voti. Il procedimento si ripete per altre due volte
finch non creata una proposta che contiene tutte le transazioni con almeno l80% dei voti.
A questo punto si dice che la transazione ha ottenuto il consenso dei nodi e quindi le
transazioni contenute in quella proposta sono applicate al database, creando la sua versione
aggiornata. Tutte le nuove transazioni ascoltate da un nodo durante il periodo di consenso
sono aggiunte alle transazioni rimaste (cio non incluse nellultima proposta) nella sua lista
dattesa, ed il processo ripetuto da capo.

5.2.2 Valuta interna

Il protocollo introduce la nuova valuta ripple, che utilizzata come valuta di default
nella rete Ripple. I ripples sono pre-mined cio generati gi alla nascita del protocollo.
Esistono cento miliardi di ripples divisibili fino alla sesta cifra decimale. Come abbiamo gi
147

spiegato gli utenti possono usare qualsiasi valuta nei loro depositi e non sono obbligati ad
utilizzare i ripples (anche se alcuni nodi potrebbero utilizzarli per i cambi intermedi durante
un pagamento di qualsiasi altro utente). Ogni nuovo utente per obbligato a depositare sul
proprio account (spesso acquistandoli) almeno 25 XRP per poter attivare il propri account. Di
questi ripples, 20 XRP devono essere sempre presenti nellaccount come riserva. Questa
riserva serve per proteggere la rete da attacchi DDoS che riempiano la rete di false transazioni
o accounts (aumentare il numero di accounts pu essere una forma di attacco DoS perch
aumenta le dimensioni del database distribuito). Infatti ad ogni transazione associata una
commissione di 0,00001 XRP . Questa commissione non guadagnata da nessun utente e i
ripples che contiene sono semplicemente distrutti. Limporto della commissione aumentato
per un utente che crea molte transazioni in poco tempo, e torna al valore iniziale solo dopo un
tempo datteso prefissato. Questo rende costoso per un attaccante sia creare tanti account
(perch ognuno ha un costo minimo di 20 XRP) sia inondare la rete di transazioni (perch i
costi delle commissioni prosciugherebbero in fretta la riserva). Gli sviluppatori ritengono che
la distruzione di valore nelle commissioni non influenzi gli utenti onesti grazie al suo importo
limitato quando vengono eseguite transazioni a ritmi normali.

5.2.3 Confronto con Bitcoin

Abbiamo gi osservato come laggiornamento del database avvenga tramite la


procedura del consenso. Rispetto al minig questo permette risparmi per i validatori e un
minor tempo dattesa per la validazione delle transazioni. I nodi per non hanno nessun
interesse economico a diventare validatori, quindi lintero processo di validazione si basa
sulla speranza di un contributo volontario dei nodi alla validazione. Le transazioni sono
irreversibili in entrambi i protocolli ma, mentre in Bitcoin sono salvate per sempre nella
catena, in Ripple sono utilizzate per modificare i bilanci degli accounts contenuti nel database.
Inoltre ogni utente subito pronto a partecipare alla rete e non ha bisogno di scaricare
lintera catena delle transazioni come in Bitcoin (se implementa un nodo con piene
funzionalit).

La valuta interna XRP pre-generata a differenza dei bitcoins che devono essere
estratti. I cento miliardi di ripples esistenti erano posseduti in origine dai fondatori (e loro
finanziatori) che hanno dato ottanta miliardi alla societ Ripple Labs (incaricata di mantenere
148

e sviluppare il software di Ripple) affinch distribuissero cinquantacinque miliardi agli utenti.


Di fatto quindi i Ripple Labs detengono il 25% dei ripples totali e i fondatori il 20% . Questi
soggetti quindi beneficiano di qualsiasi aumento del valore della valuta dovuto allutilizzo
degli utenti, e vengono per questo accusati di ottenere un vantaggio ingiusto (e gratuito). Le
stesse accuse furono fatte contro gli sviluppatori iniziali di Bitcoin che si sono arricchiti
enormemente estraendo bitcoins quando la difficolt era minima, portando a sospettare di
truffe a schema piramidale per entrambe le valute.

Osserviamo come Ripple sia usato principalmente per le sue propriet di cambio
piuttosto che come valuta. Bitcoin e Ripple possono quindi lavorare ottimamente insieme,
infatti qualsiasi utente di Bitcoin pu utilizzare Ripple per pagare in una qualsiasi valuta
tradizionale un commerciante che non accetta bitcoins, sar la rete di Ripple ad occuparsi dei
cambi necessari. Ripple permetterebbe quindi di eliminare la necessit di servizi di cambio in
Bitcoin, eliminando i pericoli di utilizzare questi servizi. Di fatto per gli stessi siti di cambio
di Bitcoin diventano oggi sempre pi spesso gateway Ripple, quindi utilizzare Ripple permette
solo di spostare la fiducia da un sito di cambi ad un gateway, ma la fiducia comunque
necessaria.


149

Figura 5.1 Classifica delle principali valute digitali per capitalizzazione, fonte [88], data 1
Aprile 2014.


Capitolo 6 Analisi del Grafo degli Utenti

Come abbiamo visto nella sezione 4.3.1, possibile applicare tecniche di distruzione
dellanonimato per ottenere un grafo degli utenti che raggruppi i molti indirizzi di ununica
entit della rete Bitcoin in un unico nodo (o meglio un cluster di nodi) con gli archi
rappresentanti le transazioni tra queste entit. Sono stati gi effettuati alcuni studi accademici
della comunit bitcoin basati su queste tecniche, e nel seguito mostreremo i risultati dei due
lavori pi interessanti (secondo il modesto parere dellautore). Successivamente mostreremo
i risultati ottenuti dallanalisi del grafo degli utenti ottenuto dallautore stesso.

6.1 Ron e Shamir

Il primo lavoro che analizziamo lanalisi effettuata da Ron e Shamir in [24] basata sui
dati contenuti nella catena dei blocchi fino al 13 maggio 2012. Lanalisi inizia ad essere datata
poich allepoca bitcoin non aveva ancora raggiunto la popolarit odierna e non aveva ancora
sperimentato la crescita del 2013. Molti aspetti rivelati per da quellanalisi sono utili ancora
oggi per meglio comprendere il fenomeno bitcoin. La tecnica utilizzata dagli autori per
raggruppare gli indirizzi in cluster utilizza solo la prima regola euristica spiegata in sezione
4.3.1 (tutti gli indirizzi in input di una transazione appartengono allo stesso utente). La
tecnica utilizzata molto conservativa (il numero di falsi positivi irrilevante) ma non molto
raffinata (genera cio un alto numero di indirizzi divisi che potrebbero essere correttamente
raggruppati in un cluster utilizzando anche altre regole). Quindi i risultati ottenuti vanno
considerati come una sovrastima della realt.

Figura 6.1
Distribuzione del numero di
indirizzi per utente, fonte
[24]
152

Il grafo degli utenti ottenuto contiene 2.460.814 utenti distinti di cui 609.270 (cio
circa il 25% del totale) sono singoli indirizzi che hanno solo ricevuto pagamenti senza mai
ritrasmettere i fondi. Questi utenti sono collegati da 7.134.836 transazioni singole (le
transazioni multi-output vengono divise in una singola transazione per ogni output).

Figura 6.2 Distribuzione del massimo numero di bitcoins mai posseduti per utente e indirizzo,
fonte [24]

Allepoca dellanalisi esistevano 9.000.050 BTC in circolazione. Nei 609.270 indirizzi


(che sono considerati utenti con un singolo indirizzo) che non hanno transazioni in uscita
sono contenute ben 7.019.100 BTC, cio il 78% del totale. Questo numero non rappresenta di
fatto la quantit di monete immagazzinate come riserve in degli indirizzi inattivi, poich
potrebbero appartenere a indirizzi recenti che non hanno ancora avuto occasione di spendere
i fondi contenuti. Se si considerano quindi solo gli utenti pi vecchi di almeno tre mesi dalla
data delle misurazioni che non hanno transazioni in output, questi contengono il 59,7% di
tutti i bitcoins prodotti. Inoltre gli autori effettuano una stima del numero di bitcoins persi,
considerando un indirizzo come perduto se non attivo dal 18 luglio 2010, data di inizio dei
cambi sul sito Mt.Gox . I bitcoins contenuti in questi indirizzi ammontano a 1.657.480 BTC
cio 18,4% del totale. Da queste percentuali si pu vedere come sia corretta lassunzione che,
almeno fino al 2012, la maggior parte dei bitcoins non sono utilizzati come mezzo di
pagamento, ma vengono piuttosto messi da parte (o perse) in attesa di un aumento di valore
futuro. Se si considerano gli importi delle transazioni degli utenti scopriamo che leconomia
153

bitcoin riflette leconomia reale, con molti utenti con pochi fondi e pochissimi utenti con fondi
grandissimi. Infatti il 36% degli utenti ha ricevuto meno di 1 BTC, il 52% meno di 10 BTC e
l88% meno di 100 BTC . Questo quadro rafforzato dallanalisi del massimo numero di
bitcoin posseduto mai nella storia da ogni utente, scoprendo che l88% degli utenti ha
posseduto al massimo 100 BTC . Gli autori studiano anche il numero di transazioni in cui ogni
utente stato coinvolto (ricevendo o inviando fondi), scoprendo che il 97% degli utenti ha
partecipato a meno di dieci transazioni. Dalla stessa tabella (Figura 6.1) osserviamo anche
come non sia sempre rispettata la regola di creare un nuovo indirizzo per ogni transazione,
infatti solo il 72% degli indirizzi utilizzato meno di quattro volte. Inoltre il 73% delle
transazioni riguardano importi minori di 10 BTC.

Un altro interessante aspetto dellanalisi in considerazione lo studio delle transazioni


che riguardano fondi consistenti. In particolare gli autori hanno analizzato nel dettaglio le 364
transazioni presenti nella catena che coinvolgono importi superiori o uguali a 50.000 BTC . La
pi vecchia di queste transazioni stata fatta l8 novembre 2010 e coinvolgeva 90.000 BTC .
Questa somma non dovrebbe derivare da un furto (il primo furto denunciato risale infatti a
giugno dellanno successivo), ma piuttosto dovrebbe rappresentare i facili guadagni di uno dei
primi utilizzatori, o magari di Satoshi Nakamoto stesso. Ben 348 delle 363 transazioni di
grandi fondi analizzate, cio il 96%, derivavano da questunica grande transazione. Questa
somma stata divisa, sparpagliata e poi ricombinata utilizzando le tecniche di offuscamento
spiegate nella sezione 4.3.2. La maggioranza di questi grandi fondi sono stati divisi in somme
pi piccole (5.000 BTC) e lasciati come depositi in degli indirizzi da cui non si sono pi mossi,
dimostrando il loro utilizzo come riserve.


154

Figura 6.3 Distribuzione del numero di transazioni per utente e indirizzo, fonte [24]

6.2 A Fistful of Bitcoins

Il secondo articolo che analizziamo A Fistful of Bitcoins: Characterizing Payments


Among Men with No Names in [20]. Larticolo si basa sui dati contenuti nella catena dei
blocchi fino al 13 aprile 2013. I dati raccolti sono quindi vecchi di un anno rispetto ad oggi ma
possono essere comunque considerati una buona stima delleconomia bitcoin. Infatti i dati
non considerano la bolla di novembre 2013 n il recente fallimento di Mt.Gox, ma si basano
sui dati del mercato che aveva gi visto lattenzione del vasto pubblico e lesplosione della
prima bolla (esplosa proprio in quei giorni di aprile). I dati raccolti mostrano anche unottima
analisi storica mostrando levoluzione delleconomia bitcoin dalle sue origini e gli effetti
dellingresso di nuovi servizi, come i siti di scommesse. La tecnica utilizzata dagli autori per
raggruppare gli indirizzi in cluster utilizza la prima e la seconda regola euristica spiegata nella
sezione 4.3.1 (tutti gli indirizzi in input di una transazione appartengono allo stesso utente;
lindirizzo contenente il resto di una transazione appartiene allo stesso proprietario degli
indirizzi di input di quella transazione). Gli autori non utilizzano quindi tecniche pi
sofisticate, ma le due regole utilizzate sono comunque sufficienti ad ottenere risultati
significativi. Infine osserviamo che gli autori utilizzano le tecniche per associare unidentit ai
cluster trovati spiegate in sezione 4.3.1, interagendo con la maggior parte dei servizi
disponibili e raccogliendo gli indirizzi pubblicati volontariamente dagli utenti.

Prima di costruire il grafo degli utenti gli autori compiono unanalisi storica
dellevoluzione delleconomia bitcoin. Prima considerano gli importi delle transazioni
contenute nei blocchi e la
loro evoluzione nel
tempo.


155

Figura 6.4 Distribuzione dei valori delle transazioni, fonte [20]

Questo grafico rappresenta bene levoluzione della rete. Infatti in origine la quasi
totalit delle transazioni contenute nei blocchi erano transazioni generatrici che contenevano
quindi solo le 50 BTC della ricompensa di allora. Si pu cos osservare come durante tutto il
primo anno di utilizzo gli utenti si siano limitati a generare nuovi bitcoins senza poi utilizzarli.
Con il passare del tempo gli scambi hanno preso sempre pi piede, portando le transazioni
generatrici a ricoprire sempre meno importanza. Come possiamo vedere la progressione
temporale porta ad un 90% di transazioni con importi minori di 50 BTC. Questo dato
consistente con lanalisi di Ron e Shamir illustrata in precedenza e con lingresso di nuovi
utenti con basso potere dacquisto nella rete. Osserviamo anche una percentuale pari al 40%
di transazioni di valore inferiore ad 1 BTC. Questo aumento di cosiddette micro-transazioni
pu essere spiegato con la grande diffusione dei siti di scommesse e dei mining pools (oltre
chiaramente allaumento del valore dei bitcoins). Infatti i siti di scommesse utilizzano spesso
transazioni di importi molto piccoli, ad esempio il famoso sito Satoshi Dice paga un satoshi
(cio 10-8 BTC) come premio di consolazione per tutte le scommesse perse. Non un caso che
Satoshi Dice abbia iniziato ad operare ad aprile del 2012, e proprio in quel periodo si vede nel
grafico il raddoppio della percentuale di transazioni di importi minori di 1 BTC, ed i triplicarsi
della percentuale di transazioni di importi inferiori a 0,1 BTC. Ugualmente i mining pools
utilizzano tante transazioni di piccola entit per dividere le ricompense tra i miners della pool,
e con il passare del tempo la difficolt aumentata portando allaumento della diffusione dei
mining pools.

Unaltra analisi interessante riguarda il tempo medio che passa tra il ricevimento e
linvio dei bitcoins. Dal grafico possiamo vedere come gli utenti iniziali mettessero da parte i
bitcoins ottenuti, immagazzinandole come riserve in degli indirizzi da cui non sono pi uscite.
Questo dato compatibile con losservazione fatta nellanalisi precedente (vedi sezione 6.1)
dove mostravamo come i primi bitcoins siano state immagazzinati in riserve che non
156

contribuiscono alleconomia reale di bitcoin. Con il passare del tempo il trend per cambiato
e recentemente la quasi totalit dei bitcoins ricevuti sono trasferiti entro un mese dalla data di
ricezione. Questo di per s non significa che entrino a far parte delleconomia poich
potrebbero essere inviate dagli utenti a loro stessi per aumentare il proprio anonimato, come
spiegato nella sezione 4.3.2 . Di certo per possiamo concludere che la maggior parte delle
riserve sono state create dagli utenti iniziali, e solo una parte minore viene oggigiorno
sottratta al mercato in investimenti di lungo periodo. Inoltre anche in questo grafico possiamo
osservare leffetto della comparsa di Satoshi Dice ad aprile 2013, che porta allaumento della
rapidit delle transazioni (infatti il sito trasmette immediatamente le vincite o perdite ai
giocatori).

Figura 6.5 Grafici del tempo che intercorre tra il ricevimento dei fondi in un indirizzo ed il loro
successivo re-invio. Il grafico di sinistra rappresenta la percentuale sul numero di transazioni e
quello di destra la percentuale sul valore totale delle transazioni, fonte [20]

Gli autori analizzano poi il grafo degli utenti ottenuto. Il grafo ha 3.383.904 utenti, di
cui 2.197 possono essere associati ad identit note. Questo significa un aumento del 37,5% del
numero di utenti in undici mesi rispetto allanalisi dellanno precedente (i due risultati sono
ottenuti con euristiche diverse quindi questa percentuale non esatta ma solo indicativa).
Grazie al grafo possibile calcolare delle statistiche e verificare le ipotesi fatte in precedenza
su Satoshi Dice. Questo servizio responsabile da solo del 60% delle transazioni giornaliere
dellintera rete bitcoin, il 21% delle scommesse fatte hanno limporto minimo accettato dal
servizio, pari a 0,01 BTC. Il servizio responsabile in media per il 40% delle transazioni
inviate con importo miniore di 0,1 BTC e per circa il 50% delle transazioni inviate entro
secondi dalla ricezione dei fondi in input. Questi dati provano le ipotesi fatte in precedenza su
questo servizio di scommesse. Possiamo inoltre ottenere nuove informazioni osservando il
157

grafo. Notiamo ad esempio che Satoshi Dice certamente il maggior produttore di transazioni,
ma non il servizio che raccoglie maggior valore dalla rete. Possiamo infatti vedere che
Mt.Gox il servizio in assoluto che detiene la maggior parte dei fondi. Allepoca dellanalisi
infatti non si erano ancora verificati i problemi tecnici e giudiziari che porteranno al declino
dello storico servizio di cambi (vedi sezione 1.3). Unaltra importante considerazione che
possiamo fare riguarda i siti di commercio on-line. Non possiamo calcolare dal grafo la
quantit di scambi commerciali (cio pagamenti per beni e servizi) che avvengono
nelleconomia bitcoin, poich non conosciamo lidentit di tutti i venditori che accettano
bitcoins, n possiamo capire quali transazioni tra semplici utenti sono da considerarsi
commerciali. Possiamo per considerare limportanza dei servizi famosi di commercio in
bitcoins. La maggior parte dei siti o commercianti si appoggiano infatti a servizi di commercio
specializzati per poter gestire pagamenti in bitcoins. Possiamo quindi approssimare
limportanza delleconomia reale allinterno delleconomia bitcoin con limportanza di questi
siti rispetto agli altri servizi. Dal grafo si vede come i servizi pi utilizzati (per capitali
utilizzati e non per transazioni generate) siano i servizi di cambio, seguiti a distanza dai
servizi di gestione di portafoglio on-line. Se controlliamo i servizi commerciali notiamo che il
servizio pi popolare Silk Road. Ignorando Silk Road i servizi commerciali, tra cui i principali
sono Bitpay e Bitmit, ricoprono unimportanza di mercato inferiore ai mining pools (oltre che
ai servizi di cambio e portafoglio), e paragonabile ai servizi di scommesse. Possiamo quindi
concludere come il commercio rappresenti una piccola percentuale delleconomia bitcoin, ed
in questa piccola percentuale larga parte dei beni trattati sono di natura illegale. Ricordiamo
comunque che questa analisi non possiede la granularit necessaria a considerare il
commercio al dettaglio (anche se i negozi nel mondo che accettano bitcoin sono un numero
limitato) o tra utenti privati.
158

Figura 6.6 Grafo degli utenti della rete bitcoin. Larea di ogni nodo rappresenta la somma dei
valori in ingresso (cio dei bitcoins ricevuti da altri utenti), ogni arco tra due nodi rappresenta
duecento transazioni tra quei due nodi. I nodi sono colorati per categoria: blu mining pool;
arancione servizi di cambio senza portafoglio; viola servizi di cambio con portafoglio; verde
servizi di gestione portafogli on-line; rosso servizi commerciali; marrone servizi di
scommesse; rosa servizi di investimento; grigio non classificati. Fonte [20]

6.3 Analisi dellAutore


Esponiamo in questa sezione lanalisi personale dellautore. Lanalisi si basa sui dati
contenuti nella catena dei blocchi fino al primo febbraio 201452.

52 Pi precisamente lultima transazione considerata ha data: Sat Feb 01 07:15:05 CET 2014.
159

La tecnica utilizzata dallautore per raggruppare gli indirizzi in cluster utilizza la prima
e la seconda regola euristica spiegata nella sezione 4.3.1 (tutti gli indirizzi in input di una
transazione appartengono allo stesso utente; lindirizzo contenente il resto di una transazione
appartiene allo stesso proprietario degli indirizzi di input di quella transazione). In
particolare utilizziamo le seguenti regole conservative per individuare quali indirizzi siano
usati come resti:

Se la transazione generatrice non cerchiamo resti.


Se la transazione ha un unico output allora non cerchiamo resti.
Se esiste almeno un indirizzo tra gli output presente anche tra gli input allora
non cerchiamo resti.
Se esiste almeno un indirizzo tra gli output che era stato gi considerato resto in
una precedente transazione allora non cerchiamo resti in questa transazione.
Un indirizzo di output pu essere considerato resto solo se non mai stato
utilizzato prima, cio solo se la prima volta che compare nella catena.
Se nella transazione sono presenti pi indirizzi di output che possono essere
considerati resti allora non cerchiamo resti nella transazione corrente (poich
non possiamo sapere quale sia il vero resto tra i candidati).

La nostra analisi ha rilevato 7.497.698 utenti distinti, 26.986.444 indirizzi e 78.392.548


mono-transazioni. Nel seguito di questa sezione utilizzeremo entrambi i termini transazione
e mono-transazione per indicare una transazione con al massimo un input53 ed un solo
output. Possiamo sempre scomporre una transazione con input ed output multipli in mono-
transazioni:

Una transazione con N input ed M output54 verr scomposta in M transazioni con un unico input,
scelto tra qualsiasi indirizzo degli input della transazione originale, ed un unico output, uguale
allM-esimo output della transazione originale.

La precedente regola corretta poich tutti gli input della transazione multipla saranno
raggruppati in un unico cluster rappresentante un singolo utente (applicando la prima regola
euristica), quindi otterremo una transazione che ha quellutente come input (poich le

53 Poich le transazioni generatrici non hanno inputs.

54 Che ricordiamo essere coppie (indirizzo, valore).


160

transazioni uniscono utenti, e non indirizzi, nel grafo degli utenti) indipendentemente
dallindirizzo scelto.

Possiamo subito confrontare il numero di utenti trovato con il numero di utenti delle
due analisi precedenti. Il valore aumentato del 121,6% in otto mesi e mezzo rispetto alla
seconda analisi e del 204,7% in venti mesi e mezzo rispetto alla prima analisi. La crescita non
lineare del numero di utenti dimostra come il 2013 sia stato lanno della svolta per bitcoin,
aggiungendo allimpennata dei tassi di cambio un deciso aumento del numero di utenti. Come
abbiamo gi spiegato in precedenza, ricordiamo che queste percentuali sono solo indicative
poich il numero di utenti stato ottenuto con euristiche diverse nelle tre analisi. La prima
analisi ad esempio non considera per nulla i resti e quindi il numero di utenti trovato
rappresenta di certo una sovrastima del numero di utenti trovato nella seconda ed attuale
analisi (quindi le percentuali di crescita potrebbero essere in realt pi alte). Per avere una
stima pi accurata del numero di utenti abbiamo quindi salvato il numero degli utenti in
diversi punti del tempo durante la costruzione del grafo, ottenendo il seguente risultato:

Numero di Utenti
8000000
7000000
6000000
5000000
4000000
3000000
2000000
1000000
0

Figura 6.7 - Il grafico rappresenta il numero di utenti nel tempo. Lasse delle ascisse non in
scala poich rappresenta le date delle misurazioni effettuate e non lo scorrere del tempo.

Possiamo notare come il numero di utenti trovato nella seconda analisi con euristiche simili
alle nostre sia simile al numero di utenti da noi trovato per quella data, mentre il numero di
utenti trovato dalla prima analisi, che non considera i resti, sia circa il doppio dal numero da
161

noi trovato per quella data. Questo conferma la nostra considerazione sulla sovrastima
introdotta nella prima analisi. Dal grafico si pu anche notare come il numero di utenti sia
circa raddoppiato nel corso del 2012 mentre quasi raddoppiato nel corso del 2013.

Osserviamo inoltre che il numero di utenti trovato non rappresenta esattamente il


numero di utenti che partecipano oggi nelleconomia bitcoin. Il valore trovato rappresenta
infatti il numero di utenti storico cio il numero complessivo di tutti gli utenti che hanno
partecipato nelleconomia bitcoin dal suo inizio ad oggi. Sono compresi quindi nel conteggio
anche gli utenti che hanno abbandonato leconomia da tempo. Questa affermazione pu
essere subito compresa analizzando il saldo corrente attuale di tutti gli utenti mostrato in
Figura 6.8 .

Saldo Corrente (BTC) Numero di Utenti Percentuale sui Saldi Positivi


0 5425042 Non Presente
< 0,01 1232324 59,46 %
< 0,1 365722 17,65 %
< 1 217832 10,51 %
< 10 156681 7,56 %
< 100 87425 4,22 %
<1.000 11278 0,54 %
<10.000 1294 0,06 %
<100.000 97 0,005 %
>= 100.000 3 0,0001 %

Figura 6.8 - Tabella con il numero di utenti diviso per saldo corrente (in BTC). La percentuale del
numero di utenti sul numero di utenti totale calcolata sui i soli utenti con saldo non nullo.

Dalla figura si nota chiaramente come tantissimi utenti (5.425.042 utenti pari al 72,4% del
totale) abbiano un saldo attuale nullo. Non possiamo per concludere che questi utenti sono
utenti storici oggi inattivi. Questi utenti potrebbero infatti aver speso tutti i propri fondi ed
aver abbandonato leconomia oppure potrebbero essere semplicemente in attesa di ricevere
pagamenti che poi trasformano subito in valute tradizionali (azzerando quindi il proprio saldo
a favore dei siti di cambio). bene ricordare in questa sede il significato ambiguo del termine
utente utilizzato nella trattazione. Per utente si intende semplicemente un cluster di
indirizzi, quindi sappiamo che ogni utente governato da una solo entit, ma non vale il
contrario. Ununica entit pu cio controllare pi di un utente. Ricordiamo inoltre che per
entit non si intende una persona fisica, poich sono inclusi anche i servizi attivi su bitcoin, e
unentit che rappresenta un servizio pu raggruppare la suo interno molte persone fisiche. Si
162

pensi ad esempio al servizio di gestione on-line del portafoglio CoinBase che ha annunciato di
avere superato un milione e trecentomila iscritti [75] (quindi un singolo utente nel grafo
raggrupperebbe pi di un milione di utenti fisici). Quindi il numero di persone fisiche
allinterno delleconomia pu essere molto diverso dal numero di utenti con saldo non nullo.

100%
90%
80% >100.000
<100.001
70%
<10.001
60%
<1.001
50%
<101
40% <11
30% <6
20% =2

10% = 1
= 0
0%

Figura 6.9 - Grafico rappresentante gli utenti divisi per saldo corrente (in BTC) e numero di
transazioni (in uscita). Il grafico riporta sulle ascisse il saldo corrente posseduto (con intervalli
disgiunti, cio valori non cumulativi) ed ogni barra verticale indica le percentuali del numero di
utenti con quel saldo divisi per numero di transazioni.

Analizzando la Figura 6.9 possiamo subito caratterizzare questi utenti con saldo nullo. Gli
utenti con saldo corrente nullo sono infatti rappresentati dalla prima barra a sinistra.
Vediamo subito come non siano presenti utenti con zero transazioni, che invece sono
dominanti in tutti gli altri gruppi di utenti. Questo corretto poich, per avere un saldo
corrente nullo necessario che lutente abbia speso tutti i propri fondi e quindi deve per forza
aver eseguito almeno una transazione in uscita (cio un pagamento). Il 10% circa degli utenti
con saldo corrente nullo hanno eseguito una sola transazione. Questo suggerisce che siano
utenti temporanei, cio indirizzi utilizzati solo per accumulare fondi per poi svuotarli tutti in
ununica transazione. Il restante 90% segue una distribuzione del numero di transazione
163

simile, in proporzione, ai gruppi di utenti con altri saldi (esclusi gli utenti con zero
transazioni), e quindi potrebbero essere considerati utenti usciti dalleconomia o in attesa.
Osserviamo come sia importante per la protezione del proprio anonimato un utilizzo molto
dinamico da parte degli utenti dei propri indirizzi. Creare spesso nuovi utenti (cio utilizzare
nuovi indirizzi non collegati ai vecchi) e svuotare ed abbandonare i vecchi indirizzi (cio i
vecchi utenti) aiuta infatti unentit ad aumentare il proprio anonimato. La tecnica consigliata
di generare un nuovo indirizzo per ogni transazione segue questo principio, pu essere infatti
vista come creazione di un nuovo utente per ogni transazione.

Nel grafico precedente (Figura 6.9) possiamo anche notare come prevalga decisamente
un numero nullo di transazioni tra gli utenti con saldi positivi. Un numero nullo di transazioni
indica che quellutente ha solo ricevuto fondi, e mai spesi. Potremmo pensare che questi
utenti siano utenti deposito cio utenti i cui bitcoins siano stati messi da parte, ma cos non
. Questi utenti comprendono infatti tutti i pagamenti recenti ad utenti che non hanno ancora
avuto il tempo di spendere i fondi ricevuti. Cercheremo di distinguere tra fondi messi da parte
e fondi troppo recenti per essere stati ancora spesi pi avanti in questa sezione.

Dalla figura Figura 6.8 possiamo vedere come leconomia di bitcoin sia molto
polarizzata, come leconomia reale, con la maggior parte degli utenti poveri (87,62% degli
utenti con saldo positivo possiedono oggi meno di 1 BTC). Questa considerazione simile a
quella che avevamo fatto analizzando la Figura 6.2 nella prima analisi, ma con unulteriore
polarizzazione. A causa dellaumento del valore di un singolo bitcoin e del numero di utenti, si
abbassato il numero di bitcoins posseduti da ciascun utente. Se nel 2012 potevano essere
considerati poveri quegli utenti con meno di 100 BTC, oggi la soglia di povert si
abbassata, portando a considerare poveri gli utenti con meno di 1 BTC55. Questo rafforza
losservazione degli sviluppatori che prevedevano che allaumentare del valore di un bitcoin
gli utenti si sarebbero adattati utilizzando frazioni inferiori di bitcoins. Osserviamo per come
allepoca della prima analisi non ci fosse ancora stata lesplosone di popolarit dei servizi di
scommesse (vedi ad esempio la sezione 6.2). Questi servizi lavorano con importi molto piccoli
e possono addirittura creare transazioni contenenti un solo satoshi (come nel caso del premio
di consolazione del servizio di scommesse Satoshi Dice). Questa enorme mole di micro

55 Osserviamo come in uneconomia deflazionista come bitcoin la sogli di povert si abbassa col passare del

tempo, a differenza di uneconomia dominata dallinflazione in cui si alza. Osserviamo inoltre come 100 BTC
valessero nel 2012 circa 500 USD, mentre alla data della nostra analisi 1 BTC valesse circa 800 USD.
164

pagamenti ha contribuito alla creazione di utenti con saldi molto piccoli (ad esempio di pochi
satoshi per i giocatori sfortunati) influendo sullabbassamento medio del saldo dei singoli
utenti.

Per analizzare meglio la distribuzione della ricchezza nelleconomia bitcoin


confrontiamola con la distribuzione della ricchezza tra privati negli Stati Uniti dAmerica.

Percentile Saldi Saldi Ricchezza 100


della positivi positivi privata
popolazione (1) maggiori Stati Uniti 90

di 5429 dAmerica
satoshi 2010 (3) 80
(2)
0-50 % 0,002 % 0,016 % 1,1 % 70
50-90 % 1,10 % 1,95 % 24,3 %
90-99 % 25,16 % 26,92 % 40,0 % 60
99-100%
99-100 % 73,74 % 71,11 % 34,5 %

50 90-99%
Numero di 2.072.656 1.511.751 NA 40 50-90%
Utenti 0-50 %
utenti: 30
Figura 6.10 Tabella e grafico rappresentante la
20
percentuale di ricchezza posseduta dal percentile
10
della popolazione indicata. (1) distribuzione sui saldi
0
correnti positivi; (2) distribuzione sui saldi correnti 1 2 3
maggiori o uguali a 5430 satoshi; (3) distribuzione
tra privati negli USA nel 2010 (fonte [57])

Possiamo vedere in Figura 6.10 che leconomia bitcoin in realt pi iniqua


delleconomia reale con un accentramento ancora maggiore della ricchezza nelle mani dei pi
ricchi (l1% della popolazione possiede circa il 74% della ricchezza). La seconda colonna
rappresenta la popolazione di bitcoin con saldo non nullo filtrando la polvere. Come
abbiamo visto nella sezione 4.4.3 ,per polvere si intendono somme di pochi satoshi che non
danno nessun beneficio economico al proprietario occupando comunque spazio sulla catena,
aumentandone quindi le dimensioni a danno della comunit. Accettando la definizione di
165

polvere data dagli sviluppatori come qualsiasi somma inferiore a 5430 satoshi, abbiamo
escluso gli utenti con saldi inferiori. La prima osservazione da fare che gli utenti contenenti
solo polvere sono circa un quarto degli utenti con saldo positivo (27% circa), portando il
numero di utenti con saldi spendibili (cio non nulli e maggiori o uguali a 5430 satoshi) al
20,16% del numero totale di utenti. La seconda osservazione che la distribuzione della
ricchezza non cambia significativamente, dimostrando come la polarizzazione non sia dovuta
alla polvere ma sia intrinseca nelleconomia.

La figura Figura 6.9 mostra unistantanea della situazione attuale della comunit, ma
potrebbe essere pi utile unanalisi storica considerando per ogni utente, invece del saldo
corrente, il saldo massimo che abbia mai posseduto quellutente durante tutta la sua storia. I
risultati sono mostrati in figura Figura 6.11.

Saldo Massimo (BTC) Numero di Utenti Percentuale


< 0,01 1164120 15,5 %
< 0,1 842343 11,2%
< 1 1216717 16,2 %
< 10 1986451 26,5 %
< 100 1801679 24,0 %
<1.000 421476 5,6 %
<10.000 55089 0,7 %
<100.000 9720 0,1 %
>= 100.000 103 0,001 %

Figura 6.11 - Tabella con numero e percentuale di utenti diviso per saldo massimo posseduto (in
BTC).
Numero di Transazioni Numero
Numero di Indirizzi Numero di Utenti
di Utenti = 0 1699954
= 1 4692429 = 1 558310
= 2 1603833 = 2 2788219
Tra 3 e 5 compresi 797392 Tra 3 e 5 compresi 1469385
Tra 6 e 10 compresi 237679 Tra 6 e 10 compresi 508722
Tra 11 e 100 compresi 158969 Tra 11 e 100 compresi 430390
Tra 101 e 1.000 compresi 6468 Tra 101 e 1.000 compresi 38994
Tra 1.001 e 10.000 compresi 862 Tra 1.001 e 10.000 compresi 3436
Tra 10.001 e 100.000 compresi 65 Tra 10.001 e 100.000 compresi 264
Maggiore di 100.000 1 Maggiore di 100.000 24

Figura 6.12 - Tabelle con numero di utenti diviso per numero di indirizzi posseduti e per
166

numero di transazioni in uscita effettuate.

Se analizziamo il numero di indirizzi per ogni utente otteniamo la tabella in Figura 6.12 a
sinistra. Se confrontiamo questa tabella con la Figura 6.1 notiamo una chiara analogia. Il 95%
degli utenti utilizza infatti meno di cinque indirizzi. Questo dato deve essere mitigato dalla
considerazione che la maggior parte degli utenti incorrono in un numero molto basso di
transazioni in uscita (basti confrontare le prime righe delle due tabelle in Figura 6.12).
Rispetto alla Figura 6.1 notiamo invece un netto miglioramento nel numero di utenti con un
numero di indirizzi elevato, pi di 7.000 utenti hanno pi di cento indirizzi (numero di utenti
aumentato di dieci volte rispetto alla Figura 6.1). Questo valore potrebbe significare un
aumento di attenzione nella privacy per gli utenti da pi tempo attivi nelleconomia o con
flussi di transazioni maggiori. Un uguale analogia pu essere notata tra il numero di
transazioni per utente e la Figura 6.3.

Eseguiamo adesso una serie di analisi temporali sul grafo degli utenti. Per prima cosa
cerchiamo di capire se sia vantaggiosa la permanenza nel sistema. Per fare questo tracciamo
un grafico del valore corrente posseduti dagli utenti in funzione della durata della loro
permanenza nelleconomia. Per ogni utente consideriamo quindi il numero di settimane (per
difetto) che intercorrono tra le date della sua ultima e prima transazione. Sommiamo poi tutti
i saldi correnti degli utenti con lo stesso numero di settimane ottenendo la figura Figura 6.13.

1E+09
10000000
10000000
1000000
100000
10000
1000
100
10
1
0.1
0.01
0.001
-2
4
10

22

34
40

52

64
70

82

94
100

112

124
130

142

154
160

172

184
190

202
106

118

136

148

166

178

196
16

28

46

58

76

88


167

Figura 6.13 - Grafico rappresentante il saldo corrente in funzione del periodo dattivit. Sulle
ascisse indicato il numero di settimane per difetto che intercorre tra le date della prima e
dellultima transazione di un utente. Sulle ordinate rappresentata la somma (misurata in
centesimi di bitcoin, cio come multipli di 0,01 BTC) dei saldi correnti di tutti gli utenti che sono
rimasti attivi per lo stesso numero di settimane, in scala logaritmica.

Dal grafico si osserva come la maggioranza dei bitcoins siano mantenuti in utenti con una
permanenza di zero settimane. Questi utenti sono gli utenti utilizzati come depositi o utenti
che non hanno ancora avuto il tempo di spendere i propri bitcoins di cui abbiamo parlato in
precedenza. Il grafico mostra poi una lenta decrescita (si ricordi che la scala delle ordinate
logaritmica) del saldo corrente posseduto in funzione della durata della vita dellutente.
Saremmo quindi portati a concludere che la permanenza nelleconomia non sia un fattore di
vantaggio per i guadagni. Questo non per corretto. Se infatti consideriamo anche il numero
di utenti in funzione del numero di settimane di attivit (Figura 6.14), notiamo come il
numero di utenti in un dato periodo decresce pi rapidamente del saldo.

10000000
1000000
100000
10000
1000
100
10
1
1
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
103
109
115
121
127
133
139
145
151
157
163
169
175
181
187
193
199


Figura 6.14 - Grafico rappresentante il numero di utenti in funzione del periodo dattivit. Sulle
ascisse indicato il numero di settimane per difetto che intercorre tra le date della prima e
dellultima transazione di un utente. Le ordinate rappresentano il numero di utenti che sono
rimasti attivi per lo stesso numero di settimane in scala logaritmica.


Possiamo quindi riassumere i due grafici in un ultimo grafico che mostri il saldo corrente
medio in funzione del numero di settimane di attivit.


168

1000000

100000

10000

1000

100

10

0.1
1

15
22
29

43
50
57
64
71

85
92
99

113
120
127
134
141

155
162
169

183
190
197
8

36

78

106

148

176

Figura 6.15 - Grafico rappresentante il saldo corrente medio in funzione del periodo di attivit.
Sulle ascisse indicato il numero di settimane per difetto che intercorre tra le date della prima e
dellultima transazione di un utente. Sulle ordinate rappresentato il rapporto tra la somma
(misurata in centesimi di bitcoin, cio come multipli di 0,01 BTC) dei saldi correnti ed il numero
di tutti gli utenti che sono rimasti attivi per quello stesso numero di settimane in scala
logaritmica.

Osservando il grafico possiamo invertire la precedente conclusione, notando come il saldo


corrente medio degli utenti cresca lentamente (in scala logaritmica) allaumentare del
periodo. In particolare possiamo notare come gli utenti pi avvantaggiati siano i pochi utenti
attivi da pi di 150 settimane (per cui la data della prima transazione deve essere almeno
passata da circa tre anni). Questo conferma i sospetti che gli utenti iniziali si siano arricchiti in
proporzione molto pi degli utenti successivi. In particolare nel grafico in figura Figura 6.15
possiamo notare come uno dei picchi vecchi di almeno 150 settimane sia attribuibile al
servizio di cambi Mt.Gox che ha iniziato ad operare circa tre anni fa e da allora non ha pi
smesso (fino alla bancarotta successiva alla data di chiusura della nostra analisi).

Un altro modo per considerare la distribuzione dei saldi correnti degli utenti in
funzione del tempo consiste nellanalizzare le date di creazione di ogni utente. Per data di
creazione di un utente consideriamo la data della prima transazione a suo favore. Questo
equivalente a considerare come data di creazione di un utente la prima apparizione nella
catena del pi vecchio indirizzo posseduto dallutente.


169

40000000

35000000

30000000

25000000

20000000

15000000

10000000

5000000

0
Jan 03 2009

Sep 08 2012
Feb 28 2009

Jun 20 2009

Jan 30 2010

Sep 11 2010

Jan 01 2011

Jul 14 2012
Apr 25 2009

Nov 03 2012

Jun 15 2013
Aug 15 2009

Dec 05 2009

Jul 17 2010

Nov 06 2010

Feb 26 2011

Jun 18 2011

Jan 28 2012
Apr 23 2011

Aug 13 2011

Dec 03 2011

Dec 29 2012
Feb 23 2013
Apr 20 2013

Nov 30 2013
Jan 25 2014
Aug 10 2013
Oct 10 2009

Mar 27 2010
May 22 2010

Oct 08 2011

Mar 24 2012
May 19 2012

Oct 05 2013

Figura 6.16 - Grafico rappresentante il saldo corrente in funzione della data di creazione. Sulle
ascisse rappresentato il tempo (raggruppato per settimane) e sulle ordinate rappresentato il
saldo corrente (misurato in centesimi di bitcoin, cio come multipli di 0,01 BTC) degli utenti
(raggruppati in somme per settimana).

Analizzando il grafico ottenuto possiamo vedere come molti utenti con data di
creazione molto vecchia possiedano ancora oggi un saldo corrente notevole, ma gli utenti pi
ricchi sono stati creati durante le due bolle di prezzo dellestate del 2011 e di aprile e
novembre 2013.

Invece della data di creazione consideriamo adesso per ogni utente la data dellultima
transazione (in uscita) effettuata dallutente. Abbiamo per gi osservato come molti utenti
non abbiano transazioni e quindi non possiedono una data di ultima transazione.
Continuiamo quindi a considerare, solo per questi utenti, la semplice data di creazione.
Costruiamo il grafico dei saldi correnti degli utenti in funzione della data della loro ultima
transazione (se presente), ottenendo la figura Figura 6.17.


170

40000000
35000000
30000000
25000000
20000000
15000000
10000000
5000000
0
Sep 12 2009

Sep 25 2010
Jan 03 2009

Jul 11 2009

Nov 14 2009
Jan 16 2010

Jul 24 2010

Nov 27 2010
Jan 29 2011
Apr 02 2011
Jun 04 2011
Aug 06 2011

Dec 10 2011
Feb 11 2012
Apr 14 2012
Jun 16 2012
Aug 18 2012

Dec 22 2012
Feb 23 2013
Apr 27 2013
Jun 29 2013
Aug 31 2013
Nov 02 2013
Jan 04 2014
Mar 07 2009
May 09 2009

Mar 20 2010
May 22 2010

Oct 08 2011

Oct 20 2012

Figura 6.17 - Grafico rappresentante il saldo corrente in funzione della data dellultima
transazione effettuata. Sulle ascisse rappresentato il tempo (raggruppato per settimane) e
sulle ordinate rappresentata il saldo corrente (misurato in centesimi di bitcoin, cio come
multipli di 0,01 BTC) degli utenti (raggruppati in somme per settimana). Per gli utenti senza
transazioni (in uscita) consideriamo la data di creazione invece della data dellultima
transazione effettuata (che non esiste).

Possiamo facilmente vedere la stessa tendenza del precedente grafico (Figura 6.16), ma con
un marcato spostamento dei fondi verso date pi recenti. Dal grafico possiamo vedere anche
come unalta percentuale dei fondi appartenga ad utenti attivi (o creati) negli ultimi sei mesi.
Dal grafico si distinguono distintamente le tre bolle (2011 e aprile e novembre 2013). Poich
il grafico rappresenta il saldo attuale in funzione della data dellultima transazione effettuata
allora i picchi (del 2011 e aprile 2013) rappresentano fondi che non si sono pi mossi dal
tempo della bolla. Possiamo quindi ipotizzare che questi fondi rappresentino i capitali
speculativi immessi nelleconomia ai tempi della bolle.

Andiamo adesso a cercare di valutare la quantit di bitcoins persi o messi da parte. Per
fare questo consideriamo la data di cessazione di attivit di ogni utente. Consideriamo come
data di cessazione di attivit di un utente la data dellultima transazione effettuata dallutente
oppure la data di creazione per quegli utenti che non hanno effettuato nessuna transazione
(in uscita). Il grafico risultante mostrato in figura.
171

14000000
12000000
10000000
8000000
6000000
4000000
2000000
0
Jan 03 2009

Sep 08 2012
Feb 28 2009

Jun 20 2009

Jan 30 2010

Sep 11 2010

Jul 14 2012
Apr 25 2009

Nov 03 2012

Jun 15 2013
Aug 15 2009

Dec 05 2009

Jul 17 2010

Nov 06 2010
Jan 01 2011
Feb 26 2011

Jun 18 2011

Jan 28 2012
Apr 23 2011

Aug 13 2011

Dec 03 2011

Dec 29 2012
Feb 23 2013
Apr 20 2013

Nov 30 2013
Jan 25 2014
Aug 10 2013
Oct 10 2009

Mar 27 2010
May 22 2010

Oct 08 2011

Mar 24 2012
May 19 2012

Oct 05 2013

Figura 6.18 - Grafico rappresentante il saldo corrente cumulativo in funzione della data
dellultima transazione effettuata. Sulle ascisse rappresentato il tempo (raggruppato per
settimane) e sulle ordinate rappresentata la somma dei saldi correnti (in BTC) degli utenti con
data dellultima transazione inferiore alla data considerata. Per gli utenti senza transazioni (in
uscita) consideriamo la data di creazione invece della data dellultima transazione effettuata
(che non esiste).

Per stimare il numero di bitcoins persi dobbiamo decidere una data oltre la quale gli utenti
sono considerati perduti. Ricordiamo che comunque non esiste in bitcoin nessuna differenza
tra una somma perduta (cio irrecuperabile a causa della perdita della chiave privata
dellindirizzo che la contiene) e dormiente (cio non utilizzata da lungo tempo dal
proprietario ma da lui utilizzabile in qualsiasi momento). Abbiamo numerose date possibili da
scegliere come soglia, ma la data pi conservativa certamente luglio 2011, poich la data di
inizio attivit del primo servizio di cambi Mt.Gox. Immaginiamo che qualsiasi utente che non
volesse tenere i suoi bitcoins li avrebbe venduti presso lo scambio od utilizzati in seguito.
Quindi se i bitcoins si sono mossi per lultima volta prima della nascita del servizio li
considereremo persi. Questa stima includerebbe quasi certamente anche i bitcoins di Satoshi
Nakamoto, che sarebbero quindi etichettati come persi. Questo in principio non sbagliato se
immaginiamo che Satoshi continui a non utilizzarli per preservare il proprio anonimato (e
172

quindi non partecipano alleconomia esattamente come quelli persi). Considerando quindi la
soglia del primo luglio 2010 otterremmo 1.520.094,55 BTC persi (cio pi del 12% del totale
di bitcoin disponibili alla data dellanalisi). Chiaramente allaumentare della data soglia
aumentiamo il numero di falsi positivi (cio considerare come persi bitcoins in realt solo
dormienti), aumentando il numero di bitcoins perse quasi linearmente (come si vede dal
grafico). Possiamo quindi utilizzare la Figura 6.18 come strumento per stimare il numero di
bitcoins persi al variare della data soglia. Se ad esempio considerassimo la data
dellesplosione della prima bolla come soglia (quindi consideriamo come perduti tutti gli
utenti inattivi dopo lotto luglio 2011) otterremmo 2.979.084,73 BTC perdute (cio una
bitcoin su quattro risulterebbe oggi perduto).

Come abbiamo ricordato, non posiamo sapere se questi bitcoin inattivi siano davvero
stati perduti o siano semplicemente stati messi da parte in attesa di un utilizzo futuro. Ci che
sappiamo per che questi bitcoins sono mantenuti inattivi da molto tempo e quindi sottratti
alleconomia. Questo diminuisce la liquidit nel sistema, rendendo i bitcoins attivi ancora pi
scarsi e quindi danneggiando leconomia reale a favore della speculazione.


Capitolo 7 Prospettive Future

In questo capitolo analizzeremo le prospettive di sviluppo futuro di bitcoin56. In


particolare analizzeremo leconomia bitcoin evidenziando le tendenze attuali per prevederne
lo sviluppo nel breve futuro. Nella prima sezione studieremo le cause dellandamento del
tasso di cambio, ricavando le principali motivazioni degli utenti per lingresso nelleconomia.
Analizzeremo il problema della volatilit del cambio che agisce da deterrente per il futuro
utilizzo di bitcoin come strumento di pagamento globale, analizzandone le cause ed effetti e
mostrando le soluzioni necessarie da adottare. Ci occuperemo quindi dellanalisi degli aspetti
positivi e negativi della scelta deflazionista del protocollo. Infine analizzeremo la
capitalizzazione odierna studiandone i possibili sviluppi futuri. Nella seconda sezione ci
occuperemo della scalabilit del protocollo. Mostreremo quindi le modifiche necessarie al
protocollo per un suo diffuso utilizzo mondiale. Nella terza e quarta sezione ci occuperemo dei
due problemi collegati del costo futuro del mining e delle commissioni. Dimostreremo quindi
la sostenibilit del mining grazie alle sole commissioni volontarie degli utenti. Dimostreremo
anche come il futuro di bitcoin non sia minacciato da un aumento del costo delle commissioni
per gli utenti, ma piuttosto aiutato da una sua possibile diminuzione. Nella quinta sezione
analizzeremo il problema delle normative vigenti. Questo argomento molto sentito dalle
compagnie attive nelleconomia bitcoin, tanto da essere addirittura ritenuto pi importante
della sicurezza. Concluderemo il capitolo con una proposta dellautore per aiutare la futura
crescita di bitcoin. La modifica proposta semplice da realizzare, ma comporta una profonda
modifica dellidea deflazionista alla base di bitcoin. Questa proposta serve a mostrare i
problemi che potrebbero essere risolti modificando lattuale gestione del numero di bitcoins
prodotti. La modifica forse troppo semplice ma permette di puntualizzare gli effetti positivi
che abbiamo scoperto durante il capitolo necessari per il successo di bitcoin.

7.1 Economia


56 bene ricordare durante la lettura del capitolo la differenza tra Bitcoin (regole del protocollo) e bitcoin

(fenomeno culturale ed utilizzo sociale del protocollo).


174

7.1.1 Tasso di cambio

Analizziamo adesso il grafico del tasso di cambio tra USD e BTC per cercare di
comprendere le improvvise salite o discese del valore.

Figura 7.1 Grafo in scala logaritmica del tasso di cambio tra BTC e USD

La storia di Bitcoin ha visto lesplosione di almeno tre bolle speculative. Una bolla
nasce quando la domanda di un bene supera lofferta. Il numero di bitcoins disponibili per
lacquisto limitato e quindi un aumento della domanda provoca un aumento dei prezzi. Ma
pi che i prezzi aumentano e pi che gli utenti sono incentivati a tenersi i propri bitcoins
piuttosto che venderli. Questo diminuisce ulteriormente la quantit di bitcoin in circolazione
aumentandone ancora il prezzo. La crescita del prezzo sale fino a che non cala la domanda,
per un calo di interesse o perch il prezzo diventa troppo alto. A questo punto il prezzo inizia
a scendere. Gli utenti che avevano trattenuto i propri bitcoins per venderli quando il prezzo
sarebbe salito iniziano a venderli tutti insieme per ottenere il profitto maggiore prima che il
prezzo scenda ancora. Questo non fa altro che innescare una caduta precipitosa dei prezzi, pi
i prezzi scendono e pi utenti cercheranno di vendere i loro bitcoins prima che il prezzo
scenda ulteriormente. In questo caso si dice che la bolla scoppiata. Dopo che il prezzo
sceso abbastanza gli utenti esterni vedono conveniente investire in bitcoins e quindi iniziano
a comprarli, arrestando il crollo dei prezzi e portando ad una nuova risalita. Il prezzo pu a
questo punto stabilizzarsi su un valore stabile (che rappresenta il giusto equilibrio tra
domanda e offerta) o pu ricominciare a salire iniziando una nuova bolla.

Durante il 2012 il prezzo dei bitcoins era salito stabilmente portando il 2013 ad
iniziare con un bitcoin del valore di circa quindici dollari. Il prezzo inizi per a salire
175

rapidamente fino ad arrivare a valere 50 $ nella met di marzo. Lundici ed il diciotto marzo si
verificarono per due eventi importanti (vedi sezione 1.3.3). Il primo evento fu la biforcazione
della catena. La sua rapida soluzione scongiur il peggio e, dopo il panico momentaneo, il
valore ritorn sui 50$ in poche ore. Una settimana dopo il FinCEN rilasci il suo comunicato. Il
comunicato imponeva nuovi obblighi per i siti di cambio ed alcuni miner e quindi si potrebbe
pensare che le nuove regole avrebbero portato ad una diminuzione di valore ma invece
ottenne leffetto contrario. Per anni gli utenti normali (cio non tecnicamente esperti o
libertari convinti) avevano diffidato di Bitcoin temendo di commettere azioni illegali
partecipando alla sua economia. Leffetto della regolamentazione del FinCEN dissolse il velo di
illegalit e mistero che circondava la valuta, permettendo lingresso di nuovi investitori e
semplici utenti. Il prezzo inizi quindi a salire vertiginosamente fino allundici aprile quando
raggiunse la vetta dei 266$ per bitcoin. A questo punto il prezzo era sufficientemente alto da
non incoraggiare nuovi investitori a comprare e da spingere i proprietari di bitcoins a
venderli per incassare il guadagno. La bolla cos esplose riportando il valore poco sotto i cento
dollari. Il prezzo ebbe grandi sussulti continuando a salire e scendere nellincertezza per tutta
lestate del 2013. In autunno ci fu un nuovo crollo a seguito della chiusura di Silk Road il due
ottobre. Il prezzo per inizi a salire gi da met del mese fino ad arrivare al nuovo record
assoluto, finora imbattuto, di 1250$ per bitcoin alla fine di novembre. La bolla esplose
riportando il prezzo sui 600$ per poi continuare a salire e scendere oscillando tra cinquecento
e mille dollari fino a gennaio 2014, quando si stabilizz sugli 800$ per tutto il mese. Lundici
febbraio la rete fu paralizzata da un massiccio attacco DDoS (vedi sezione 1.3.3) che port alla
chiusura temporanea di molti siti di cambio, portando il tasso di cambio ad una rapida
discesa. Il valore continu lentamente a scendere fino al colpo di grazia ricevuto alla fine del
mese. Il 28 febbraio 2014 Mt.Gox dichiar bancarotta in Giappone portando ad un immediato
crollo del prezzo. Il valore risal per improvvisamente allinizio di marzo fino a quasi 700$
per poi scendere durante il mese fino a 500$ per bitcoin.

Cerchiamo quindi di capire come si creino le bolle di bitcoin e chi siano gli investitori
che immettono capitali nella sua economia. Analizziamo adesso le cause della bolla di aprile
2013. Abbiamo gi mostrato alcune motivazioni della crescita esponenziale del prezzo iniziata
a marzo, ma adottiamo ora uno sguardo pi ampio. Il sedici marzo la Commissione Europea, la
BCE e il Fondo Monetario Internazionale offrirono a Cipro dieci miliardi di euro per salvarsi
dalla bancarotta a condizione che eseguisse un prelievo forzoso sui depositi bancari nazionali.
Fu stabilito un prelievo del 6,7% sui depositi fino a centomila euro e del 9,9% su depositi
176

maggiori. La notizia fu uno shock per tutti i cittadini europei dei paesi considerati a rischio a
causa del debito elevato. Anche in Italia si sprecarono i commenti sulleccezionalit della
misura e sulla possibilit che fosse applicata anche nel bel paese. A Cipro nel frattempo si
scaten il panico con i bancomat e le banche chiuse ed i cittadini impossibilitati a prelievi per
pagare la benzina o gli alimenti. La faccenda si risolse tre giorni dopo quando il parlamento
cipriota rigett la proposta del governo ed il venticinque marzo fu raggiunto un nuovo
accordo senza prelievi forzosi. Non solo a Cipro ma anche in Spagna, Grecia e Italia i cittadini
si erano improvvisamente resi conto che i propri risparmi erano a rischio, come fare per
proteggerli? Unimprovvisa crescita nel numero di download di applicazioni per iPhone
dedicate a Bitcoin, pare suggerire che i bitcoins fossero ritenuti un nuovo bene rifugio dagli
europei preoccupati.

Figura 7.2 Tabella del ranking di download per nazione dellapp finanziaria per iPhone
BitCoin Gold , fonte [50]

Il cresciuto interesse in bitcoin dei cittadini europei, soprattutto spagnoli, a seguito


della crisi di Cipro spiega anche laumento consistente di euro nelleconomia bitcoin. Fino
allinizio del 2013 infatti la quasi totalit degli scambi avveniva in dollari. Alla fine del 2013
invece nuove valute come leuro o lo yuan cinese si erano ritagliate un importante ruolo sulla
scena dei cambi. Oggi la situazione si ridimensionata ed i cambi di BTC con il dollaro
ricoprono l82% del totale, con lo yuan il 10% e con leuro solo il 4% (fonte [115]). Come la
bolla di aprile si pu ritenere causata dagli investitori europei, cos la bolla di novembre fu
aiutata dallingresso di capitali cinesi. La Cina continua infatti ad attuare una politica
monetaria di svalutazione dello Yuan per favorire le esportazioni. Questa svalutazione per
penalizza i capitali nelleconomia interna del paese. Da sempre i cinesi avevano cercato una
valuta alternativa per preservare il valore dei propri capitali e trovarono in bitcon la valuta
ideale. Grazie al suo andamento deflazionista la valuta si prestava perfettamente come rifugio
di valore in opposizione allo Yuan deprezzato. Lespansione delleconomia bitcoin in Cina fu
talmente diffuso da portare, proprio a novembre, il sito di scambi cinese BTC China a
177

diventare il primo sito di cambi mondiale per volume delle transazioni. La grande diffusione
di bitcoin in Cina non sfugg per alle autorit cinesi che proibirono lutilizzo di bitcoins in
banche ed istituzioni finanziarie il tre di dicembre, proprio allapice della bolla speculativa.
Questo aiut certamente lesplosione della bolla.

Abbiamo pi volte ricordato come bitcoin sia molto suscettibile alla popolarit che
riscuote. Questo concetto ben espresso dalla Figura 7.3 in cui confrontiamo la popolarit di
bitcoin su google con il numero di download del client ufficiale e con il tasso di cambio con il
dollaro statunitense57.

Cambio in USD Google trend Numero di download Client Bitcoin-QT


100

80

60

40

20

0
14-12-05

18-1-07

28-4-07

6-8-07

14-11-07

28-3-09

6-7-09

14-10-09

22-1-10

2-5-10

10-8-10
10-10-06

18-12-08
2-7-06

1-6-08

9-9-08
24-3-06

22-2-08

Figura 7.3 grafico del valore fornito da Google Trend per il termine bitcoin e del numero
normalizzato di download del client ufficiale, messi a confronto con il tasso di cambio in USD
normalizzato (rispetto al tasso di cambio lasse delle ordinate rappresenta decine di bitcoins cio
multipli di 10 BTC)

Dal grafico si pu vedere come ci sia unimpennata del numero di ricerche contenenti il
termine bitcoin in precedenza (e concomitanza) delle grandi bolle di prezzo. Stesso
andamento si riscontra nel numero di download del client ufficiale Bitcoin. Questo dimostra

57 Lidea del confronto tratta da [56].
178

quanto leconomia bitcoin sia suscettibile alla popolarit momentanea. E prova anche come
lentit delleconomia reale sottostante sia molto debole rispetto alla speculazione ed
allingresso improvviso di nuovi capitali.

7.1.2 Volatilit

Lincredibile volatilit della valuta uno dei principali difetti evidenziati dai suoi
detrattori. Per dare unidea possiamo paragonarla alle valute tradizionali: la volatilit media
(negli ultimi tre anni) di bitcoin stata pari al 120%, con picchi che sono arrivati fino al 400%.
Le valute tradizionali dei paesi sviluppati hanno avuto invece in media (negli ultimi tre anni)
una volatilit media dell8% (con picchi del 16 %), mentre una valuta dei paesi in via di
sviluppo ha una volatilit media pari al 9% (con massimi del 20%). Per trovare una valuta con
la stessa volatilit di bitcoin dobbiamo guardare alla bancarotta dellArgentina del 2002,
durante cui il peso argentino raggiunse per alcune settimane il 120% di volatilit58. La
volatilit per un valuta un problema. Una moneta deve infatti possedere le propriet di
servire come mezzo di scambi, unit di valore e deposito di valore. Ma se il prezzo troppo
volatile allora la moneta non un affidabile deposito di valore. Infatti un abbassamento del
50% del valore in uno o due giorni porterebbe ogni utente a perdere la met del valore del
proprio patrimonio. anche difficile utilizzare una valuta instabile come mezzo di scambi.
Infatti i commercianti devono costantemente aggiustare i prezzi in base allultimo cambio.
Inoltre se non scambiano subito i bitcoins ricevuti in pagamento per valuta tradizionale allora
potrebbero poi trovarsi con un valore molto diverso, al momento del cambio, dal prezzo
pagato, trasformando il commerciante in uno speculatore involontario (con effettivi guadagni
o perdite). In altre parole possiamo dire che non possibile prevedere un potere dacquisto
ragionevole per la moneta quindi non pu essere efficientemente utilizzata per gli scambi.
Lalta volatilit si trasforma in termini economici in un costo aggiuntivo delluso della valuta.
Se pensiamo a bitcoin come mezzo di scambi, sembrerebbe vantaggioso grazie ai costi delle
commissioni molto minori delle alternative (vedi sezione 7.4). In realt per dobbiamo
aggiungere i costi dei rischi propri di bitcoin, come lelevata volatilit, lostilit dei governi,
eventuali nuove tasse imposte sulle transazioni ed il costo di rischio associato alluso dei siti


58 Fonte [44].
179

di cambio. Infatti per la maggior parte degli utenti troppo costoso diventare un miner,
quindi lunica soluzione per ottenere bitcoins (e quindi poterli spendere) di acquistarli, in
cambio di beni o servizi se si un commerciante, o presso un servizio di cambio altrimenti.
Acquistare bitcoins in questo modo comporta per un rischio, infatti lutente deve fidarsi del
servizio senza nessuna garanzia. Un servizio di cambi non protetto e regolamentato come le
banche tradizionali, quindi il rischio maggiore, come dimostrano i numerosi furti o
fallimenti di servizi storici (vedi sezione 1.3). In [15] gli autori dimostrano come il volume di
scambi giornaliero di un servizio di cambio sia positivamente correlato sia alla durata di vita
del servizio, che alla probabilit di un attacco. Quindi un utente dovrebbe scegliere di
utilizzare uno scambio popolare per avere pi stabilit, aumentando per la probabilit di un
furto (come ragionevole aspettarsi, poich i ladri avranno guadagni maggiori nel derubare
servizi con capitali maggiori).

Lalta volatilit del tasso di cambio causata principalmente dagli investimenti


speculativi fatti dagli utenti. Il problema principale delleconomia bitcoin che il mercato
degli scambi veri di beni in cambio di valuta decisamente minoritario rispetto agli
investimenti speculativi (si veda ad esempio lanalisi nella sezione 6.2). La maggioranza delle
monete sono utilizzate come bene rifugio piuttosto che lasciate circolare nelleconomia reale.
Questo problema evidenziato nella teoria della spirale deflazionista, che alcuni economisti
ritengono condanner bitcoin.

7.1.3 Deflazione

Bitcoin progettato per seguire un andamento deflazionistico del proprio valore. La


quantit di moneta infatti fissata e decrescente nel tempo, ed un bene limitato con domanda
in crescita produce un aumento del prezzo59. Satoshi Nakamoto progett cos la moneta per
evitare gli effetti deleteri dellinflazione. Bitcoin nato allinizio della crisi finanziaria globale
ed in quel periodo la fiducia nelle istituzioni finanziarie era ai minimi storici. I libertari della
rete ritenevano che i governi stampassero nuova moneta per i propri fini senza curarsi della
tassa indiretta rappresentata dallinflazione, che erode i capitali dei cittadini, pensando solo al
proprio debito e alle banche (vedi sezione 1.2). La moneta libera doveva quindi seguire una
traiettoria opposta, difendendo il valore dei capitali. Il problema della deflazione controllata


59 Lunione di scarsit ed utilit genera aumento dei prezzi.
180

per un eccesso di deflazione. In uneconomia inflazionista gli utenti sono incentivati a


spendere poich sanno che in futuro la moneta avr meno valore di adesso. In uneconomia
deflazionista avviene il contrario e quindi gli utenti sono incentivati a mantenere intatti i
propri capitali. La creazione di nuovi bitcoins avviene pi lentamente della crescita
delleconomia reale, quindi sempre pi utenti competono per un numero fissato di monete.
Questo porta il prezzo della moneta a crescere, cosicch gli utenti che possiedono gi monete
non sono incentivati a venderle, ma
piuttosto attendono che il prezzo
aumenti ancora. La disponibilit di
moneta quindi continua a
diminuire a fronte di una crescita
della domanda, portando il prezzo
a salire ulteriormente. Il valore dei
bitcoins sale portando allaumento
della capitalizzazione del suo
mercato, ma leconomia reale, cio
gli scambi e i pagamenti tra gli
utenti, ne risentono. Infatti gli
utenti sono incentivati a non
spendere i propri bitcoins perch il
loro valore aumenter. Questo
porta alla morte degli scambi
concreti e al fallimento dellidea
iniziale che voleva bitcoin come
moneta globale. Bitcoin seguir
piuttosto lo stesso destino delloro,
i bitcoins saranno mantenuti dai
propri utenti in portafogli
cassaforte ed utilizzati come bene
rifugio, piuttosto che per scambi
commerciali.

Figura 7.4 Valore alla fine del 2013, di cento dollari investiti ad inizio anno, fonte [103]
181

Di fatto non pu essere negato che il successo di bitcoin sia in larga parte guidato dalla
speculazione. Forbes ha pubblicato un articolo [103] per comparare i migliori investimenti del
2013, e bitcoin si conferma come il migliore, con un guadagno 62,5 volte maggiore di un
investimento nelloro o 33 volte superiore di un investimento in azioni di Google, con un
profitto dellinvestimento del 5.000% .

7.1.4 Capitalizzazione

Bitcoin diventato talmente popolare da portare la grande banca statunitense Merrill


Lynch a compilare un rapporto sulla valuta nel dicembre del 2013. In questo rapporto [43]
analizzato lutilizzo di bitcoin come mezzo di scambi, confrontandolo con le attuali forme di
commercio e pagamento elettronico, e come deposito di valore, paragonandolo alloro. Gli
autori individuano per bitcoin una capitalizzazione massima di quattro miliardi e mezzo di
dollari come mezzo di pagamento, cinque miliardi per il suo utilizzo nel commercio
elettronico e cinque miliardi come deposito di valore, questo d un limite massimo di circa
quindici miliardi di dollari come capitalizzazione prevista di bitcoin, portando il valore
previsto nel breve futuro a 1.300 USD per 1 BTC . Btcoin aveva effettivamente raggiunto valori
simili nel novembre del 2013, ma ora il suo valore si ridimensionato portandolo ad un
cambio odierno60 di circa 500 USD per 1 BTC ed una capitalizzazione totale di circa sei
miliardi di dollari. Una capitalizzazione di sei o quindici miliardi di dollari comunque
piccolissima se paragonata alle valute forti tradizionali. Se consideriamo solo le monete e
banconote in circolazione, il dollaro raggiunge la capitalizzazione di 1.200 miliardi di dollari,
leuro ha una capitalizzazione di novecentocinquanta miliardi di euro (cio 1.290 miliardi di
dollari al cambio attuale) e la sterlina ha una capitalizzazione di trecentosessanta miliardi di
sterline (cio circa 580 miliardi di dollari al cambio attuale)61. Se bitcoin fosse unazienda
multinazionale la sua capitalizzazione lo collocherebbe nella fascia di media-capitalizzazione
(tra due e dieci miliardi di dollari), ben lontana dai cinquecento miliardi di capitalizzazione
del 2013 di Apple Inc, o dai trecentodieci miliardi di Google sempre nel 2013.

Un altro modo per vedere le potenzialit di bitcoin considerare quali settori potrebbe

60 Dato riferito ad aprile 2014.

61 Fonte [44].
182

dominare nel futuro. Abbiamo a lungo spiegato come il migliore utilizzo di bitcoin sia come
mezzo di scambi (grazie alle bassissime commissioni). Se consideriamo quindi la
capitalizzazione odierna delle maggiori societ che forniscono sistemi di pagamento
elettronico o servizi collegati possiamo vedere quale sia la capitalizzazione della fetta di
mercato che potrebbe essere conquistata da bitcoin. Vedendo la tabella notiamo come la
conquista di bitcoin di un consistente fetta di questo mercato potrebbe portarlo ad una
capitalizzazione molto maggiore di quella odierna (se ad esempio ottenesse il 20% del
mercato avrebbe una capitalizzazione di circa quarantotto miliardi di dollari).

Figura 7.5 Capitalizzazione dei maggiori servizi di pagamento elettronico espressa in miliardi
di dollari USD, fonte [104]

Confrontiamo ora la capitalizzazione di bitcoin con quella delle borse dei paesi del
mondo. Mostriamo quindi nella seguente tabella la lista di alcune borse mondiali, da cui
possiamo vedere come bitcoin sia molto lontano dalle economie pi sviluppate ma resta
indietro anche rispetto ad economie pi deboli, come la Nigeria o la Croazia. Per il semplice
fatto che la capitalizzazione di bitcoin in soli tre anni sia diventata maggiore di quella dei
mercati azionari di alcuni paesi del mondo dimostra le enormi potenzialit di bitcoin e delle
valute digitali in genere.
183

Figura 7.6 Capitalizzazione in USD delle borse di alcuni paesi, si noti come la capitalizzazione
di bitcoin (circa 6.000.000.000 $) superi oggi gi alcuni paesi, fonte [105]
184

7.2 Scalabilit

Bitcoin si propone di diventare la nuova valuta per gli scambi globali. In questa sezione
non cerchiamo di capire se accadr, ma piuttosto se sia teoricamente possibile. Cerchiamo
infatti di dimostrare se la rete sufficientemente scalabile da sostenere un livello di traffico
globale.

Calcoliamo innanzitutto i limiti teorici. Le chiavi private in Bitcoin sono numeri di 256
bit, quindi il numero totale di chiavi possibili 2256. Questo non per anche il numero di
indirizzi possibili, infatti le chiavi pubbliche corrispondenti di 512 bit vengono compresse
dalle hash in un indirizzo di 160 bit. Quindi il numero totale di indirizzi possibili62 pari a
2160. Il numero reale di indirizzi possibili poi ancora minore per la possibilit di collisioni
della funzione hash, per il paradosso del compleanno ci saranno comunque collisioni gi tra
280 indirizzi. Consideriamo quindi 280 come numero possibile di indirizzi distinti ed
ipotizziamo che ogni utente dopo la generazione di un nuovo indirizzo controlli che non sia
gi presente nella catena. Se consideriamo una popolazione futura di dieci miliardi di
individui, allora ogni persona sul pianeta avrebbe a disposizione 280/1010 = 1,21 x 1014
indirizzi diversi. Possiamo quindi concludere che il numero di indirizzi disponibili non sia un
problema (sotto le nostre ipotesi sul numero di collisioni).

Il numero di blocchi possibili dipende dallintestazione del blocco. Lintestazione


lunga solo 81 byte cio 324 bit quindi possono esistere 2324 intestazioni differenti. In realt
non cos poich allintestazione viene poi applicata unhash che restituisce un risultato di
256 bit. Per lo stesso discorso sulle collisioni applicato precedentemente agli indirizzi
stimiamo che possano esistere solo 2128 hash e quindi blocchi diversi. Abbiamo visto nella
sezione 2.3 che il blocco numero 6.930.000 non verr raggiunto prima del 2140, quindi il
numero di blocchi possibili pi che sufficiente. Se consideriamo che ogni anno sono prodotti
52.560 blocchi allora potremmo continuare tranquillamente a produrre blocchi diversi fino a
che il Sole non si spegner portando la notte eterna sulla Terra.


62 Il numero di indirizzi possibili anche il numero di chiavi possibili, poich teoricamente possono esistere
due coppie diverse di chiavi pubblica e privata che hanno lo stesso indirizzo, ma i pagamenti sarebbero
indirizzati allindirizzo unico e quindi le due coppie sarebbero indistinguibili dagli altri utenti.
185

Figura 7.7 Numero di transazioni giornaliere nellultimo mese, fonte [114]

Consideriamo ora il numero di transazioni che il protocollo pu gestire. Per capire


quante transazioni dovrebbe gestire Bitcoin nel caso diventasse il principale mezzo di
pagamento globale, dobbiamo analizzare i metodi di pagamento elettronico utilizzati oggi.
Consideriamo i dati forniti in [106]: VISA gestisce in media 2.400 transazioni al secondo con
un tetto massimo di 10.000 transazioni al secondo sostenibili; PayPal gestisce invece in media
89 transazioni al secondo. Se consideriamo anche le transazioni con altri metodi di
pagamento elettronico o in contanti arriviamo a centinaia di migliaia di transazioni al
secondo. Inoltre per proteggersi da attacchi DDoS il sistema deve essere in grado di sostenere
ritmi maggiori di quelli attesi. Il numero di transazioni medio giornaliero di Bitcoin oggi pari
a 55.28763, quindi avvengono 55.287/(24*60*60)=0,64 transazioni al secondo. Vediamo se la
rete in grado di sostenere ritmi di transazioni ottomila volte superiori.


63 Questo dato calcolato come media di sette giorni di osservazioni dal 21/3/2014 al 28/3/2014, fonte
[106].
186

Figura 7.8 Numero di transazioni giornaliere e loro volume in USD dei principali metodi di
pagamento elettronico, fonte [106]

Ipotizziamo quindi che Bitcoin diventi nel breve futuro il metodo di pagamento pi
diffuso, ponendoci lobbiettivo di gestire 4.000 transazioni al secondo (cio il numero di
transazioni gestito oggi da Visa e Mastercard messe insieme). Ipotizziamo che una transazione
sia in media 0,5 kbyte con due input per transazione64, e ipotizziamo che le dimensioni non
varino nel breve futuro. Le transazioni infatti aumentano di dimensioni soprattutto se
aumenta il numero di input o output medi per ogni transazione, ma non c motivo per cui
questi due valori dovrebbero aumentare allaumentare della popolarit di Bitcoin.
Analizziamo quindi gli effetti di 4.000 transazioni al secondo su CPU, rete e memoria.

Osserviamo per prima che la rete futura di Bitcoin sar diversa dalla rete pensata nel
2009 in cui ogni utente era custode e miner della catena. Oggi gli utenti sono sempre pi
specializzati, cio divisi in tre categorie: utenti pesanti, utenti leggeri e miners. Gli utenti
pesanti sono quegli utenti che possiedono la catena completa ed eseguono le normali regole e
verifiche del protocollo, questi nodi hanno bisogno di hardware accessibili ma potenti (ad
esempio processori quad core e RAM da 8 GB) e connessioni a banda larga. Gli utenti leggeri
sono invece la maggioranza degli utenti che utilizzano Bitcoin come mezzo di pagamento
quotidiano senza conoscere (e spesso senza voler conoscere) il suo funzionamento. Questi
utenti si fidano dellonest della maggioranza dei nodi pesanti ed utilizzano la verifica di
pagamento semplificata (vedi sezione 2.5)e la tecnica di pagamento veloce (vedi sezione


64 Come avviene oggigiorno.
187

4.2.1). Questi nodi leggeri possono essere gestiti da dispositivi con risorse limitate come
computer di fascia economica o dispositivi portatili, senza bisogno di potenza di calcolo o di
banda speciali. I miners infine sono nodi a parte che utilizzano hardware dedicati
appositamente costruiti per il mining e banda elevata per ascoltare le transazioni dalla rete e
comunicare i propri blocchi. Nel breve futuro queste distinzioni saranno sempre pi marcate.
probabile inoltre che assisteremo ad una grande crescita del numero di nodi leggeri, infatti
allaumentare della popolarit entreranno nel sistema sempre pi persone comuni (cio senza
conoscenze tecniche del protocollo), che vorranno poter partecipare alleconomia Bitcoin
senza dover comprare dispositivi costosi.

Di seguito quindi considereremo le risorse necessarie per un nodo pesante per gestire
il pieno protocollo, ricordando come queste risorse non siano richieste per il grande pubblico
di nodi leggeri.

La rete deve avere una banda sufficiente a inoltrare 4.000 transazioni al secondo,
quindi (4.000*512)/(1024*1024) = 1,95 Mbyte al secondo, e quindi 1,95*8=15,6 Mbit/s . Questa
banda gi disponibile oggi e sar sempre pi comune nel breve futuro. Questa banda va
raddoppiata se si considera anche il tempo di trasmissione dei blocchi, in media ogni dieci
minuti. Ricordiamo comunque che questa banda non necessaria per i nodi leggeri che
utilizzano la verifica di pagamento semplificata.

Il costo maggiore per la CPU di un nodo Bitcoin rappresentato dal calcolo delle hash e
dalla verifica delle firme. RIPEMD-160 e SHA-256 sono eseguiti a circa 100 Mbyte/s . Se
abbiamo 4.000 transazioni al secondo, ognuna in media grande 512 byte allora avremo
4.000*512 = 2.048.000 byte = 1,95 Mbyte di dati al secondo, quindi le hash verrebbero
calcolate in circa venti millisecondi. Su un quad core Intel Core i7-2670QM 2,2 Ghz sono
verificabili 8.000 firme al secondo65 (utilizzando OpenSSL), poich ogni transazione ha in
media due input possiamo oggi verificare in media le firme di 4.000 transazioni al secondo. Se
abbiamo un numero di transazioni al secondo maggiore di 4.000 allora il numero di firme
verificabili al secondo pu essere aumentato utilizzando algoritmi di verifica alternativi a
OpenSSL ottenendo 20.000 o anche 80.000 verifiche al secondo. Abbiamo quindi visto come i
processori commerciali di fascia alta di oggi siano gi capaci di gestire un elevato volume di


65 Fonte [84].
188

transazioni (controllando le firme e calcolando le hash), nel breve futuro, grazie allaumento
della potenza di calcolo, saranno disponibili processori ancora pi potenti a prezzi accessibili,
quindi un nodo pesante non avr problemi di potenza di calcolo.

Un aumento del numero di transazioni si trasformerebbe in un aumento delle


dimensioni dei blocchi e quindi della catena. Oggi imposto dal protocollo il limite di 1Mbyte
alle dimensioni di ogni blocco, questo limite dovr chiaramente essere eliminato per
permettere la scalabilit del sistema. Se infatti consideriamo 4.000 transazioni al secondo,
ognuna di 512 byte allora avremmo 1,95 Mbyte di transazioni al secondo e quindi in dieci
minuti avremmo 1,95*10*60= 1170 Mbyte di transazioni da inserire in ogni blocco. Il limite di
dimensioni di ogni blocco dovrebbe essere quindi superiore ad 1Gbyte. Il problema con
blocchi cos grandi sarebbe che solo pochi blocchi potrebbero entrare in memoria RAM e
quindi i nodi perderebbero molto tempo per le letture di vecchie transazioni da disco durante
le verifiche. Una soluzione pu essere adottare la tecnica di potatura dellalbero descritta nella
sezione 2.3. Gi oggi per dalla versione 0.8 di bitcoind i nodi tengono in memoria solo
lelenco delle transazioni non spese, che molto minore del numero di transazioni totali. Se
ipotizzassimo che i nodi pesanti abbiano almeno RAM di fascia alta attuali (cio da 32 Gbyte o
maggiori) che nel breve futuro dovrebbero diventare economiche, allora potrebbero
mantenere le transazioni non spese in memoria veloce limitando al minimo le lente letture da
memoria secondaria. Oggi possibile mantenere queste transazioni su dispositivi con meno di
2Gbyte di RAM, considerando quindi il costante aumento di capacit delle memorie,
ragionevole pensare che il mantenimento in memoria delle sole transazioni non spese resti
nel futuro gestibile per i nodi pesanti. Chiaramente i nodi leggeri non avrebbero problemi di
memoria, poich, utilizzando la verifica di pagamento semplificata, avrebbero bisogno solo
delle intestazioni dei blocchi (e solo per i blocchi pi recenti) che hanno dimensioni minime
(81byte ciascuna).

Abbiamo quindi dimostrato come la rete bitcoin possa scalare nel breve futuro per
gestire flussi di transazioni paragonabili a quelli gestiti oggi dai due principali servizi di
trasferimenti elettronici (Visa e Mastercard).

7.3 Costo del mining


189

Bitcoin spesso stato accusato di sprecare elettricit per la validazione dei blocchi, e
produrre inquinamento inutilmente. Gli sviluppatori si difendono con questa frase [102]:

Bitcoin mining is a waste of energy and harmful for ecology, no more than the wastefulness of
mining gold out of the ground, melting it down and shaping it into bars, and then putting it back
underground again.

Unanalisi imparziale dei costi di mining pu per essere fatta solo valutando i suoi benefici.
Poich il mining necessario per rendere sicura la valuta e crearne di nuova, possiamo
analizzare i suoi costi paragonandolo ai costi per creare e rendere sicure altre valute.
Vorremmo quindi confrontare i costi del mining con i costi delle valute tradizionali, ed in
particolare del dollaro. Lanalisi dovrebbe tenere conto del costo complessivo per la creazione
e mantenimento di tutti i dollari in monete, banconote e virtuali (che sono la grande
maggioranza del totale). Dovremmo poi confrontare il volume delle transazioni in dollari con
quelli in bitcoin ed analizzare tutti i costi durante lintera durata di vita di ogni dollaro66.
Questa analisi va oltre gli scopi di questa tesi, quindi ci limiteremo al pi semplice confronto
del solo costo di produzione annuale di bitcoins e dollari in banconote per scoprire lentit dei
costi coinvolti.

7.3.1 Costo del dollaro

Come esempio di costo di una valuta tradizionale consideriamo il dollaro statunitense


(USD). Vediamo dal sito della Federal Reserve [107] il numero atteso di banconote da
stampare per lanno fiscale 2014 :


66 Sappiamo gi che la durata di vita di un bitcoin eterna (ipotizzando che non sia perso) ed i suoi costi di

mantenimento sono gli stessi costi di mantenimento dellintera rete, cio il costo del mining.
190

Figura 7.9 Stima della Federal Reserve del numero di banconote dei diversi tagli da stampare
nel 2014, fonte [107]

Osserviamo come circa il 90% di queste nuove banconote serva a rimpiazzare vecchie
banconote non pi adatte alla circolazione (perch troppo logore o danneggiate). Vediamo
adesso il costo per stampare le singole banconote:

Figura 7.10 Stima della Federal Reserve del costo delle banconote dei diversi tagli da stampare
nel 2014, fonte [107]

Infine mostriamo la tabella della Federal Reserve con i dati sul costo atteso della
creazione e distribuzione di queste nuove banconote:
191

Figura 7.11 Stima della Federal Reserve del costo della produzione di nuove banconote e dei
servizi collegati nel 2014, fonte [107]

Vediamo come si preveda di spendere ben ottocentoventisei milioni di dollari per


stampare nuove banconote di un valore complessivo di duecentonovantasette miliardi di
dollari. Ricordiamo che i costi considerati riguardano solo i costi delle banconote e non delle
monete, in generale le monete sono pi costose e quindi il costo considerato in realt una
sottostima. Infine osserviamo dal grafico sottostante come il costo delle banconote aumenti
nel tempo.

Figura 7.12 Grafico del costo e volume della produzione di banconote della Federal Reserve,
negli anni. Si nota come il costo aumenti nonostante la diminuzione del numero di banconote
stampate, fonte [107]


192

7.3.2 Costo dei bitcoins

Non possibile conoscere con precisione il costo effettivo dellhardware e


dellelettricit utilizzate da tutti i miner della rete Bitcoin, infatti ogni miner utilizza hardware
diversi e si trova in parti del mondo con costi dellenergia diversi. Noi ipotizziamo che un
miner sia un entit razionale e quindi cerchi sempre di massimizzare il profitto diminuendo le
spese, inoltre ipotizziamo che la vita attesa di un nuovo dispositivo sia di due anni. Il nostro
interesse rivolto al breve futuro pi che al presente, cercheremo quindi di dare una stima di
quale siano i costi di una strategia ottimale di mining. Se vediamo gli hardware dedicati al
mining oggi disponibili o annunciati (vedi [108]) possiamo stabilire quale sia il dispositivo pi
conveniente. Nella nostra trattazione scegliamo Bitkey Valkyrie (4 Modules) che gi
disponibile per il pre-ordine presso il sito del produttore.

Figura 7.13 Tabella delle caratteristiche del dispositivo ASIC trattato, fonte [108]

Adesso guardiamo la capacit di hash utilizzata dall'intera rete che alla data del
28/3/2014 pari a 45.547.307 Ghash/s .

Figura 7.14 Grafico rappresentante lhashrate della rete bitcoin in miliardi di hash al secondo,
fonte [109]

Calcoliamo quindi il numero di dispositivi del tipo scelto per ottenere questa potenza
di calcolo, ottenendo 45.547.307/2.800 =16.267 dispositivi. Considerando che ogni dispositivo
193

ha una vita media di due anni, allora ogni anno il mining coster in hardware 16.267*9.100 /
2= 74.014.850 $67.

Calcoliamo ora il costo per il consumo di energia elettrica. Ogni dispositivo consuma
1.680 Watts, quindi il consumo totale sar di 16.267*1680 = 27.328.560 Watts. Quindi l'intero
processo di mining consumerebbe circa 656 MWh al giorno. Poich i miner possono operare
da qualsiasi parte del mondo e sono entit razionali ragionevole pensare che saranno
dislocati nelle aree del pianeta dove l'energia pi economica. Se controlliamo il costo
dell'energia in vari paesi del mondo (vedi [113]) possiamo vedere come in ucraina l'energia
costasse nel 2011 meno di 0,04 $/kWh , mentre in Danimarca costava ben 0,4038 $/kWh.
Possiamo prendere come paese di riferimento un paese famoso per la disponibilit d'energia
rinnovabile economica come l'Islanda che ha un prezzo medio di 0,095 $/kWh (nell'ultimo
dato disponibile risalente al giugno 2012). Il costo totale giornaliero per l'energia sarebbe
quindi pari a 656.000*0,095 = 62.320 $ al giorno, e quindi in media 22.746.800 $ all'anno.
Osserviamo come queste stime non prendano in considerazione n l'hardware pi
conveniente n i paesi energeticamente pi convenienti, ma piuttosto mirino ad ottenere delle
stime ragionevoli se i miner fossero razionali ma pur sempre umani68. Il costo totale annuale
pu quindi essere calcolato come la somma dei costi di hardware ed elettricit annuali,
ottenendo 96.761.650 $ .

Infine calcoliamo il numero ed il valore dei bitcoins estratti in un anno. Il numero di


bitcoin estratti in un anno sar in media pari a 25*6*24*365=1.314.000 BTC . Se consideriamo
il cambio attuale di circa 500$ per 1 BTC otteniamo un valore totale di 657.000.000$.
Chiaramente questo valore puramente indicativo a causa delle grandi fluttuazioni che
subisce il valore dei bitcoins. Osserviamo per che dal 2017 la ricompensa per ogni blocco
sar dimezzata portando il valore totale annuale a 328.500.000$ al cambio attuale.
Consideriamo quindi il valore medio annuale (nellimmediato futuro) pari alla media di questi
due valori e quindi pari a 492.750.000$ all'anno.



67 Chiaramente dobbiamo ipotizzare che il prezzo resti costante, come invece non succederebbe nella realt
data una cos alta richiesta. Ovviamente la nostra trattazione solo teorica e utilizziamo quel dispositivo solo
come riferimento, nella realt i miners potrebbero acquistare al suo posto dispositivi diversi ma con analoghi
costi e prestazioni.
68 Con questo intendiamo dire che il costo non ottimo ma comunque ragionevole.
194

7.3.3 Confronto

Possiamo adesso confrontare i costi di produzione di bitcoins e dollari.

VALUTA COSTO ANNUALE VALORE ANNUALE EFFICIENZA

BTC 96.761.650 $ 492.750.000 $ 5,0924

USD 826.665.000 $ 297.120.000.000 $ 359,4201

Figura 7.15 Tabella comparativa dei costi di produzione e valore rappresentato annuali di
bitcoins e dollari. Lefficienza rappresenta il rapporto tra il valore prodotto ed il costo necessario
a produrlo

Per efficienza si intende il rapporto tra il valore annuale della valuta ed il suo costo
annuale di produzione. L'efficienza indica quindi la quantit di valore prodotto per unit di
costo sostenuto (indipendente dal reale utilizzo, cio numero di transazioni, per unit di
valuta). Dalla tabella si vede come oggi annualmente pi costoso creare dollari che bitcoins,
ma i dollari sono rappresentazioni pi efficienti di valore. bene ricordare che in tutta la
precedente trattazione abbiamo utilizzato il termine valore per intendere valore
rappresentato. Stampare dollari non crea nuovo valore in s ma moneta, cio nuove unit di
rappresentazione di valore. Possiamo quindi concludere come (ai dati attuali) il mining sia
effettivamente proporzionalmente pi costoso di una valuta tradizionale per quanto riguarda
il costo di produzione di nuova valuta. Il costo dellenergia per pari a circa un quarto del
costo totale.

Per quanto riguarda il consumo energetico, ed il conseguente impatto ambientale,


possiamo considerare uno studio apparso recentemente su CoinDesk [84]. Lautore stima il
consumo energetico per produrre un singolo bitcoin basandosi sui dati di un singolo miner
residente negli Stati Uniti, ottenendo un consumo giornaliero della rete bitcoin pari a 864
MWh . La stima ottenuta maggiore della nostra ma comunque comparabile ( maggiore di
circa il 30%). Nellarticolo quindi confrontato il consumo annuale della rete bitcoin (315.360
MWh secondo la loro stima e 239.440 MWh secondo la nostra) con il consumo annuale del
dipartimento del tesoro degli Stati Uniti dAmerica (335.520,255 MWh), la quantit di energia
utilizzata per produrre e spedire i 14,4 miliardi di carte di credito in circolazione nel 2012
(488.409 MWh) e la quantit di energia spesa dalla singola banca HSBC (1.481.538 MWh) nel
195

corso dellanno 2012. Chiaramente questi valori sono solo indicativi ma possono aiutare a
mettere in prospettiva il consumo energetico della rete bitcoin.

Considerando invece il consumo energetico per la produzione di banconote possiamo


citare uno studio della banca centrale europea del 2007 [85] riguardante il consumo
energetico dei tre miliardi di euro banconote prodotti nel 2003. Lo studio considera il
consumo energetico dellintero ciclo di vita delle banconote dalla loro produzione e
distribuzione fino al ritiro dal mercato, ottenendo un consumo energetico pari a 241.776
MWh . Il valore ottenuto molto simile alla nostra stima del consumo annuale della rete
bitcoin. Ricordiamo che la stima considera la sola produzione di banconote che una piccola
percentuale rispetto al numero totale di euro creati in un anno, e ricordiamo anche che i
valori sono servono solo come indicazioni e non sono direttamente confrontabili.

7.4 Futuro delle commissioni

Nellidea originale di Satoshi Nakamoto bitcoin doveva diventare il nuovo mezzo di


pagamento globale. Bitcoin doveva sostituire le carte di credito e le altre forme di pagamento
elettronico grazie alle sue propriet di costi, decentralizzazione e privacy. I principali vantaggi
rispetto ai sistemi di pagamento tradizionali sono i seguenti tre: lassenza di un entit
centrale, che invece hanno tutti sistemi di pagamento elettronico tradizionali, dovrebbe
rendere il sistema pi libero impedendo ad un singolo soggetto di decidere quali utenti
escludere dal sistema o quali politiche applicare; Bitcoin permette a qualsiasi utente di
partecipare alleconomia in modo pseudo-anonimo, senza bisogno di nessuna informazione
personale o bancaria sullutente, come invece avviene per i servizi tradizionali; infine bitcoin
promette costi di commissione molto minori rispetto ai sistemi tradizionali, rendendo
possibili i micro pagamenti in parti lontane del mondo che sarebbero antieconomici con i
metodi tradizionali (poich i costi fissi delle commissioni possono superare il valore del
trasferimento).

Abbiamo studiato leffettivo grado di decentralizzazione della rete nella sezione sui
problemi del mining (vedi sezione 4.1) e abbiamo studiato leffettivo grado di privacy offerto
da bitcoin nella sezione 4.3. Vediamo quindi in questa sezione se la promessa di commissioni
basse pu essere rispettata dal protocollo.
196

Osserviamo per prima che in alcuni paesi del mondo la diffusione dei pagamenti
elettronici ancora limitata nonostante limpegno dei governi.

Figura 7.16 Percentuale di pagamenti


effettuati dai consumatori senza
contanti, fonte [71]

I sostenitori di bitcoin ritengono per che possieda anche le propriet necessarie per il
suo utilizzo al posto del contante. Questo non vero, infatti Bitcoin possiede la propriet di
irreversibilit dei pagamenti, ma manca delle propriet di non tracciabilit e anonimato, come
spiegato nella sezione 4.3 e sezione 1.1.2.

Proviamo ora a stimare il costo delle commissioni per transazione. Utilizziamo il


grafico tratto da [110] per calcolare il totale medio in BTC delle commissioni di tutte le
197

transazioni di un giorno69.

Figura 7.17 Grafico della somma delle commissioni di tutte le transazioni giornaliere, fonte
[110]

Otteniamo come somma degli importi delle transazioni giornaliere una media di 11,43
BTC . Abbiamo gi mostrato in precedenza come lattuale numero medio di transazioni
giornaliere sia pari a 55.287. Possiamo quindi calcolare che ogni transazione paga in media
una commissione di 11,43/55.287 = 0,0002 BTC . Se consideriamo il volume medio70 totale in
uscita delle transazioni giornaliero (cio la somma di tutti gli output contenuti nelle
transazioni di un giorno) otteniamo 587.193 BTC71 . Quindi il costo percentuale delle
commissioni pari a 0,0019 % . Se consideriamo che i costi di commissione medi per i
tradizionali metodi di pagamento elettronico vanno dall1% al 4% (vedi [53]) possiamo
vedere il grande vantaggio economico dellutilizzo di bitcoin come mezzo di pagamento
(soprattutto per micro-pagamenti di importi limitati in cui le commissioni dei servizi
tradizionali in valore assoluto sarebbero economicamente proibitive).


69 Questo dato calcolato come media di sette giorni di osservazioni dal 21/3/2014 al 28/3/2014, fonte [110].
Vediamo comunque dal grafico come il valore sia consistente con la storia recente.
70 Questo dato calcolato come media di sette giorni di osservazioni dal 21/3/2014 al 28/3/2014, fonte [111].
71 Sarebbe possibile ottenere una stima pi accurata non considerando i resti contenuti negli output. Come
abbiamo visto nella sezione 3.3.1, questo per non facile. Se ci affidiamo al servizio offerto da [112]
otterremmo un valore medio giornaliero esclusi i resti pari a 100.131,5 BTC. Utilizzando questo valore
otterremmo quindi un costo delle commissioni comunque molto basso e pari circa allo 0,011% .
198

Figura 7.18 Grafico della somma degli output di tutte le transazioni giornaliere, fonte [111]

Nel futuro la potenza di calcolo dovrebbe aumentare (seguendo la legge di Moore),


aumentando quindi i costi del mining, ma anche il valore dei bitcoins dovrebbe aumentare
(seguendo la natura deflazionista con cui sono state progettate). Ipotizziamo quindi che il
rapporto tra costi del mining e valore dei bitcoins prodotti resti costante, ed uguale ad oggi.
Questa ipotesi non sar necessariamente vera, ma ci permette di stimare lentit delle
commissioni in funzione del solo dimezzamento delle ricompense (non considerando quindi
gli effetti del mercato non matematicamente prevedibili). Abbiamo gi calcolato il rapporto
tra valore delle ricompense annuali e costo del mining (chiamando questo valore efficienza)
fino al 2021, nella sezione 7.3.3 . Utilizzando gli stessi valori possiamo quindi calcolare una
tabella dellevoluzione futura, ricordando che il numero dei bitcoins in ogni ricompensa si
dimezza in media ogni quattro anni.

Anno < 2017 < 2021 < 2025 < 2029 < 2033

Ricompense 657.000.000$ 328.500.000$ 164.250.000$ 82.125.000$ 41.062.500$

Rapporto 6,79 3,39 1,70 0,85 0,42

Figura 7.19 Tabella rappresentante il valore in dollari dei bitcoins prodotti annualmente al
cambio attuale, ed il rapporto tra guadagni e costi delle sole ricompense del mining

Il mining rester vantaggioso, e quindi praticato, finch il rapporto tra guadagni e costi
sar maggiore di uno72. Quindi, sotto le nostre semplici ipotesi, gi nel 2029 il valore delle


72 In realt questo rapporto dovr essere strettamente maggiore di uno per permettere ai miner di guadagnare
199

ricompense non sar pi sufficiente da solo a sostenere il mining. Servirebbero almeno altri
96.761.650 82.125.000 = 15.636.650 $ . Se consideriamo che il valore medio giornaliero delle
ricompense rester costante, allora in un anno la somma delle ricompense giornaliere sar in
media pari a 11,43 * 365 = 4.171,95 BTC, cio 2.085.975 $ al cambio attuale, insufficiente a
ripagare i miners. Poich 15.636.650 / 2.085.975 = 7,5, per arrivare alla parit avremo bisogno
di ricompense sette volte e mezza superiori. Questo valore aumenterebbe fino ad arrivare al
limite del 2140 in cui le sole commissioni dovranno finanziare il mining, arrivando a
96.761.650 $ / 365 = 265.100 $ giornalieri necessari in commissioni, ossia commissioni 46,473
volte superiori a quelle odierne. Abbiamo visto nella sezione 6.2 che il numero di utenti di
bitcoin cresciuto circa del 40% dal 2012 al 2013. Se consideriamo questa crescita come un
fattore eccezionale dovuto alla popolarit improvvisa del protocollo, possiamo
prudentemente stimare come incremento medio annuale il 15%. Nel 2029, cio tra quindici
anni da adesso, il numero di utenti sar quindi cresciuto di circa otto volte (813,7%). Se
ipotizziamo che il numero di transazioni giornaliere sia direttamente proporzionale al
numero di utenti allora anche il numero di transazioni giornaliere aumenter di otto volte.
Questo vuol dire che aumenter anche il numero di commissioni di otto volte, quindi
limporto delle commissioni non deve aumentare affatto ma addirittura leggermente
diminuire, poich il valore totale delle commissioni deve aumentare di 7,5 volte mentre il loro
numero aumenter di 8,1 volte. Per rendere allo stesso modo il mining sostenibile nel 2140
sarebbe sufficiente che il numero di utenti sar allora almeno cinquanta volte il numero di
utenti odierni, cio dovrebbero esistere 3.383.904*50 = 169.195.200 utenti. Se ipotizziamo
una popolazione (sottostimata) mondiale costante di dieci miliardi di individui, allora
basterebbe che l1,69% della popolazione mondiale utilizzasse bitcoin per far in modo di
mantenere le commissioni al valore attuale. Chiaramente se bitcoin sar ancora usato nel
2140, dovr per forza aver avuto unampia diffusione, quindi il traguardo dell1,69% sarebbe

dal mining (e quindi incentivarli a continuare), piuttosto che ripagare semplicemente le spese. Se
adoperiamo la convenzione economica di considerare un guadagno pari al 20% , allora dovremmo
considerare il mining conveniente se rapporto tra guadagni e costi fosse maggiore di circa 1,2. Noi per non
possiamo prevedere quale limite di guadagno si imponga ogni miner per considerare linvestimento
vantaggioso, quindi ci limitiamo a considerare il limite razionale (per quanto piccolo, un guadagno sempre
vantaggioso).
73 Tutti questi calcoli sono fatti con il cambio attuale che certamente non sar pi valido tra pi di un secolo.
Noi per utilizziamo il cambio solo come valore indicativo, infatti abbiamo iniziato la discussione con
lipotesi che il rapporto tra il valore dei bitcoins (ma non il loro numero) ed i costi di mining restino costanti,
quindi in futuro il costo di mining potr essere molto maggiore ma lo sar in uguale proporzione anche il
valore dei bitcoins e quindi delle commissioni, rendendo valido il risultato ottenuto.
200

facilmente raggiunto.

Utilizzando lipotesi del rapporto costante tra valore (ma non numero) e costo di
estrazione dei bitcoins e della crescita moderata della diffusione di bitcoin, abbiamo
dimostrato come le commissioni in futuro saranno sufficienti a sostenere da sole il mining
senza bisogno di aumentare i costi per gli utenti, mantenendo quindi bitcoin conveniente
economicamente.

Dai due grafici figura 7.7 e figura 7.17 possiamo osservare come limporto medio
giornaliero delle commissioni sia leggermente diminuito nellultimo anno mentre il numero di
transazioni giornaliere sia leggermente aumentato. Questo contraddice lassunto generale che
le commissioni sarebbero aumentate spontaneamente allaumentare della popolarit per
sopperire alla diminuzione delle ricompense, ed invece rafforza la nostra dimostrazione che il
solo aumento della popolarit, e quindi del numero di transazioni, sufficiente a mantenere
conveniente il mining, generando anche una leggera diminuzione del costo delle commissioni.

importante per puntualizzare che in tutti i ragionamenti precedenti abbiamo


considerato che il sistema scalasse perfettamente allaumentare del numero di utenti. Come
abbiamo visto nella sezione 7.2, il numero di transazioni scala bene solo dopo che abbiamo
rimosso il limite attuale di 1Mbyte alle dimensioni di ogni blocco. Questo limite deve
necessariamente essere rimosso per permettere laumentare del numero di transazioni e
rendere valido il risultato sopra ottenuto. Consideriamo per adesso lo scenario opposto, in
cui cio il limite alla dimensione massima dei blocchi non venisse rimosso.

Un miner oggi razionalmente incentivato ad aggiungere ai propri blocchi qualsiasi


transazione con commissione non nulla, indipendentemente dallimporto della commissione.
Infatti se un miner ignora delle commissioni con importi ritenuti troppo bassi sta solo
favorendo gli altri miner che inseriranno quelle transazioni nei loro blocchi e collezioneranno
le commissioni associate. Per quanto piccola possa essere, una commissione non nulla
comunque un guadagno. Il valore delle commissioni si manterr per questo sempre basso.
Questo non pi vero se i blocchi hanno una dimensione massima ed il numero di transazioni
generate dagli utenti maggiore di quelle che possono entrare in un blocco. In questo caso
ogni miner non pu inserire tutte le transazioni nei blocchi e quindi sceglier razionalmente
201

le transazioni con commissioni maggiori74. Questo vuol dire che le transazioni con
commissioni minori sarebbero scartate dai miner e quindi non sarebbero pi validate. Questo
porterebbe ad una gara tra gli utenti per inserire le commissioni massime possibili, ed
assicurarsi in questo modo che le loro transazioni siano verificate. Gli unici a guadagnare da
questa situazione sarebbero i miners, mentre il protocollo in generale ne risentirebbe. Infatti
lobbligo di pagare commissioni alte in valore assoluto renderebbe i micro pagamenti
impossibili, poich le commissioni sarebbero in proporzione maggiori del pagamento stesso.
Inoltre i costi maggiorati e la mancata validazione di molte transazioni renderebbero la rete
non pi conveniente per la maggior parte degli utenti. Questo distruggerebbe sia la popolarit
che lutilit economica di bitcoin, portando alla sua rovina.

7.5 Normative

La comparsa di valute digitali non una novit degli ultimi anni. Come abbiamo visto
nella sezione 1.1.2, il concetto di moneta digitale risale agli anni ottanta. Fino al 2011 per
limportanza economica e sociale di queste valute era irrisoria. Bitcoin viveva in una nicchia
scavata dagli entusiasti sulla rete, mentre le altre valute disponibili erano pressoch ignorate.
Cos quando il fenomeno Bitcoin ha preso piede nel 2012 ed poi esploso nel 2013 la maggior
parte dei governi si sono trovati impreparati a gestirlo. Del resto il territorio delle valute
digitali resta ancora misterioso ed inesplorato, tanto che in molte giurisdizioni non ancora
chiaro cosa sia una valuta digitale. Gli aspetti pi importanti che aspettano di essere legiferati
riguardo a Bitcoin comprendono la decisione se Bitcoin possa considerarsi o meno una valuta,
valutazioni sulla possibilit di tutela dalle frodi, decisione se sia possibile, ed eventualmente
come, tassare le sue transazioni. In [56] lautore mostra come le principali preoccupazioni
degli attori impegnati nelleconomia bitcoin derivino dalla mancanza di regolamentazione. La
richiesta principale dei grandi servizi infatti una normativa chiara che rafforzi la fiducia del
grande pubblico in Bitcoin (ottenendo un effetto simile al gi citato rapporto del FinCEN
spiegato nella sezione 7.1.1). Per immaginare le normative future vediamo quindi quali siano
le leggi in vigore nelle giurisdizioni principali.

74 Pi correttamente dovremmo dire che il miner inserir le transazioni con il rapporto tra commissioni e
dimensione maggiore. In genere per le transazioni hanno dimensioni quasi identiche, quindi, in generale,
solo limporto della commissione a decretare quale transazione sia pi vantaggiosa.
202

7.5.1 Unione Europea

In Europa esistono due leggi sulle monete elettroniche. La prima la Direttiva sulla
Moneta Elettronica (2009/110/CE) [48]. Questa direttiva stabilisce che una moneta
elettronica debba soddisfare tre propriet:

1. Deve essere immagazzinata elettronicamente.

2. Deve essere emessa in cambio di fondi di valore non minore del valore emesso.

3. Deve essere accettata come mezzo di pagamento da entit diverse dallemittente.

Bitcoin non rientra in questa direttiva, e non pu essere quindi considerato moneta
elettronica, poich non soddisfa il secondo requisito. Le nuove monete sono estratte dai
miners senza nessun fondo come controvalore. Inoltre larticolo 11 della direttiva stabilisce
che il possessore di moneta elettronica pu in qualsiasi momento richiedere agli stati membri
che gli venga corrisposto il corrispettivo valore in moneta tradizionale. In Bitcoin non esiste
un controvalore effettivo tra bitcoins e qualsiasi altra valuta, poich i bitcoins non
rappresentano la valuta tradizionale come invece avviene per la moneta elettronica. La
moneta elettronica intesa da questa direttiva come un mezzo per scambiare
elettronicamente le valute tradizionali, non come una moneta che abbia valore di per s.

Analogamente Bitcoin esula dalla Direttiva sui Servizi di Pagamento (2007/64/CE) [48],
che stabilisce le regole delle istituzioni di pagamento che effettuano transazioni con moneta
elettronica. Nonostante questo a fine 2012 Bitcoin Central si registrato come Payment
Service Provider seguendo questa direttiva in Francia.

I paesi membri mancano ugualmente di una legislature precisa su Bitcoin.

La Francia si limita a stabilire che i servizi di cambio in bitcoins sono da considerarsi


servizi di pagamento e quindi possono essere forniti solo da entit autorizzate e che siano
controllate dallautorit di controllo prudenziale francese (Autorit de controle prudentiel et
de resolution). In Germania il 19 dicembre 2013 il BaFin (autorit federale tedesca per il
controllo della finanza) ha stabilito che Bitcoin debba essere ritenuto non una valuta straniera
ma bens uno strumento finanziario, quindi il suo utilizzo come pagamento e le operazioni di
minig non richiedono autorizzazioni bancarie. Di fatto i bitcoins sono considerati unit di
scambio per transazioni private (detta anche moneta privata), quindi possono essere
203

regolarmente scambiate, previa registrazione del servizio di cambio presso il BaFin. In Svezia
i bitcoins sono considerati beni paragonabili ad antiquariato o gioielli [46].

LItalia ha dato attuazione alla Direttiva sulla Moneta Elettronica (2009/110/CE) della
comunit europea con Decreto Legislativo n. 45/2012, per regolamentare la moneta
elettronica, ma come abbiamo gi spiegato Bitcoin non pu per essere considerato moneta
elettronica. Per quanto riguarda la tassazione, Bitcoin pu essere visto come un semplice bene
e quindi le transazioni in bitcoins dovrebbero considerarsi una forma di baratto. I bitcoins
dovrebbero quindi essere tassati con aliquota IVA, individuando il valore nominale del bene
considerato.

Nel rapporto di maggio 2014 sulla stabilit finanziaria redatto dalla Banca dItalia [54]
presente una breve analisi di Bitcoin. Lanalisi rileva come linteresse in Italia per le valute
digitali sia cresciuto ma la loro attuale diffusione ancora limitata. Come gi avvenuto per il
rapporto dellanno precedente della BCE, il rapporto si limita a mettere in guardia i
consumatori per la mancanza di tutele nellutilizzo di valute digitali e a constatare lassenza di
rilievo del fenomeno nel sistema finanziario italiano. Sottolineiamo come nel rapporto Bitcoin
sia indicato come valuta virtuale, piuttosto che digitale75, dimostrando uno scarso
interesse per la distinzione dei due fenomeni. Si evince quindi come ancora siamo lontani da
una regolamentazione precisa del fenomeno.

7.5.2 Resto del mondo

Riguardo alla legislatura vigente negli Stati Uniti dAmerica, abbiamo gi osservato
nella sezione 1.1.3 come il diciotto marzo 2013 il FinCEN [49] abbia regolarizzato lo stato
legale delle valute virtuali centralizzate e non portandole ad aderire alle regole dei MSB
(Monetary Service Business) e del Bank Secrecy Act. Bitcoin classificato come virtual
currency, cio valuta che non ha corso legale sotto nessuna giurisdizione. Questo ha avuto
leffetto di sollevare gli utenti statunitensi di Bitcoin da qualsiasi obbligo, non riconoscendoli
come MSB, cio come enti emittenti valuta. Se per questi utenti scambiano bitcoins in cambio
di valuta nazionale (USD) allora sono considerati MSB e devono adempiere a tutti gli obblighi
previsti per un money trasmitter. Ugualmente sono considerati MSB i siti di cambio che
scambiano sul territorio nazionale bitcoins in cambio di valute a corso legale.

75 Si veda la sezione 1.1.3 per la differenza di significato dei due termini.
204

Il 25 marzo 2014 Internal Revenue Service (IRS) [72] ha pubblicato nuove guide per la
tassazione dei bitcoins negli Stati Uniti. I bitcoins sono considerati una valuta virtuale
convertibile e devono essere tassati come propriet e non valuta estera. Un utente dovr
notificare le perdite o i guadagni sulle propriet in bitcoins considerando lo scarto negativo o
positivo del tasso di cambio onesto (fair market value in US dollars listed on an Exchange
where the Exchange rate is established by market supply and demand) con il dollaro applicato
il giorno dellacquisto e della cessione dei bitcoins. Ugualmente se un datore di lavoro paga
stipendi in bitcoins trattato come se pagasse i dipendenti con propriet e quindi sono
applicate le normali tassazioni sulla propriet. Quando un miner statunitense riceve una
ricompensa per un nuovo blocco deve dichiararla come guadagno in dollari, applicando il
tasso di cambio giusto del giorno.

Il 3 dicembre 2013 la banca centrale cinese ha stabilito che bitcoin non una valuta e
non pu essere utilizzata nel sistema bancario cinese. proibito in Cina trattare bitcoins per
le banche e gli istituiti finanziari, ed sconsigliato tra i privati. Queste misure proibizioniste
sono state la risposta al grande successo di Bitcoin in Cina. Infatti molto conveniente
comprare bitcoins come bene rifugio per proteggersi dalle politiche di deprezzamento dello
Yuan adottate dal governo per favorire le esportazioni. Sebbene non siano seguite altre
direttive ufficiali, la banca popolare cinese ha continuato a cercare di bloccare sottobanco
Bitcoin, ordinando ai servizi di pagamento ed alle altre banche di interrompere qualsiasi
rapporto con i servizi di cambio. La chiusura dei conti di molti servizi di cambio, tra cui lo
storico BTC China sta convincendo la maggior parte di questi servizi ad abbandonare il paese.

Il Canada stato il primo paese a regolamentare nellaprile del 2013 la tassazione dei
bitcoins. In Canada le transazioni in bitcoins sono tassate seguendo le regole della tassazione
sul baratto se riguardano lacquisto di beni o servizi oppure seguendo le regole sul commercio
di prodotti finanziari per altri tipi di transazioni.

7.6 Proposta dellAutore

Abbiamo spiegato in questo capitolo come il futuro di bitcoin sia legato strettamente
alla crescita della sua economia reale. Unampia diffusione di bitcoin come valuta di scambi
necessaria alla stabilit e convenienza economica del sistema. Scopo di qualsiasi
205

miglioramento del protocollo in questo senso dovrebbe essere quindi di cercare di aiutare la
sua economia. Chiaramente questo dipende in larga misura da fattori esterni (come la
popolarit) su cui non possiamo avere il controllo. Possiamo per abbattere le barriere che
rendono pi complesso lingresso di nuovi utenti nelleconomia. Unimportante aspetto del
sistema infatti la sua natura deflazionista. La deflazione ha importanti vantaggi, tra cui la
preservazione del valore dei capitali investiti e londata di popolarit dovuta alla sfiducia nelle
valute tradizionali fortemente inflazionate. Lo svantaggio maggiore per che premia
laccumulo piuttosto che la spesa. Vorremmo quindi mantenere le propriet positive della
deflazione attenuando per la sua spinta al risparmio. La proposta dellautore di ottenere
questobbiettivo modificando lentit delle ricompense attuali.

Consideriamo lo scenario in cui la ricompensa per ogni blocco fosse costante, invece
che dimezzarsi ogni quattro anni. Il primo effetto sarebbe chiaramente un numero
potenzialmente illimitato di monete. Questo comporterebbe uninflazione annuale sempre
positiva, ma decrescente, poich il numero di nuove monete prodotte ogni anno sarebbe
costante e quindi diminuirebbe il suo rapporto con le monete gi in circolazione76.
Linflazione o la deflazione non sono per prodotte solo dalla variazione del numero di
monete disponibili, ma anche dalla domanda e offerta di beni in quella valuta. Se la crescita
delleconomia pari alla crescita della moneta allora il valore resta immutato. Se leconomia
reale crescesse pi in fretta o a ritmo uguale al numero di monete allora la richiesta di monete
dei nuovi utenti sarebbe soddisfatta soprattutto dai miner, invece che dagli utenti gi nel
sistema che vendendole ne uscirebbero. Non ci sarebbe inflazione perch le richieste di nuovi
bitcoins dovuti allespansione del mercato sopperirebbero allaumento di produzione di
monete, mantenendo il valore stabile. Lo scopo della nostra modifica proprio di stimolare
leconomia reale, quindi vogliamo considerare proprio lo scenario in cui leconomia cresca, e
cerchiamo un modo per impedire che questa crescita si arresti. Se il valore delle monete
costante non c motivo speculativo nel mettere delle somme da parte, poich ci aspettiamo
che il loro valore resti costante (invece di crescere). La mancanza di spinte speculative
aiuterebbe a stabilizzare ulteriormente il valore che sarebbe quindi stabilito dalla domanda e
offerta delleconomia reale. Con un valore stabile, i nuovi utenti si sentirebbero pi sicuri
nellentrare nel sistema, e i bitcoins resterebbero nelleconomia (poich non sarebbe

76 Ricordiamo come anche oggi il protocollo segua uninflazione controllata (almeno fino al 2140) positiva anche

se rapidamente decrescente.
206

conveniente cambiarli in valuta tradizionale a seguito di cambiamenti di valore improvvisi),


fornendole la liquidit necessaria.

Cerchiamo di capire a chi converrebbe, e chi sarebbe invece danneggiato da questo


cambiamento. Chiaramente la modifica sarebbe ben accettata dai miners, che vedrebbero
aumentare le proprie entrate. Come abbiamo spiegato in precedenza i miners sono una parte
importante della comunit ed il loro assenso necessario per qualsiasi cambiamento. La
modifica sarebbe facilmente attuabile poich ogni miner aderirebbe per vedere aumentare i
suoi guadagni, quindi la catena continuerebbe unica, senza biforcazioni create da miners che
continuassero ad usare il vecchio protocollo (non ci sarebbe ragione economica per un miner
di accettare compensi minori dopo aver sostenuto loneroso investimento iniziale per
lacquisto dellhardware necessario). Un attaccante che biforcasse volontariamente la catena
mantenendo le vecchie regole avrebbe il controllo della totalit delle risorse di calcolo che
lavorano a quella catena. Lattaccante potrebbe cercare di sfruttare la biforcazione per
attacchi ai danni dei nodi che non avessero riconosciuto la modifica, restando alle vecchie
regole. La difficolt per sarebbe rimasta immutata e anche dopo due settimane
decrescerebbe solo di un quarto, quindi lattaccante avrebbe bisogno di unampia porzione
della potenza di calcolo originale dei miner onesti per poter sperare di estrarre qualche
blocco in tempi ragionevoli. In questo caso per sarebbero pi convenienti per lattaccante
altri tipi di attacchi sulla nuova catena, infatti la maggior parte degli utenti, e quindi dei fondi
utilizzerebbe il nuovo ramo aggiornato. Osserviamo che i miner accetterebbero la modifica
anche perch laumento del numero di monete a valore costante sarebbe unentrata certa,
contro la speranza di aumento del valore delle monete con la diminuzione del loro numero,
promessa dalle regole deflazioniste attuali.

Come abbiamo gi spiegato, gli utenti che utilizzino i bitcoins come valuta per gli
scambi sarebbero avvantaggiati dalla modifica, mentre ne sarebbero penalizzati gli utenti che
acquistino bitcoins come investimento. Questo accettabile perch abbiamo spiegato in
precedenza come la pi grande potenzialit di bitcoin per la societ sia proprio il suo uso
come valuta per il commercio e non come bene rifugio. Gli utenti maggiormente penalizzati
sarebbero gli utenti iniziali che hanno accumulato grandi fortune in bitcoins, mai spese in
attesa dellaumento del loro valore. Questi utenti non potrebbero pi aspettare che il valore
dei loro fondi aumenti da solo a spesa dei nuovi utenti. Si vedrebbero comunque riconosciuto
un grande profitto per i rischi iniziali di aver investito in bitcoin quando era ancora
207

sconosciuto. Il valore dei loro fondi sarebbe infatti stabile, non distrutto. Questo comporta il
vantaggio che questi utenti non avrebbero pi interesse a trattenere questi fondi e potrebbero
quindi spenderli o investirli nelleconomia reale, aumentando la liquidit a vantaggio della
collettivit. Gli sviluppatori [102] (che in alcuni casi sono anche utenti iniziali con grandi
depositi di bitcoins), sostengono che la deflazione attuale di bitcoin non sia un problema per
la sua economia, poich, se il valore di un bitcoin dovesse diventare troppo alto per il suo
utilizzo pratico, gli utenti potrebbero comprare e spendere frazioni pi piccole (ricordiamo
che 1 BTC divisibile fino ad un satoshi, pari a 10-8 BTC). Spiegano cio che leconomia
utilizzer semplicemente prezzi in mBTC (detti milli-bitcoins cio 10-3 BTC) o micro-bitcoins
(cio 10-6 BTC) invece che in BTC. Chiaramente questa solo una facciata poich il valore
reale delle bitcoin non sarebbe cambiato. Sarebbero ricompensati ingiustamente gli utenti
iniziali e gli speculatori, a scapito degli utenti entrati pi di recente nel sistema, che sono
proprio quelli che poi sostengono leconomia reale e quindi anche il valore della valuta
(questo segue uno schema pi tipico di una truffa a schema piramidale, piuttosto che di una
crescita economica sana).

La modifica proposta volutamente molto semplice per facilitarne ladozione e


mostrare chiaramente i vantaggi prodotti. Sarebbe migliore una modifica pi sofisticata che
permetta di legare la creazione di nuova valuta con la crescita economica, ma sufficiente la
creazione costante da noi proposta per evidenziare i limiti della deflazione ed i vantaggi della
sua moderazione.


Conclusioni77

Durante la tesi abbiamo spiegato e approfondito tutti gli aspetti rilevanti del fenomeno
bitcoin. Possiamo quindi prevedere un suo possibile sviluppo futuro. Torniamo quindi alle
domande che ci eravamo posti nellintroduzione e diamo loro una risposta alla luce delle
conoscenze raccolte nei capitoli precedenti.

Nelidea originale di Satoshi Nakamoto ogni utente doveva essere custode, cio miner,
della rete. Il mining in bitcoin si per molto evoluto dalle origini, la difficolt aumentata a
tal punto da rendere economicamente conveniente scavare solo con dispositivi dedicati
progettati apposta. Abbiamo gi osservato nella sezione 7.2 come gi oggi i nodi della rete si
dividano tra miners e nodi utenti (leggeri o pesanti). Questo trasforma il mining in un
business in cui i partecipanti devono sostenere costosi investimenti iniziali in hardware ed
alti costi di fornitura delenergia prima di rientrare del proprio investimento e cominciare a
guadagnare. Abbiamo anche visto nella sezione 7.3.2 , come ci siano ancora ampie possibilit
di guadagno nel mining, il mercato non cio ancora saturo. Si vede dalla figura 7.14 come
oggi il mining sia un affare molto conveniente, con i dispostivi moderni infatti possibile
ottenere un guadagno ammortizzato del 500% sullinvestimento.

Se immaginiamo nel futuro un bitcoin maturo ed utilizzato dalla societ, possiamo


prevedere che il mining diventer una normale attivit industriale proprio come lestrazione
fisica delloro. Il mining del futuro sar gestito razionalmente da aziende apposite che
gestiranno e svilupperanno dispositivi dedicati sempre pi efficienti, raccolti in grandi
stabilimenti localizzati nelle parti del mondo con pi basso costo dellenergia (o miglior
trattamento fiscale di bitcoin). Queste aziende sarebbero avvantaggiate rispetto ai mining
pools, poich non soffrirebbero dei loro problemi, trai quali quelli indicati nella sezione 4.1
(come ad esempio miners fraudolenti infiltrati). Inoltre essendo entit centralizzate queste
aziende potrebbero proteggersi meglio rispetto ai mining pools odierni da furti o attacchi
esterni, oltre ad avere migliori possibilit di riconoscimento e protezioni legali. Tali aziende
soppianterebbero rapidamente anche i miners individuali, poich disporrebbero delle risorse

77 Tutte le idee espresse in questo capitolo sono personali ma opportunamente sostenute dalla conoscenza di
bitcoin che lautore ha maturato nel corso della tesi. Indicheremo quindi i riferimenti agli argomenti trattati.
210

finanziarie necessarie ad aggiornare continuamente i propri dispositivi. Oggi non si conosce


nessun imprenditore pronto a fondare una tale azienda, a causa dellalto rischio legato alla
valuta, ma se nel breve futuro bitcoin riuscir a stabilizzarsi rafforzando la propria economia
reale, allora il redditizio business del mining potrebbe diventare un vantaggioso
investimento78.

Abbiamo spiegato nella sezione 2.3 e nella sezione 4.1.1 come sia conveniente per i
miners unirsi in mining pools per ridurre la varianza, e come sia oggi una tecnica ampiamente
diffusa. Anche ipotizzando che la precedente teoria dellautore sulla nascita di aziende di
mining sia errata, i soli mining pools sono sufficienti a minacciare la decentralizzazione del
protocollo. Abbiamo, infatti, visto nella sezione 4.1.1 come sia economicamente conveniente
possedere la maggioranza delle risorse di calcolo della rete. Nella sezione 4.1.2 abbiamo poi
mostrato una tecnica di mining fraudolento che permetterebbe a relativamente piccoli minig
pool fraudolenti di crescere fino ad ottenere il controllo totale della catena. Abbiamo anche
osservato come questa tecnica sia gi oggi applicabile. La difficolt di attuare per tecniche di
mining fraudolento che i miner partecipanti al mining pool fraudolento si accorgerebbero
facilmente del mining fraudolento eseguito e quindi dovrebbero essere complici consapevoli
per restare nel pool fraudolento. Se oggi questa consapevolezza un deterrente sufficiente
per i principali mining pool (che rischierebbero di perdere i propri miner in massa e quindi
tutti i profitti), non lo sar quando il mining sar considerato un semplice business. Degli
attori razionali interessati solo al profitto non avrebbero infatti nessun problema ad applicare
tecniche fraudolente per aumentare i propri profitti. Possiamo quindi ipotizzare che se bitcoin
raggiunger unampia diffusione, inevitabilmente il mining diventer un business con pochi
grandi partecipanti, mettendo a rischio la sua decentralizzazione. Accentrare il potere di
mining in poche mani rende anche molto pi facile la formazione di un cartello che controlli la
maggioranza delle risorse di calcolo, e quindi la catena.

Abbiamo visto nella sezione 5.1.1 una proposta (utilizzare nelle proof of work
algoritmi difficilmente parallelizzabili) per rendere il mining davvero decentralizzato.
Purtroppo per il suo utilizzo nella pratica pi difficile che in teoria, ed apre a nuovi
problemi (come la vulnerabilit alle botnet). In ogni caso non pensabile di poter applicare

78 Un esempio odierno pu essere considerato il servizio Cloudhashing [119] che offre ai clienti la possibilit di

comprare potere di hash ed ottenere i bitcoins estratti (trattenendo una percentuale). I clienti possono cos
essere miners senza preoccuparsi dellhardware e degli altri costi collegati.
211

una soluzione simile a Btcoin. I miners infatti hanno investito troppe risorse per potersi tirare
indietro, quindi non accetterebbero mai di cambiare algoritmo, dedicando la loro enorme
potenza di calcolo alla difesa delle regole attuali. Poich bitcoin richiede che la totalit degli
utenti accetti ogni cambiamento, altrimenti la rete si dividerebbe portando al caos e al
fallimento, questa modifica non avverr mai.

Non solo il mining a minacciare la decentralizzazione del protocollo. Abbiamo visto


nella sezione 1.3 come in pi punti della storia di bitcoin sia apparsa la necessit di un
controllore del protocollo. Lesempio pi chiaro la biforcazione del 2013 trattata nella
sezione 1.3.3 . Come in caso di necessit le democratiche citt greche eleggevano un tiranno
per guidarle, cos la comunit libera di bitcoin ha dovuto eleggere a portavoce gli sviluppatori
per prendere una decisione e risolvere il problema. Gli sviluppatori godevano infatti della
popolarit necessaria ad ascoltare la comunit ed essere ascoltati dai mining pools. Loro
riuscirono a convincere gli utenti ad andare contro le regole ed abbandonare la catena pi
lunga. Analogamente ogni volta che Bitcoin dovr evolversi (ad esempio per aumentare la
dimensione massima di un blocco come spiegato nella sezione 7.2 o per fronteggiare la
crittoanalisi quantistica, come spiegato nella sezione 3.4) sar necessario che si faccia avanti
un coordinatore che eviti un caos potenzialmente fatale. Lemergere di un comitato di
controllo non di per s un fatto negativo. La sua presenza aiuterebbe infatti a proteggere ed
evolvere la rete, e possiamo immaginare che venga implicitamente eletto come in una
democrazia rappresentativa. Solo chi avrebbe sufficiente popolarit e autorevolezza nella
comunit bitcoin potrebbe diventare un controllore, e se sbagliasse sarebbe subito ripudiato e
non pi ascoltato.

Il potere degli sviluppatori non deriva per solo dalla loro popolarit, ma anche dal
loro controllo sul software ufficiale bitcoind. Nonostante lesistenza di software alternativi, e
la possibilit per gli utenti di scriversi il proprio software, le linee guida del protocollo sono
dettate da bitcoind. Come sempre dobbiamo ricordare che la comunit bitcoin democratica e
quindi se il software avesse delle nuove funzionalit contrarie agli utenti questi potrebbero
semplicemente ignorarlo. Il problema per che la nostra analisi non focalizzata sul
presente ma su un futuro di ampia diffusione di bitcoin. In questo futuro la maggior parte
degli utenti saranno nodi leggeri (come spiegato nella sezione 7.2), che non avranno interesse
a come funzioni Bitcoin, ma cercheranno piuttosto la facilit dutilizzo. Il software pi
utilizzato da questa maggioranza di utenti sar quindi il software dominante, poich dovr
212

essere utilizzato dai servizi che vorranno raggiungere il maggior numero possibili dutenti, e
quindi anche dai mining pool che vorranno immettere i nuovi bitcoins nelleconomia.
Possiamo quindi vedere due minacce alla decentralizzazione del protocollo nella necessit di
unentit di controllo benigna e nel monopolio del software dominante.

Possiamo adesso rispondere alla domanda che ci siamo posti nellintroduzione:


corretto prevedere che bitcoin si manterr decentralizzato in futuro? No. Le regole
economiche alla base del mining spingono verso laccentramento; la rete ha bisogno di
unentit che supervisioni i momenti di crisi e di cambiamento; il software dominante potr
dettare le linee guida per lo sviluppo del protocollo.

Abbiamo gi spiegato diffusamente nella sezione 4.3 come lanonimato di bitcoin sia
solo un mito. Bitcoin offre un sufficiente livello di privacy per il suo utilizzo come mezzo di
pagamento, ma non per il suo uso criminale. Il vantaggio offerto dalla pubblicazione di tutta la
storia delle transazioni sulla catena offre comunque nuovi dati per lanalisi statistica della sua
economia, permettendo una chiarezza impossibile nelleconomia tradizionale (si veda ad
esempio il Capitolo 6). Possiamo quindi dare una risposta alla domanda che ci eravamo posti
nellintroduzione: possibile che Bitcoin anzich aumentare la privacy degli utenti la
comprometta? Si.

Bitcoin risente dellinstabilit causata dallalta percentuale di speculazione legata alla


sua economia. Abbiamo visto nelle sezioni 6.2 e 7.1 come leconomia reale di bitcoin, cio lo
scambio di bitcoin con beni e servizi, sia minoritaria rispetto alleconomia speculativa.
Abbiamo, infatti, osservato nella sezione 6.2, come il commercio abbia un volume inferiore a
tutti gli altri servizi disponibili nella rete. Finch leconomia sottostante rester debole il
valore dei bitcoins continuer ad oscillare instabilmente a causa delle speculazioni,
impedendo il suo utilizzo come valuta. Nel Capitolo 6 abbiamo osservato anche come
unaltissima percentuale delle monete sia trattenuta in dei depositi dagli utilizzatori iniziali,
non rendendola disponibile alleconomia reale. Non sappiamo se i proprietari mantengano
immobili queste somme in attesa di guadagni futuri o perch limprovvisa vendita di cos tanti
bitcoins potrebbe distruggerne il valore. Certo che il mercato bitcoin soffre di una mancanza
di liquidit. Per i nuovi utenti infatti costoso e complicato entrare nelleconomia. Se bitcoin
vuole diventare il primo mezzo di pagamenti elettronici al mondo, lacquisto di bitcoin deve
essere pi accessibile. Inoltre gli utenti devono essere incentivati a spendere i propri bitcoins
nella sua economia, piuttosto che affrettarsi a venderle presso un sito di cambio per ottenere
213

un guadagno speculativo. Il modello deflazionista di bitcoin, accentuato dalla sottrazione al


mercato di larga parte delle monete, il primo deterrente per gli utenti ad utilizzare bitcoin
come mezzo di pagamento, piuttosto che come bene rifugio. La vera potenzialit di bitcoin,
che era stata anche indicata dal suo fondatore (vedi sezione 1.3.4), il suo utilizzo come
mezzo di pagamento globale a costi minimi. Come abbiamo visto nella sezione 7.4, le
commissioni resteranno basse finch lutilizzo di bitcoin continuer ad espandersi. Il crescere
delleconomia aiuterebbe anche a stabilizzare il cambio e rafforzare i servizi, abbassando i
costi impliciti dovuti alla volatilit e ai rischi di frodi spiegati nella sezione 7.1.2 e diminuendo
lincentivo alla speculazione. Abbiamo visto nella sezione 7.1.4 come la capitalizzazione
odierna di bitcoin sia piccola rispetto alle economie e valute tradizionali ma non irrilevante, e
come la sua potenzialit sia molto maggiore dei valori attuali. Se bitcoin vuole sopravvivere
deve evolversi ed abbandonare lattuale modello di arricchimento veloce. Bitcoin deve
riscoprire le sue origini e tornare ad essere una valuta invece di un bene. Deve mirare ad un
futuro di valuta dominante per gli acquisti in rete. Lutilizzo diffuso di bitcoin permetterebbe
ai commercianti on-line di pagare commissioni bassissime sulle vendite e di avere costi di
gestione finanziaria quasi inesistenti. Possiamo ad esempio pensare a tutti quei siti che
offrono servizi digitali a prezzi bassi come i negozi di musica on-line, per i quali le
commissioni sono unalta percentuale del costo di una canzone. Possiamo immaginare startup
che nascano senza nessun costo, basterebbe un portafoglio gratuito per entrare subito
nelleconomia. Cerchiamo infine di pensare a tutti i nuovi servizi collegati che nascerebbero
sulleconomia, come servizi di assicurazioni contro le frodi, di protezione dei portafogli, di
tracciamento dei furti o servizi dascolto (come spiegato nella sezione 4.2.1). Le valute digitali
hanno la potenzialit di creare una nuova economia libera e democratica sulla rete, con costi
irrisori e potenzialit immense. Tutto questo per si basa sulla scelta degli utenti di non
considerarle come oro digitale, ma come il tipo di valuta del nuovo millennio. Come abbiamo
visto nel corso della tesi, bitcoin potrebbe fallire a causa delle promesse non mantenute in
fatto di decentralizzazione e privacy, ma gli va riconosciuto lindiscusso merito di aver portato
il concetto di valuta digitale allattenzione del grande pubblico di non specialisti. Anche se
bitcoin dovesse fallire molte altre valute digitali prenderanno il suo posto imparando dai suoi
errori. Le valute digitali offrono troppi vantaggi per poter essere considerate solo un
passeggero esperimento crittografico, sono destinate a giocare un importante ruolo nella
societ nel prossimo futuro.

Nellintroduzione ci eravamo chiesti se bitcoin fosse condannato ad un aumento delle


214

commissioni e ad una spirale deflazionista, possiamo ora rispondere di no (vedi Capitolo 7),
ammesso che il mercato reale cresca di importanza fino a soppiantare linteresse speculativo.
Se questo non avvenisse bitcoin sarebbe condannato ad essere chiuso in casseforti accanto
alloro, o ad essere dimenticato dalla storia. Bitcoin ancora troppo giovane per poter
esprimere un giudizio a riguardo, ma la crescita esponenziale di servizi e commercianti (sia
fisici che sulla rete) avvenuta nel 2013 pu farci ben sperare.

In conclusione quindi il nostro giudizio negativo su due delle promesse iniziali,


mentre cautamente ottimista sulla terza promessa.


215

Bibliografia

[1] Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, 2008

[2] Christian Decker, Roger Wattenhofer, Information Propagation in the Bitcoin Network,
in 13-th IEEE International Conference on Peer-to-Peer Computing, 2013

[3] Yogesh Malhotra, Bitcoin Protocol: Model of Cryptographic Proof Based Global Crypto-
Currency & Electronic Payments System, 2013

[4] Ghassan O. Karame, Elli Androulaki, Srdjan Capkun, Two Bitcoins at the Price of One?
Double-Spending Attacks on Fast Payments in Bitcoin, In Proceedings of the 2012 ACM
conference on Computer and communications security, CCS 12, pp. 906-917, New York,
USA, 2012

[5] Meni Rosenfeld, Analysis of hashrate-based double-spending, 2012


[6] Moshe Babaioff, Shahar Dobzinski, Sigal Oren, On Bitcoin and Red Balloons, In 13th
ACM Conference on Electronic Commerce, 2012

[7] Mihaela Iavorschi, The Bitcoin Project And The Free Market, CES Working Papers
Volume V, Issue 4, pp. 529-534, 2013

[8] Skunkworks, Hacking the Global Economy with GPUs or How I Learned to Stop Worrying
and Love Bitcoin, DEFCON 19, 2011

[9] Joshua A. Kroll, Ian C. Davey, and Edward W. Felten, The Economics of Bitcoin Mining,
or Bitcoin in the Presence of Adversaries, in The Twelfth Workshop on the Economics of
Information Security (WEIS 2013), Washington, USA, 2013

[10] Ittay Eyal, Emin Gn Sirer, Majority is not Enough: Bitcoin Mining is Vulnerable,
Cornell University, technical report, ArXiv e-prints, novembre 2013

[11] Lear Bahack, Theoretical Bitcoin Attacks with less then Half of the Computational
Power, draft, 2013, http://eprint.iarc.org/2013/868

[12] Nicolas T. Courtois, Lear Bahack , On Subversive Miner Strategies and Block
Withholding Attack in Bitcoin Digital Currency, arXiv:1402.1718v1, 2014

216

[13] Simon Barber, Xavier Boyen, Elaine Shi and Ersin Uzun, Bitter to Better How
to Make Bitcoin a Better Currency, Financial Cryptography and Data Security, Lecture
Notes in Computer Science Volume 7397, pp. 399-414, Springer 2012

[14] Danny Yuxing Huang, Profit-Driven Abuses of Virtual Currencies,
http://sysnet.ucsd.edu/ dhuang/pmwiki/uploads/Main/huang-research-exam.pdf,
UCSD, 2013

[15] Tyler Moore, Nicolas Christin, Beware the Middleman: Empirical Analysis of
Bitcoin-Exchange Risk, in Financial Cryptography, Lecture Notes in Computer Science
vol. 7859, pp.25-33, Springer, 2013

[16] Marie Vasek, Micah Thornton, and Tyler Moore, Empirical Analysis of Denial-of-
Service Attacks in the Bitcoin Ecosystem, in First Workshop on Bitcoin Research,
Lecture Notes in Computer Science, Springer, 2014

[17] Danny Yuxing Huang, Hitesh Dharmdasani, Sarah Meiklejohn, Vacha Dave, Chris
Grier, Damon McCoy, Stefan Savage, Alex C. Snoeren, Nicholas Weaver, and Kirill
Levchenko, Botcoin: Monetizing stolen cycles, In Proceedings of the Network and
Distributed System Security Symposium (NDSS), 2014

[18] Juan Caballero, Chris Grier, Christian Kreibich, and Vern Paxson, Measuring pay-
per-install: the commoditization of malware distribution, In Proceedings of the 20th
USENIX conference on Security, SEC11, Berckeley CA, USA, USENIX Association, 2011

[19] James Wyke, The ZeroAccess Botnet - Mining and Fraud for Massive Financial
Gain , Technical report, SophosLabs, 2012

[20] Sarah Meiklejohn, Marjori Pomarole, Grant Jordan, Kirill Levchenko, Damon
McCoy, Geoffrey M. Voelker, and Stefan Savage, A fistful of bitcoins: characterizing
payments among men with no names, In Proceedings of the 2013 conference on Internet
measurement conference, IMC 13, pp. 127-140, New York, USA, 2013

[21] Fergal Reid and Martin Harrigan, Security and Privacy in Social Networks,
chapter An Analysis of Anonymity in the Bitcoin System, pp. 197223. Springer, 2013

[22] Elli Androulaki, Ghassan O. Karame, Marc Roeschlin, Tobias Scherer, and Srdjan
Capkun, Evaluating User Privacy in Bitcoin, in Proceedings of Financial Cryptography
2013, 2013

[23] Malte Mser, Anonymity of Bitcoin Transactions: An Analysis of Mixing Services,
in Proceedings of Mnster Bitcoin Conference (MBC13), 2013

217

[24] Dorit. Ron and Adi Shamir, Quantitative analysis of the full bitcoin transaction
graph, in Financial Cryptography, pp. 6-24, 2013

[25] M. Ober, S. Katzenbeisser, and K. Hamacher, Structure and Anonymity of the
Bitcoin Transaction Graph, Future internet, pp. 237-250, 2013

[26] E. Androulaki, G. Karame, and M. Roeschlin, Evaluating User Privacy in Bitcoin,
IARC Cryptology ePrint Archive, p. 596, 2012

[27] Philip Koshy, Diana Koshy, and Patrick McDaniel, An Analysis of Anonymity in
Bitcoin Using P2P Network Traffic, Financial Cryptography and Data Security, 2014

[28] Ian Miers, Christina Garman, Matthew Green, and Aviel D. Rubin, Zerocoin:
Anonymous distributed e-cash from bitcoin, In Proceedings of the 2013 IEEE
Symposium on Security and Privacy, SP 13, pp. 397-411, Washington, USA, 2013, IEEE
Computer Society

[29] David Chaum, Blind signatures for untraceable payments, In Advances in


Cryptology: Proceedings of CRYPTO 82, pp.199-203, Plenum Press, 1983

[30] David Cahum, Amos Fiat, Moni Naor, Untraceable Electronic Cash (Extended
Abstract), in Advances in Cryptology: Proceedings of CRYPT0 '88, pp. 319-327, Springer-
Verlang, 1988

[31] Sunny King, Primecoin: Cryptocurrency with Prime Number Proof-of-Work

[32] The Litecoin Cryptocurrency Mining Rush And How To Take Advantage Of It
Today If We Act Quickly, Presented by Nimue CryptoMining,
LLC.http://www.nimuecrypto.com, 2013

[33] Sunny King, Scott Nadal, PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-
Stake

[34] Arvind Narayanan, What Happened to the Crypto Dream?, Part 1, IEEE Computer
and Reliability Societes, 2013

[35] Bitcoins Legacy And The Crypto-Currency Promise Part 1: Foundation, based on
blog posts at Red Planet Dust (redplanetdust.leika.nl), 2013

[36] Patrick Griffin, Phillip Rapoport, Ripple: a primer, Ripple Labs Inc.

218

[37] Nicolas Houy, It will cost you nothing to ''kill'' a Proof-of-Stake crypto-currency
[v.0.1], Universit di Lione, Francia, 2014

[38] Tim Sablik, Digital Currency New Private Currencies Like Bitcoin Offer
Potential and Puzzles, Econ Focus, Third Quarter, pp. 18-27, 2013

[39] Eric Hughes, A Cypherpunk's Manifesto, 1993

[40] Dravis Group, Bitcoin, Digital Currency and the Internet of Money, Dravis Group
LLC, San Francisco, USA, 2014

[41] Nicolas Christin, Traveling the Silk Road: a measurement analysis of a large
anonymous online marketplace, In Proceedings of the 22nd international conference on
World Wide Web, WWW 13, pp. 213-224, Republic and Canton of Geneva, Svizzera,
2013, International World Wide Web Conference Steering Committee

[42] Craig K. Elwell, M. Maureen Murphy, Michael V. Seitzinger, Bitcoin: Questions,


Answers, and Analysis of Legal Issues, Congressional Research Service, 2013

[43] David Woo, Ian Gordon, Vadim Iaralov, Bitcoin a first assessment, Bank of
America Merrill Lynch, 2013

[44] John Normand, The audacity of bitcoin - Risks and opportunities for corporates
and investors, J.P. Morgan Securities, 2014

[45] Katherine Sagona-Stophel, Bitcoin 101 How to get started with the new trend in
virtual currencies, Thomson Reuters, 2013

[46] Global Legal Research Directorate Staff, Regulation of Bitcoin in Selected


Jurisdictions, The Law Library of Congress, Global Legal Research Center, 2014

[47] Bruce Sterling, La Rete oscura come l'umanit e nessuno pu essere davvero
sicuro, la Repubblica, 11/04/2012

[48] European Central Bank, Virtual Currency Schemes, October 2012


[49] Department of the Treasury Financial Crimes Enforcement Network, Guidance


FIN-2013-G001 Issued: March 18, 2013 Subject: Application of FinCENs Regulations to
Persons Administering, Exchanging, or Using Virtual Currencies, 2013

219

[50] William J. Luther, Josiah Olson, Bitcoin is Memory, 2013



[51] Omri Marian, Are Cryptocurrencies Super Tax Havens?, Michigan Law Review
First Impressions, vol. 112:38, pp. 38-48, 2013

[52] Crisis Strategy Draft, MtGox Unredacted, 2014

[53] Nick Bennenbroek, Special Edition Bitcoin 101: A Primer, Wells Fargo Securities,
LLC Foreign Exchange Research, 2014

[54] Banca dItalia, Rapporto sulla stabilit finanziaria, numero 1, maggio 2014

[55] BBVA Research, Economic Analysis Bitcoin: A Chapter in Digital Currency
Adoption, Economic Watch Global, BBVA research, 2013

[56] Lars Holdgaard, An Exploartion of the Bitcoin Ecosystem, www.Bitcoin-
Expert.net, 2014


[57] Linda Levine, An Analysis of the Distribution of Wealth Across Households, 1989-
2010, Congressional Research Service, 17 luglio 2012

[58] Damiano Piermartini, Applicazioni Crittografiche e Teoria delle Curve Ellittiche,


universit degli studi di Siena, Tesi triennale nel corso di laurea in scienza e teoria
dell'informatica, anno accademico 2009/2010

[59] Description of SHA-256, SHA-384 and SHA-512, NIST,


http://csrc.nist.gov/groups/STM/cavp/documents/shs/sha256-384-512.pdf

[60] Adam Back , Hashcash - A Denial of Service Counter-Measure , 2002

[61] Hans Dobbertin, Antoon Bosselaers, Bart Preneel, RIPEMD-160: A Strengthened
Version of RIPEMD, Fast Software Encryption, LNCS 1039, pp. 71-82, Springer-Verlang,
1996


[62] Bart Preneel, Antoon Bosselaers, Hans Dobbertin, The Cryptographic Hash
Function RIPEMD-160, in RSA Laboratories' CryptoBytes The technical newsletter of RSA
Laboratories, a division of RSA Data Security, Inc., Volume 3, Number 2 Autumn 1997

[63] Colin Percival , scrypt: A new key derivation function Doing our best to thwart
220

TLAs armed with ASICs , Tarsnap, 2009



[64] Daniel J. Bernstein , Erik Dahmen , Johannes Buchmann , Post-Quantum
Cryptography, Springer, 2009

[65] Standards For Efficient Cryptography - SEC 2: Recommended Elliptic Curve
Domain Parameters, Certicom Research, Version 1.0, 2000

[66] Christian Decker, Roger Wattenhofer, Bitcoin Transaction Malleability and
MtGox, arXiv:1403.6676v1, 2014

[67] Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, and ukasz
Mazurek, How to deal with malleability of BitCoin transactions, arXiv:1312.3230v1,
2013

[68] Denis Jaromil Roio, Bitcoin, the end of the Taboo on Money, version 1.0, Dyne.org
Digital Press, 2013

[69] 2014 Federal Reserve Note Print Order, Federal Reserve, 2014

[70] World Payments Report 2013, Capgemini and Royal Bank of Scotland (RBS),
2013

[71] Hugh Thomas, Amit Jain, Michael Angus, MasterCard Advisors Cashless Journey -
The Global Journey From Cash to Cashless, World Beyond Cash, MasterCard, 2013

[72] IRS Notice 2014-21, Internal Revenue Service (IRS), 2014

[73] Wallace, B. The Rise and Fall of Bitcoin, Wired Magazine, 23 novembre 2011


[74] http://www.wired.com/magazine/2011/11/mf_bitcoin/all/

[75] https://coinbase.com/about

[76] http://en.wikipedia.org/wiki/Merkle_tree

[77] http://en.wikipedia.org/wiki/SHA-256

221

[78] http://en.wikipedia.org/wiki/RIPEMD-160

[79] http://en.wikipedia.org/wiki/Botnet

[80] https://blockchain.info/pools

[81] https://en.bitcoin.it/wiki/Protocol_rules

[82] https://en.bitcoin.it/wiki/Hardfork_Wishlist

[83] https://en.bitcoin.it/wiki/Protocol_Specification


[84] http://www.coindesk.com/tag/carbon-series/

[85] http://www.ecb.europa.eu/euro/banknotes/html/environment.en.html

[86] https://en.bitcoin.it/wiki/Scalability

[87] https://en.bitcoin.it/wiki/Difficulty

[88] https://en.bitcoin.it/wiki/Target

[89] https://blockchain.info/taint/

[90] http://coinmarketcap.com/

[91] https://en.bitcoin.it/wiki/Litecoin

[92] https://litecoin.info/Main_Page

[93] http://en.wikipedia.org/wiki/Litecoin

[94] http://peercoin.net/

[95] http://en.wikipedia.org/wiki/Peercoin

222

[96] http://primecoin.org//

[97] http://en.wikipedia.org/wiki/Primecoin

[98] https://github.com/primecoin/primecoin/wiki/_pages

[99] https://www.namecoin.org/

[100] https://en.bitcoin.it/wiki/Namecoin

[101] http://en.wikipedia.org/wiki/Namecoin

[102] http://en.wikipedia.org/wiki/Ripple_(payment_protocol)

[103] https://ripple.com/wiki/Main_Page

[104] https://en.bitcoin.it/wiki/Myths

[105] http://www.forbes.com/sites/kashmirhill/2013/12/26/how-you-should-have-
spent-100-in-2013-hint-bitcoin/

[106] http://www.macroaxis.com/invest/ratio/Market_Capitalization

[107] http://data.worldbank.org/indicator/CM.MKT.LCAP.CD

[108] http://www.coinometrics.com/bitcoin/tix

[109] http://www.federalreserve.gov/foia/2014currency.htm

[110] https://en.bitcoin.it/wiki/Mining_hardware_comparison

[111] https://blockchain.info/it/charts/hash-rate

[112] https://blockchain.info/it/charts/transaction-fees

[113] https://blockchain.info/it/charts/output-volume

223

[114] https://blockchain.info/it/charts/estimated-transaction-volume

[115] http://en.wikipedia.org/wiki/Electricity_pricing

[116] https://blockchain.info/charts/n-transactions

[117] http://bitcoincharts.com/charts/volumepie/

[118] http://mag.newsweek.com/2014/03/14/bitcoin-satoshi-nakamoto.html


[119] https://cloudhashing.com/

Das könnte Ihnen auch gefallen