SlideShare uma empresa Scribd logo
1 de 109
Baixar para ler offline
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
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
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
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
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
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
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
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
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
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
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
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
Problemi del contante digitale
Vari formati di gettone:
{"val": 5}
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 8 / 40
Problemi del contante digitale
Vari formati di gettone:
{"val": 5}
Valore?
Proprietario?
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 8 / 40
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
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
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
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
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
Firma digitale = integrit`a + autenticit`a
hash( )
hash( )
=
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 12 / 40
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
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
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
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
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
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
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
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
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
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
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
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
Creazione blocco
Pubblicazione nuovo blocco ogni ∆T secondi
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 16 / 40
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
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
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
Chi crea i blocchi?
× Sempre lo stesso nodo =⇒ centralizzazione, autorit`a
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 17 / 40
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Complessit`a e auto-organizzazione
Molti aspetti, fortemente interrelati. Difficile modificare parametri.
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 28 / 40
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
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
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
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
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
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
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
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
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
Applicazine: registro sicuro
Hp: Memorizzare dati arbitrari oltre al denaro
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 32 / 40
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
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
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
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
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
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
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
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
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
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
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
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
Smart contracts – Applicazioni
Contratto cartaceo → smart-contract pubblico e inviolabile
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 36 / 40
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
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
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
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
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
Smart contracts – Problemi aperti
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
Smart contracts – Problemi aperti
× Privacy e segretezza dello stato
Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 37 / 40
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Bitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo realeBitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo realetelosaes
 
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitaleBitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitalemidimarcus
 
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)Pierluigi Paganini
 
Bitcoin tabella comparativa dei profili regolatori #nocashday4
Bitcoin tabella comparativa dei profili regolatori #nocashday4Bitcoin tabella comparativa dei profili regolatori #nocashday4
Bitcoin tabella comparativa dei profili regolatori #nocashday4Giulia Aranguena
 
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...BTC - la fiera degli eventi
 
Le monete virtuali
Le monete virtualiLe monete virtuali
Le monete virtualiLoris Venuto
 
#Bitcoin: la moneta della rete
#Bitcoin: la moneta della rete#Bitcoin: la moneta della rete
#Bitcoin: la moneta della reteGiulia Aranguena
 
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)Giulia Aranguena
 
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4Stefano Saladino
 
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...MOCA Interactive
 
Cos'è Bitcoin, Introduzione alle Criptovalute
Cos'è Bitcoin, Introduzione alle CriptovaluteCos'è Bitcoin, Introduzione alle Criptovalute
Cos'è Bitcoin, Introduzione alle CriptovaluteMarco Dal Pra
 
Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)
Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)
Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)Francesco Piras
 
Bitcoin Business Opportunities
Bitcoin Business OpportunitiesBitcoin Business Opportunities
Bitcoin Business OpportunitiesMarco Amadori
 

Mais procurados (15)

Bitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo realeBitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo reale
 
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitaleBitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
 
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)
 
Bitcoin tabella comparativa dei profili regolatori #nocashday4
Bitcoin tabella comparativa dei profili regolatori #nocashday4Bitcoin tabella comparativa dei profili regolatori #nocashday4
Bitcoin tabella comparativa dei profili regolatori #nocashday4
 
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...
 
Le monete virtuali
Le monete virtualiLe monete virtuali
Le monete virtuali
 
#Bitcoin: la moneta della rete
#Bitcoin: la moneta della rete#Bitcoin: la moneta della rete
#Bitcoin: la moneta della rete
 
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)
 
Perché Bitcoin?
Perché Bitcoin?Perché Bitcoin?
Perché Bitcoin?
 
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
 
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
 
Bitcoin Revolution
Bitcoin RevolutionBitcoin Revolution
Bitcoin Revolution
 
Cos'è Bitcoin, Introduzione alle Criptovalute
Cos'è Bitcoin, Introduzione alle CriptovaluteCos'è Bitcoin, Introduzione alle Criptovalute
Cos'è Bitcoin, Introduzione alle Criptovalute
 
Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)
Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)
Blockchain e nuove prospettive imprenditoriali: Initial Coin Offering (ICO)
 
Bitcoin Business Opportunities
Bitcoin Business OpportunitiesBitcoin Business Opportunities
Bitcoin Business Opportunities
 

