Bitcoin, cripto-valute e altre applicazioni.
Descrizione bottom-up della tecnologia blockchain, partendo dal caso emblematico di Bitcoin e generalizzando fino agli Smart Contracts
A gentle introduction to the Blockchain and Smart Contracts
Introduzione alla Blockchain
1. Introduzione alla Blockchain
Bitcoin, cripto-valute e altre applicazioni
Giovanni Ciatto
giovanni.ciatto@unibo.it
Dipartimento di Informatica – Scienza e Ingegneria (DISI)
Alma Mater Studiorum – Universit`a di Bologna a Cesena
15 Novembre 2017
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 1 / 40
2. Panoramica della presentazione
1 Riflessioni sui concetti di “denaro”, “propriet`a” e “fiducia” (trust)
2 Bitcoin: il contante digitale e P2P di Satoshi Nakamoto
Strumenti crittografici
Transazioni e blocchi in Bitcoin
Proof-of-Work & Mining
3 Problemi aperti di Blockchain, Bitcoin e criptovalute
4 Applicazioni presenti e future della Blockchain: oltre le criptovalute
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 2 / 40
3. Il denaro contante
Denaro contante = gettoni1 + valore convenzionale
facili da riconoscere, difficili da riprodurre
intercambili e additivi
1
in inglese “tokens”
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 3 / 40
4. Il denaro contante
Denaro contante = gettoni1 + valore convenzionale
facili da riconoscere, difficili da riprodurre
intercambili e additivi
Propriet`a del denaro = Possesso dei gettoni
1
in inglese “tokens”
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 3 / 40
5. Il denaro contante
Denaro contante = gettoni1 + valore convenzionale
facili da riconoscere, difficili da riprodurre
intercambili e additivi
Propriet`a del denaro = Possesso dei gettoni
Trasferimento propriet`a = cessione gettoni:
immediato e istantaneo
richiede (solo) fiducia nel ricevente
impossibile spendere due volte lo stesso gettone
1
in inglese “tokens”
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 3 / 40
6. Il sistema bancario
Trasferimento denaro su rete → banca
denaro = voce database
associa denaro a proprietario
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 4 / 40
7. Il sistema bancario
Trasferimento denaro su rete → banca
denaro = voce database
associa denaro a proprietario
Banca = intermediario
identifica mittente e destinario
evita conto in rosso
aggiorna le propriet`a
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 4 / 40
8. La banca, rispetto al contante
Costi di gestione per trasferimenti
Suscettibile a leggi locali
Autorit`a, necessita fiducia
Mantiene consistente un sistema distribuito
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 5 / 40
9. Il problema della consistenza sulla rete
Consistenza sulla rete
Alice e Bob hanno un conto in comune con 1.050e.
Alice preleva 100e dall’Italia
contemporaneamente Bob preleva 1000e dagli USA
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 6 / 40
10. L’idea di Satoshi Nakamoto
Contante digitale: un meccanismo che permetta di effettuare trasferimenti
consistenti e sicuri di valore sulla rete, senza intermediari
di cui doversi fidare.
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 7 / 40
11. L’idea di Satoshi Nakamoto
Contante digitale: un meccanismo che permetta di effettuare trasferimenti
consistenti e sicuri di valore sulla rete, senza intermediari
di cui doversi fidare.
Requisiti gettone:
di valore: permette l’acquisto di beni e servizi
sicuro: cedibile solo previo assenso del proprietario
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 7 / 40
12. L’idea di Satoshi Nakamoto
Contante digitale: un meccanismo che permetta di effettuare trasferimenti
consistenti e sicuri di valore sulla rete, senza intermediari
di cui doversi fidare.
Requisiti gettone:
di valore: permette l’acquisto di beni e servizi
sicuro: cedibile solo previo assenso del proprietario
Requisiti sistema monetario:
consistenza: evitare il double-spending
senza intermediari : nessun costo, nessuno pu`o alterare la propriet`a dei
gettoni, nessuno pu`o impedire transazioni
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 7 / 40
13. Problemi del contante digitale
Vari formati di gettone:
{"val": 5}
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 8 / 40
14. Problemi del contante digitale
Vari formati di gettone:
{"val": 5}
Valore?
Proprietario?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 8 / 40
15. Problemi del contante digitale
Vari formati di gettone:
{"val": 5} {"val": 5,
"prop": "Alice"}
Valore?
Proprietario?
Produzione illimitata di gettoni?
Duplicazione illimitata di gettoni?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 8 / 40
16. Problemi del contante digitale
Vari formati di gettone:
{"val": 5} {"val": 5,
"prop": "Alice"}
Valore?
Proprietario?
Produzione illimitata di gettoni?
Duplicazione illimitata di gettoni?
Double-spending?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 8 / 40
17. Punto della situazione
1 Riflessioni sui concetti di “denaro”, “propriet`a” e “fiducia” (trust)
2 Bitcoin: il contante digitale e P2P di Satoshi Nakamoto
Strumenti crittografici
Transazioni e blocchi in Bitcoin
Proof-of-Work & Mining
3 Problemi aperti di Blockchain, Bitcoin e criptovalute
4 Applicazioni presenti e future della Blockchain: oltre le criptovalute
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 9 / 40
18. Garantire integrit`a
Integrit`a: capire se i dati sono stati alterati
Funzione di hash a-una-via
hash( )
input → hash
× hash → input
× 2 input con stesso hash
piccola variazione input →
grande variazione hash
hash("Alice->Bob: 1 $"): "47130aff04451de6fbf0765bd059594a"
hash("Alice->Bob: 2 $"): "3a876bdfb02a620e183458300569264f"
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 10 / 40
19. Garantire autenticit`a
Autenticit`a: capire se un dato `e stato prodotto da me o no
Crittografia a-simmetrica: chiave pubblica e chiave privata
?
?
creare coppia di chiavi
decifrare con chiave giusta
× decifrare con chiave sbagliata
× trovare una chiave avendo l’altra
! Cifrare con chiave privata → autenticit`a
! Chiave pubblica ≈ identificatore utente
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 11 / 40
20. Firma digitale = integrit`a + autenticit`a
hash( )
hash( )
=
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 12 / 40
21. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
22. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Alice : 7 e
Bob : 0 e
Carl : 0 e
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
23. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Alice : 1 e
Bob : 3 e
Carl : 3 e
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
24. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Alice : 1 e
Bob : 2 e
Carl : 4 e
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
25. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
7
−→ Alice
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
26. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
7
−→ Alice
Alice
3
−→ Bob
Alice
3
−→ Carl
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
27. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
7
−→ Alice
Alice
3
−→ Bob
Alice
3
−→ Carl
Bob
1
−→ Carl
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
28. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
var 0 :
7
−→ Alice
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
29. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
var 0 :
7
−→ Alice
var 1 : var 0
3
−→ Bob
var 2 : var 0
3
−→ Carl
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
30. Istantanea VS Flusso
Istantanea:
Memorizza stato
Operazioni per variare stato
Flusso:
Memorizza variazioni
Operazioni per calcolare stato
var 0 :
7
−→ Alice
var 1 : var 0
3
−→ Bob
var 2 : var 0
3
−→ Carl
var 3 : var 1
1
−→ Carl
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 13 / 40
31. Le transazioni: i gettoni di Bitcoin
Transazione: trasferimento firmato di
valore da un proprietario da
un altro
Ogni transazione contiene:
1. hash transazione precedente
2. chiave pubblica destinatario
3. firma mittente
4. valore da trasferire
hash( )
Alice
???
Val
hash( )
Bob
Alice
Val
hash( )
Carl
Bob
Val
! Solo mittente pu`o firmare la transazione
! Ogni transazione ne consuma un’altra
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 14 / 40
32. I blocchi: il libro mastro di Bitcoin I
Blocco: sequenza inviolabile di
transazioni, certamente valide
a partire da un certo istante
1. hash blocco precedente
2. nonce
3. timestamp blocco corrente
4. lista di transazioni valide
hash( )
TXs
Nonce
Timestamp
hash( )
TXs
Nonce
Timestamp
hash( )
TXs
Nonce
Timestamp
Alterazione blocco i → hash sbagliato nel blocco i + 1
→ Catena di blocchi = storia di tutte le transazioni
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 15 / 40
34. Creazione blocco
Pubblicazione nuovo blocco ogni ∆T secondi
Algoritmo: creazione nuovo blocco
Calcola hash blocco precedente.
Ascolta pubblicazione transazioni per ∆T secondi
valida ogni transazione
Alla fine dei ∆T secondi: pubblica blocco.
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 16 / 40
35. Creazione blocco
Pubblicazione nuovo blocco ogni ∆T secondi
Algoritmo: creazione nuovo blocco
Calcola hash blocco precedente.
Ascolta pubblicazione transazioni per ∆T secondi
valida ogni transazione
Alla fine dei ∆T secondi: pubblica blocco.
Transazioni rimaste fuori dal blocco non esistono
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 16 / 40
36. Creazione blocco
Pubblicazione nuovo blocco ogni ∆T secondi
Algoritmo: creazione nuovo blocco
Calcola hash blocco precedente.
Ascolta pubblicazione transazioni per ∆T secondi
valida ogni transazione
Alla fine dei ∆T secondi: pubblica blocco.
Transazioni rimaste fuori dal blocco non esistono
Chi crea i blocchi ha un potere immenso
p.e. esclusione chiave pubblica
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 16 / 40
37. Chi crea i blocchi?
× Sempre lo stesso nodo =⇒ centralizzazione, autorit`a
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 17 / 40
38. Chi crea i blocchi?
× Sempre lo stesso nodo =⇒ centralizzazione, autorit`a
× Tutti i nodi, contemporaneamente =⇒ problemi di consistenza
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 17 / 40
39. Chi crea i blocchi?
× Sempre lo stesso nodo =⇒ centralizzazione, autorit`a
× Tutti i nodi, contemporaneamente =⇒ problemi di consistenza
∼ Tutti i nodi, a turno
come gestire turni?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 17 / 40
40. Chi crea i blocchi?
× Sempre lo stesso nodo =⇒ centralizzazione, autorit`a
× Tutti i nodi, contemporaneamente =⇒ problemi di consistenza
∼ Tutti i nodi, a turno
come gestire turni?
∼ Tutti i nodi, a caso
come scegliere un nodo a caso?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 17 / 40
41. Chi crea i blocchi?
× Sempre lo stesso nodo =⇒ centralizzazione, autorit`a
× Tutti i nodi, contemporaneamente =⇒ problemi di consistenza
∼ Tutti i nodi, a turno
come gestire turni?
∼ Tutti i nodi, a caso
come scegliere un nodo a caso?
Alcuni nodi, in competizione
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 17 / 40
42. Proof-of-Work (PoW)
Proof-of-Work: un blocco `e valido se chi l’ha prodotto dimostra di aver
eseguito un algoritmo molto oneroso
! cosa facile da verificare
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 18 / 40
43. Proof-of-Work (PoW)
Proof-of-Work: un blocco `e valido se chi l’ha prodotto dimostra di aver
eseguito un algoritmo molto oneroso
! cosa facile da verificare
Creazione dei blocchi con PoW
Tutti i nodi provano, contemporaneamente:
a costruire il prossimo blocco
a risolvere un puzzle computazionale
il primo che ci riesce, pu`o pubblicare il blocco e la PoW
∼1 blocco ogni ∆T difficolt`a puzzle
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 18 / 40
44. Proof-of-Work (PoW)
Proof-of-Work: un blocco `e valido se chi l’ha prodotto dimostra di aver
eseguito un algoritmo molto oneroso
! cosa facile da verificare
Creazione dei blocchi con PoW
Tutti i nodi provano, contemporaneamente:
a costruire il prossimo blocco
a risolvere un puzzle computazionale
il primo che ci riesce, pu`o pubblicare il blocco e la PoW
∼1 blocco ogni ∆T difficolt`a puzzle
Puzzle computazionale di Bitcoin
Blocco valido ⇔ hash del blocco comincia con N zeri
forza bruta sul nonce
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 18 / 40
45. Consenso sulla catena di blocchi
Consenso: tutti i nodi della rete devono concordare su quale sia la
catena di blocchi di riferimento
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 19 / 40
46. Consenso sulla catena di blocchi
Consenso: tutti i nodi della rete devono concordare su quale sia la
catena di blocchi di riferimento
Strategia per il consenso
1. Pubblicazione blocco = multi-cast a vicini
2. Blocco ricevuto valido se
transazioni valide
hash precedente valido
puzzle computazionale risolto
3. Si considera sempre la catena pi`u lunga
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 19 / 40
47. Consenso sulla catena di blocchi
Consenso: tutti i nodi della rete devono concordare su quale sia la
catena di blocchi di riferimento
Strategia per il consenso
1. Pubblicazione blocco = multi-cast a vicini
2. Blocco ricevuto valido se
transazioni valide
hash precedente valido
puzzle computazionale risolto
3. Si considera sempre la catena pi`u lunga
! Consenso distribuito su storia trasazioni
→ no autorit`a, no single-point-of-failure
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 19 / 40
48. PoW e double-speding
PoW consuma molte risorse
→ d`a valore ai gettoni
→ impedisce double-spending
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 20 / 40
49. PoW e double-speding
PoW consuma molte risorse
→ d`a valore ai gettoni
→ impedisce double-spending
hash( )
Nonce
Timestamp
hash( )
A→B
Nonce
Timestamp
B→C
hash( )
Nonce
Timestamp
B→X
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 20 / 40
50. PoW e double-speding
PoW consuma molte risorse
→ d`a valore ai gettoni
→ impedisce double-spending
hash( )
Nonce
Timestamp
hash( )
A→B
Nonce
Timestamp
B→C
hash( )
Nonce
Timestamp
B→X
! Che vantaggio hanno i nodi?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 20 / 40
51. PoW, mining e immissione di moneta
Risoluzione puzzle computazione → ricompensa X gettoni
Mining: processo di risoluzione del puzzle computazionale
Miner: nodo che pratica mining
- volto al benessere del sistema?
- volto al guadagno?
Ipotesi di fondo: miner razionali
comportamenti positivi non imposti ma incentivati
comportamenti negativi non impediti ma disincentivati
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 21 / 40
52. Panoramica della presentazione
1 Riflessioni sui concetti di “denaro”, “propriet`a” e “fiducia” (trust)
2 Bitcoin: il contante digitale e P2P di Satoshi Nakamoto
Strumenti crittografici
Transazioni e blocchi in Bitcoin
Proof-of-Work Mining
3 Problemi aperti di Blockchain, Bitcoin e criptovalute
4 Applicazioni presenti e future della Blockchain: oltre le criptovalute
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 22 / 40
53. Consenso probabilistico I
Avversario con molto hashing-power pu`o tentare DSA
hash( )
Nonce
Timestamp
hash( )
A→B
Nonce
Timestamp
B→C
hash( )
Nonce
Timestamp
C→D
hash( )
Nonce
Timestamp
B→X
hash( )
Nonce
Timestamp
X→Y
hash( )
Nonce
Timestamp
Y→Z
Quando un blocco `e accettato dal consenso della rete?
Quando una transazione si cosidera valida?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 23 / 40
54. Consenso probabilistico II
r = hash pow. avversario
hash pow. onesti Pr (n) = 1 − n
k=0
(nr)k e−nr
k! (1 − rz−k)
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1 2 3 4 5 6 7 8 9 10
P(n)-ProbabilitàsuccessoDSA
n - Numero di blocchi
10%
15%
20%
25%
30%
35%
40%
In Bitcoin
Transazioni ok se
n = 6
circa 1h se
∆T = 10m
ok se
hash pow.
avversario
13%
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 24 / 40
55. Lunghezza della Blockchain
Blockchain contiene tutte le transazioni avvenute in Bitcoin dalla nascita
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 25 / 40
56. Lunghezza della Blockchain
Blockchain contiene tutte le transazioni avvenute in Bitcoin dalla nascita
→ impossibile dimenticare il passato (bug or feature?)
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 25 / 40
57. Lunghezza della Blockchain
Blockchain contiene tutte le transazioni avvenute in Bitcoin dalla nascita
→ impossibile dimenticare il passato (bug or feature?)
× crescita dimensione continua → full/light nodes, merkle-trees
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 25 / 40
58. Lunghezza della Blockchain
Blockchain contiene tutte le transazioni avvenute in Bitcoin dalla nascita
→ impossibile dimenticare il passato (bug or feature?)
× crescita dimensione continua → full/light nodes, merkle-trees
× lunga sincronizzazione iniziale =⇒ barriera d’accesso alla rete
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 25 / 40
59. Lunghezza della Blockchain
Blockchain contiene tutte le transazioni avvenute in Bitcoin dalla nascita
→ impossibile dimenticare il passato (bug or feature?)
× crescita dimensione continua → full/light nodes, merkle-trees
× lunga sincronizzazione iniziale =⇒ barriera d’accesso alla rete
× difficile garantire privacy → Zerocoin, Zerocash, . . .
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 25 / 40
60. Distribuzione hash-power
Calcolo parallelo + HW ad-hoc ⇒ hashing power ⇒ P(Bitcoin)
(leggasi Mining-Farm)
2
in Bitcoin ogni 2016 blocchi (∼2 sett.)
https://bitcoinwisdom.com/bitcoin/difficulty
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 26 / 40
61. Distribuzione hash-power
Calcolo parallelo + HW ad-hoc ⇒ hashing power ⇒ P(Bitcoin)
(leggasi Mining-Farm)
E(∆T) = const =⇒ auto-organizzazione difficolt`a mining2
↑hash power ⇒ ↑difficolt`a ⇒ ↑hash power ⇒ . . .
2
in Bitcoin ogni 2016 blocchi (∼2 sett.)
https://bitcoinwisdom.com/bitcoin/difficulty
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 26 / 40
62. Distribuzione hash-power
Calcolo parallelo + HW ad-hoc ⇒ hashing power ⇒ P(Bitcoin)
(leggasi Mining-Farm)
E(∆T) = const =⇒ auto-organizzazione difficolt`a mining2
↑hash power ⇒ ↑difficolt`a ⇒ ↑hash power ⇒ . . .
business richiede molti investimenti
2
in Bitcoin ogni 2016 blocchi (∼2 sett.)
https://bitcoinwisdom.com/bitcoin/difficulty
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 26 / 40
63. Distribuzione hash-power
Calcolo parallelo + HW ad-hoc ⇒ hashing power ⇒ P(Bitcoin)
(leggasi Mining-Farm)
E(∆T) = const =⇒ auto-organizzazione difficolt`a mining2
↑hash power ⇒ ↑difficolt`a ⇒ ↑hash power ⇒ . . .
business richiede molti investimenti
barriera d’accesso alla criptovaluta sempre pi`u alta
2
in Bitcoin ogni 2016 blocchi (∼2 sett.)
https://bitcoinwisdom.com/bitcoin/difficulty
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 26 / 40
64. Distribuzione hash-power
Calcolo parallelo + HW ad-hoc ⇒ hashing power ⇒ P(Bitcoin)
(leggasi Mining-Farm)
E(∆T) = const =⇒ auto-organizzazione difficolt`a mining2
↑hash power ⇒ ↑difficolt`a ⇒ ↑hash power ⇒ . . .
business richiede molti investimenti
barriera d’accesso alla criptovaluta sempre pi`u alta
× one-CPU-one-vote, proposta iniziale di Nakamoto
PoW alternative?
2
in Bitcoin ogni 2016 blocchi (∼2 sett.)
https://bitcoinwisdom.com/bitcoin/difficulty
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 26 / 40
65. Distribuzione ricchezza
L’immissione di Bitcoin diminuisce esponenzialmente: ricompensa X
dimezza ogni 210k blocchi3
3
http://www.bitcoinblockhalf.com/
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 27 / 40
66. Distribuzione ricchezza
L’immissione di Bitcoin diminuisce esponenzialmente: ricompensa X
dimezza ogni 210k blocchi3
time:
10.5M
21.0M
2009 +4
years
blocks:
+8 +12 +16 +20 +24
210k0 420k 630k 840k 1.05M 1.26M
50 BTC/
block
25 BTC/
block
12.5
6.25
3.125
1.5625 0.78125
TotalBTCInExistence
(image from [10])
3
http://www.bitcoinblockhalf.com/
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 27 / 40
67. Distribuzione ricchezza
L’immissione di Bitcoin diminuisce esponenzialmente: ricompensa X
dimezza ogni 210k blocchi3
time:
10.5M
21.0M
2009 +4
years
blocks:
+8 +12 +16 +20 +24
210k0 420k 630k 840k 1.05M 1.26M
50 BTC/
block
25 BTC/
block
12.5
6.25
3.125
1.5625 0.78125
TotalBTCInExistence
(image from [10])
In futuro i miner guadagneranno solo con transaction fees
3
http://www.bitcoinblockhalf.com/
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 27 / 40
68. Distribuzione ricchezza
L’immissione di Bitcoin diminuisce esponenzialmente: ricompensa X
dimezza ogni 210k blocchi3
time:
10.5M
21.0M
2009 +4
years
blocks:
+8 +12 +16 +20 +24
210k0 420k 630k 840k 1.05M 1.26M
50 BTC/
block
25 BTC/
block
12.5
6.25
3.125
1.5625 0.78125
TotalBTCInExistence
(image from [10])
In futuro i miner guadagneranno solo con transaction fees
Diversi modelli d’inflazione? P.e. Ethereum
3
http://www.bitcoinblockhalf.com/
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 27 / 40
69. Complessit`a e auto-organizzazione
Molti aspetti, fortemente interrelati. Difficile modificare parametri.
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 28 / 40
70. Complessit`a e auto-organizzazione
Molti aspetti, fortemente interrelati. Difficile modificare parametri.
Tempo medio
produzione blocco
Difficoltà
mining
Sicurezza
Centralizzazione
Barriera
d'accesso
Hash power
totaleImmissione
moneta
Valore
criptovaluta
Applicazioni
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 28 / 40
71. Altri problemi
Tendenza alla centralizzazione
p.e. Mining-pools
p.e. Transaction-fees
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 29 / 40
72. Altri problemi
Tendenza alla centralizzazione
p.e. Mining-pools
p.e. Transaction-fees
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 29 / 40
73. Altri problemi
Tendenza alla centralizzazione
p.e. Mining-pools
p.e. Transaction-fees
Aggiornamento lento stato del sistema
p.e. proibitivo per vendita al dettaglio
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 29 / 40
74. Altri problemi
Tendenza alla centralizzazione
p.e. Mining-pools
p.e. Transaction-fees
Aggiornamento lento stato del sistema
p.e. proibitivo per vendita al dettaglio
Attivit`a criminali
p.e. vendita beni illegali
p.e. evasione fiscale
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 29 / 40
75. Altri problemi
Tendenza alla centralizzazione
p.e. Mining-pools
p.e. Transaction-fees
Aggiornamento lento stato del sistema
p.e. proibitivo per vendita al dettaglio
Attivit`a criminali
p.e. vendita beni illegali
p.e. evasione fiscale
Vuoto legislativo
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 29 / 40
76. Altri problemi
Tendenza alla centralizzazione
p.e. Mining-pools
p.e. Transaction-fees
Aggiornamento lento stato del sistema
p.e. proibitivo per vendita al dettaglio
Attivit`a criminali
p.e. vendita beni illegali
p.e. evasione fiscale
Vuoto legislativo
Consumo energetico considerevole
alternative a PoW?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 29 / 40
77. Panoramica della presentazione
1 Riflessioni sui concetti di “denaro”, “propriet`a” e “fiducia” (trust)
2 Bitcoin: il contante digitale e P2P di Satoshi Nakamoto
Strumenti crittografici
Transazioni e blocchi in Bitcoin
Proof-of-Work Mining
3 Problemi aperti di Blockchain, Bitcoin e criptovalute
4 Applicazioni presenti e future della Blockchain: oltre le criptovalute
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 30 / 40
78. La Blockchain oltre Bitcoin
Generalizzazione di Bitcoin (parte 1):
Database distribuito, inviolabile e append-only
Ad ogni id-utente associa dati arbitrari
p.e. quantit`a di denaro
Manipolazione consistente dei dati, previa autorizzazione
p.e. trasferimento di denaro
Un meccanismo efficace per consenso
p.e. PoW
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 31 / 40
79. Applicazine: registro sicuro
Hp: Memorizzare dati arbitrari oltre al denaro
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 32 / 40
80. Applicazine: registro sicuro
Hp: Memorizzare dati arbitrari oltre al denaro
Smart-property al posto di atti notarili (auto, casa, terreni, etc)
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 32 / 40
81. Applicazine: registro sicuro
Hp: Memorizzare dati arbitrari oltre al denaro
Smart-property al posto di atti notarili (auto, casa, terreni, etc)
Identiti`a digitale (carte identit`a, passaporti, cartelle cliniche, nascite)
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 32 / 40
82. Applicazine: registro sicuro
Hp: Memorizzare dati arbitrari oltre al denaro
Smart-property al posto di atti notarili (auto, casa, terreni, etc)
Identiti`a digitale (carte identit`a, passaporti, cartelle cliniche, nascite)
Bilanci condivisi tra le aziende (e/o il fisco)
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 32 / 40
83. Applicazine: registro sicuro
Hp: Memorizzare dati arbitrari oltre al denaro
Smart-property al posto di atti notarili (auto, casa, terreni, etc)
Identiti`a digitale (carte identit`a, passaporti, cartelle cliniche, nascite)
Bilanci condivisi tra le aziende (e/o il fisco)
Gestione brevetti, copyright, propriet`a intellettuale
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 32 / 40
84. Applicazine: registro sicuro
Hp: Memorizzare dati arbitrari oltre al denaro
Smart-property al posto di atti notarili (auto, casa, terreni, etc)
Identiti`a digitale (carte identit`a, passaporti, cartelle cliniche, nascite)
Bilanci condivisi tra le aziende (e/o il fisco)
Gestione brevetti, copyright, propriet`a intellettuale
Domain-Name-Service (DNS)
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 32 / 40
85. Verso gli smart contract I
Transazioni Bitcoin supportano pi`u schemi di verifica delle firme
Linguaggio di programmazione per transazioni
Firma digitale → programma validante
Computazioni arbitrarie
p.e. firma singola, firma multipla, . . .
eseguite da tutti i miner
! Linguaggio minimale
hash( )
Alice
Val
Code
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 33 / 40
86. Verso gli smart contract II
Generalizzazione di Bitcoin (parte 2):
Database distribuito, inviolabile e append-only
Ad ogni id-utente associa dati
p.e. quantit`a di denaro
p.e. programmi
Esecuzione di codice arbitrario sui dati
in maniera consistente e distribuita (tra i miner)
previa autorizzazione del proprietario
Un meccanismo efficace per consenso
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 34 / 40
87. Smart contracts – Intuizione
Smart Contract4: programma eseguito all’unisono da tutta la rete
4
Ethereum, Hyperledger
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 35 / 40
88. Smart contracts – Intuizione
Smart Contract4: programma eseguito all’unisono da tutta la rete
Codice sorgente pubblico e immutabile
4
Ethereum, Hyperledger
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 35 / 40
89. Smart contracts – Intuizione
Smart Contract4: programma eseguito all’unisono da tutta la rete
Codice sorgente pubblico e immutabile
Reattivo alle transazioni degli utenti
4
Ethereum, Hyperledger
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 35 / 40
90. Smart contracts – Intuizione
Smart Contract4: programma eseguito all’unisono da tutta la rete
Codice sorgente pubblico e immutabile
Reattivo alle transazioni degli utenti
Dotato di stato persistente e pubblico
4
Ethereum, Hyperledger
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 35 / 40
91. Smart contracts – Intuizione
Smart Contract4: programma eseguito all’unisono da tutta la rete
Codice sorgente pubblico e immutabile
Reattivo alle transazioni degli utenti
Dotato di stato persistente e pubblico
∼ Capaci di gestire denaro in modo trasparente
4
Ethereum, Hyperledger
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 35 / 40
92. Smart contracts – Applicazioni
Contratto cartaceo → smart-contract pubblico e inviolabile
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 36 / 40
93. Smart contracts – Applicazioni
Contratto cartaceo → smart-contract pubblico e inviolabile
Automatizzazione contratti commerciali
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 36 / 40
94. Smart contracts – Applicazioni
Contratto cartaceo → smart-contract pubblico e inviolabile
Automatizzazione contratti commerciali
Distributed Autonomous Organizations (DAOs)
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 36 / 40
95. Smart contracts – Applicazioni
Contratto cartaceo → smart-contract pubblico e inviolabile
Automatizzazione contratti commerciali
Distributed Autonomous Organizations (DAOs)
Votazioni digitali
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 36 / 40
96. Smart contracts – Applicazioni
Contratto cartaceo → smart-contract pubblico e inviolabile
Automatizzazione contratti commerciali
Distributed Autonomous Organizations (DAOs)
Votazioni digitali
Social-network e/o giornali non censurabili
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 36 / 40
97. Smart contracts – Applicazioni
Contratto cartaceo → smart-contract pubblico e inviolabile
Automatizzazione contratti commerciali
Distributed Autonomous Organizations (DAOs)
Votazioni digitali
Social-network e/o giornali non censurabili
Coordinazione di dispositivi IoT
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 36 / 40
98. Smart contracts – Problemi aperti
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
99. Smart contracts – Problemi aperti
× Privacy e segretezza dello stato
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
100. Smart contracts – Problemi aperti
× Privacy e segretezza dello stato
× Esecuzione posticipata di codice
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
101. Smart contracts – Problemi aperti
× Privacy e segretezza dello stato
× Esecuzione posticipata di codice
× Computazioni situate
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
102. Smart contracts – Problemi aperti
× Privacy e segretezza dello stato
× Esecuzione posticipata di codice
× Computazioni situate
∼ Invio di eventi all’esterno della Blockchain
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
103. Smart contracts – Problemi aperti
× Privacy e segretezza dello stato
× Esecuzione posticipata di codice
× Computazioni situate
∼ Invio di eventi all’esterno della Blockchain
∼ Gestione Turing-completezza
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
104. Conclusioni
Cripto-valute: potenzialit`a e pericoli
Problemi aperti lungo termine
Non-banalit`a del sistema
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 38 / 40
105. Conclusioni
Cripto-valute: potenzialit`a e pericoli
Problemi aperti lungo termine
Non-banalit`a del sistema
Bitcoin moneta del futuro?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 38 / 40
106. Conclusioni
Cripto-valute: potenzialit`a e pericoli
Problemi aperti lungo termine
Non-banalit`a del sistema
Bitcoin moneta del futuro?
Molte applicazioni per la blockchain
non tutte legate al denaro
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 38 / 40
107. Conclusioni
Cripto-valute: potenzialit`a e pericoli
Problemi aperti lungo termine
Non-banalit`a del sistema
Bitcoin moneta del futuro?
Molte applicazioni per la blockchain
non tutte legate al denaro
Molte migliorie desiderabili per la tecnologia Blockchain
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 38 / 40
108. Riferimenti bibliografici I
[1] Adam Back.
Hashcash - A Denial of Service Counter-Measure.
Http://Www.Hashcash.Org/Papers/Hashcash.Pdf, (August):1–10, 2002.
[2] Dave Bayer, Stuart Haber, and W. Scott Stornetta.
Improving the Efficiency and Reliability of Digital Time-Stamping.
Sequences II: Methods in Communication, Security and Computer Science, pages 329–334,
1992.
[3] J Brito and Andrea Castillo.
Bitcoin: A Primer for Policymakers.
Mercatus Center: Geroge Mason University., 29(4):3–12, 2013.
[4] Cynthia Dwork and Moni Naor.
Pricing via Processing or Combatting Junk Mail, pages 139–147.
Springer Berlin Heidelberg, Berlin, Heidelberg, 1993.
[5] Satoshi Nakamoto.
Bitcoin: A Peer-to-Peer Electronic Cash System.
2008.
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 39 / 40
109. Riferimenti bibliografici II
[6] Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, and Steven Goldfeder.
Bitcoin and Crytocurrency Technologies.
Network Security, 2016(August), 2016.
[7] Stuart Haber and Scott Stornetta.
How to Time-Stamp a Digital Document.
Reduced Order Systems, 3(2):1–11, 2010.
[8] Nick Szabo.
Smart Contracts: Building Blocks for Digital Markets Copyright.
Alamut.Com, (c):16, 1996.
[9] Andrew S Tanenbaum and Maarten Van Steen.
Distributed Systems: Principles and Paradigms, 2/E.
2007.
[10] Brian Warner.
Bitcoin: A technical introduction.
http://www.lothar.com/presentations/bitcoin-brownbag/slides.html.
[11] Gavin Wood.
Ethereum: a secure decentralised generalised transaction ledger.
Ethereum Project Yellow Paper, pages 1–32, 2014.
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 40 / 40