Semelhante a Introduzione alla Blockchain

Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...Sardegna Ricerche
 
Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)
Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)
Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)dalchecco
 
Bitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del Bitcoin
Bitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del BitcoinBitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del Bitcoin
Bitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del Bitcoindalchecco
 
Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...
Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...
Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...Codemotion
 
Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...
Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...
Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...Codemotion
 
I QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdf
I QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdfI QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdf
I QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdfISEA ODV
 
Convegno Law Enforcement - Bitcoin e Blockchain
Convegno Law Enforcement - Bitcoin e BlockchainConvegno Law Enforcement - Bitcoin e Blockchain
Convegno Law Enforcement - Bitcoin e BlockchainSimone Mazzonetto
 
Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista
Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista
Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista Purple Network
 

Semelhante a Introduzione alla Blockchain (13)

Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
 
Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)
Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)
Blockchain Forensics e Intelligence (Conferenza UTBI - Università di Torino)
 
Bitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del Bitcoin
Bitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del BitcoinBitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del Bitcoin
Bitcoin Forensics - Riciclaggio e Antiriciclaggio nell'era del Bitcoin
 
Introduzione a Bitcoin
Introduzione a BitcoinIntroduzione a Bitcoin
Introduzione a Bitcoin
 
Linux day 2017
Linux day 2017Linux day 2017
Linux day 2017
 
Bitcoin and blockchain
Bitcoin and blockchainBitcoin and blockchain
Bitcoin and blockchain
 
Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...
Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...
Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzar...
 
Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...
Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...
Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Ski...
 
Perché BITCOIN-08-11-2023 con video.pdf
Perché BITCOIN-08-11-2023 con video.pdfPerché BITCOIN-08-11-2023 con video.pdf
Perché BITCOIN-08-11-2023 con video.pdf
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
I QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdf
I QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdfI QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdf
I QUANDERNI DELL'ISEA - CRIPTOVALUTE.pdf
 
Convegno Law Enforcement - Bitcoin e Blockchain
Convegno Law Enforcement - Bitcoin e BlockchainConvegno Law Enforcement - Bitcoin e Blockchain
Convegno Law Enforcement - Bitcoin e Blockchain
 
Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista
Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista
Blockchain e Cryptovalute, cosa c'è da sapere sulla tecnologia protagonista
 

Mais de Giovanni Ciatto

An Abstract Framework for Agent-Based Explanations in AI
An Abstract Framework for Agent-Based Explanations in AIAn Abstract Framework for Agent-Based Explanations in AI
An Abstract Framework for Agent-Based Explanations in AIGiovanni Ciatto
 
2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in Kotlin2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in KotlinGiovanni Ciatto
 
Towards XMAS: eXplainability through Multi-Agent Systems
Towards XMAS: eXplainability through Multi-Agent SystemsTowards XMAS: eXplainability through Multi-Agent Systems
Towards XMAS: eXplainability through Multi-Agent SystemsGiovanni Ciatto
 
TuSoW: Tuple Spaces for Edge Computing
TuSoW: Tuple Spaces for Edge ComputingTuSoW: Tuple Spaces for Edge Computing
TuSoW: Tuple Spaces for Edge ComputingGiovanni Ciatto
 
Comparative Analysis of Blockchain Technologies under a Coordination Perspective
Comparative Analysis of Blockchain Technologies under a Coordination PerspectiveComparative Analysis of Blockchain Technologies under a Coordination Perspective
Comparative Analysis of Blockchain Technologies under a Coordination PerspectiveGiovanni Ciatto
 
Smart Contracts are More than Objects: Pro-activeness on the Blockchain
Smart Contracts are More than Objects: Pro-activeness on the BlockchainSmart Contracts are More than Objects: Pro-activeness on the Blockchain
Smart Contracts are More than Objects: Pro-activeness on the BlockchainGiovanni Ciatto
 
Towards Agent-oriented Blockchains: Autonomous Smart Contracts
Towards Agent-oriented Blockchains: Autonomous Smart ContractsTowards Agent-oriented Blockchains: Autonomous Smart Contracts
Towards Agent-oriented Blockchains: Autonomous Smart ContractsGiovanni Ciatto
 
Blockchain and Smart Contracts
Blockchain and Smart ContractsBlockchain and Smart Contracts
Blockchain and Smart ContractsGiovanni Ciatto
 
From the Blockchain to Logic Programming and back: Research perspectives
From the Blockchain to Logic Programming and back: Research perspectivesFrom the Blockchain to Logic Programming and back: Research perspectives
From the Blockchain to Logic Programming and back: Research perspectivesGiovanni Ciatto
 
Logic Programming in Space-Time: The Case of Situatedness in LPaaS
Logic Programming in Space-Time: The Case of Situatedness in LPaaSLogic Programming in Space-Time: The Case of Situatedness in LPaaS
Logic Programming in Space-Time: The Case of Situatedness in LPaaSGiovanni Ciatto
 
Blockchain & Smart Contracts Basics and Perspectives for MAS
Blockchain & Smart Contracts Basics and Perspectives for MASBlockchain & Smart Contracts Basics and Perspectives for MAS
Blockchain & Smart Contracts Basics and Perspectives for MASGiovanni Ciatto
 
A gentle introduction to the Blockchain and Smart Contracts
A gentle introduction to the Blockchain and Smart ContractsA gentle introduction to the Blockchain and Smart Contracts
A gentle introduction to the Blockchain and Smart ContractsGiovanni Ciatto
 

Mais de Giovanni Ciatto (12)

An Abstract Framework for Agent-Based Explanations in AI
An Abstract Framework for Agent-Based Explanations in AIAn Abstract Framework for Agent-Based Explanations in AI
An Abstract Framework for Agent-Based Explanations in AI
 
2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in Kotlin2P-Kt: logic programming with objects & functions in Kotlin
2P-Kt: logic programming with objects & functions in Kotlin
 
Towards XMAS: eXplainability through Multi-Agent Systems
Towards XMAS: eXplainability through Multi-Agent SystemsTowards XMAS: eXplainability through Multi-Agent Systems
Towards XMAS: eXplainability through Multi-Agent Systems
 
TuSoW: Tuple Spaces for Edge Computing
TuSoW: Tuple Spaces for Edge ComputingTuSoW: Tuple Spaces for Edge Computing
TuSoW: Tuple Spaces for Edge Computing
 
Comparative Analysis of Blockchain Technologies under a Coordination Perspective
Comparative Analysis of Blockchain Technologies under a Coordination PerspectiveComparative Analysis of Blockchain Technologies under a Coordination Perspective
Comparative Analysis of Blockchain Technologies under a Coordination Perspective
 
Smart Contracts are More than Objects: Pro-activeness on the Blockchain
Smart Contracts are More than Objects: Pro-activeness on the BlockchainSmart Contracts are More than Objects: Pro-activeness on the Blockchain
Smart Contracts are More than Objects: Pro-activeness on the Blockchain
 
Towards Agent-oriented Blockchains: Autonomous Smart Contracts
Towards Agent-oriented Blockchains: Autonomous Smart ContractsTowards Agent-oriented Blockchains: Autonomous Smart Contracts
Towards Agent-oriented Blockchains: Autonomous Smart Contracts
 
Blockchain and Smart Contracts
Blockchain and Smart ContractsBlockchain and Smart Contracts
Blockchain and Smart Contracts
 
From the Blockchain to Logic Programming and back: Research perspectives
From the Blockchain to Logic Programming and back: Research perspectivesFrom the Blockchain to Logic Programming and back: Research perspectives
From the Blockchain to Logic Programming and back: Research perspectives
 
Logic Programming in Space-Time: The Case of Situatedness in LPaaS
Logic Programming in Space-Time: The Case of Situatedness in LPaaSLogic Programming in Space-Time: The Case of Situatedness in LPaaS
Logic Programming in Space-Time: The Case of Situatedness in LPaaS
 
Blockchain & Smart Contracts Basics and Perspectives for MAS
Blockchain & Smart Contracts Basics and Perspectives for MASBlockchain & Smart Contracts Basics and Perspectives for MAS
Blockchain & Smart Contracts Basics and Perspectives for MAS
 
A gentle introduction to the Blockchain and Smart Contracts
A gentle introduction to the Blockchain and Smart ContractsA gentle introduction to the Blockchain and 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
  • 33. Creazione blocco Pubblicazione nuovo blocco ogni ∆T secondi Ciatto (DISI, Univ. Bologna) Introduzione alla Blockchain 15 Nov ’17 16 / 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