SlideShare a Scribd company logo
1 of 39
Download to read offline
Blockchain Seminar
Federico Corradino
Francesco Polacchi
13 Giugno 2017
@Talent Garden Torino
1
Agenda
● Intro
● Come costruire una moneta digitale decentralizzata
○ Funzioni di Hash
○ Crittografia asimmetrica
○ Moneta Digitale
○ Proof of Work
○ Rete P2P
○ Incentivi
● Sviluppi e prospettive future
○ Da dove viene il valore? Rarità digitale
○ Prospettive/rischi
○ Smart Contract & Payment Channels
2
Come funziona?
“Da dove viene” il valore?
Come fa ad essere sicuro?
3
Un po’ di storia
Ottobre 2008: un anonimo partecipante ad una sconosciuta
mailing list “Cypherpunks”, che si fa chiamare Satoshi
Nakamoto, annuncia:
“Sto lavorando ad un nuovo sistema di denaro elettronico
completamente peer-to-peer, senza autorità centrali”
“I've been working on a new electronic cash system that's fully
peer-to-peer, with no trusted third party.”
The paper is available at:
http://www.bitcoin.org/bitcoin.pdf”
http://satoshi.nakamotoinstitute.org/emails/cryptography/1/
4
Il primo "Timestamp"
Crittografia asimmetrica
Nella crittografia asimmetrica, ad ogni attore coinvolto nella comunicazione è
associata una coppia di chiavi:
Chiave Pubblica: deve essere distribuita
● autentica la firma di un messaggio inviato da chi possiede la chiave privata abbinata
● cifra un messaggio garantendo che solo chi possiede la chiave privata abbinata possa decifrarlo
Chiave Privata: deve essere mantenuta segreta
● genera una firma per un messaggio
● decifra un messaggio cifrato con la corrispondente chiave pubblica
RSA, Diffie-Hellman, ECC
PGP, SSH, TLS
5
Moneta digitale - Catena di firme digitali
6
Una transazione è composta da:
● La chiave pubblica del
destinatario
● L’hash della transazione che
trasferì al mittente la proprietà
della moneta
● La firma del mittente
“We define an electronic coin as a chain of digital signatures” S.Nakamoto
Moneta digitale - Combine & Split
Si potrebbero trattare le monete individualmente, ma non è per niente comodo.
Decidiamo quindi che è possibile unire e dividere le monete a piacimento.
L’unico requisito è che la somma degli output non sia superiore alla somma degli input*
7
Funny facts:
Overflow bug e fork del 2010
La “Zecca” del Bitcoin...
...pubblica periodicamente un hash di tutte le transazioni con un timestamp.
il timestamp prova che una data transazione esisteva prima che il blocco fosse
pubblicato
8
La Zecca del Bitcoin
https://anders.com/blockchain/blockchain.html
Possiamo rendere la vita un po più difficile alla Zecca,
richiedendo un proof-of-work per ogni blocco.
9
“Once the CPU effort has been expended to make it satisfy the proof-of-work, the
block cannot be changed without redoing the work.” S.Nakamoto
Proof of Work
Qualcosa di potente ha costruito quella cosa, non c’è una scorciatoia per farlo.
10
Questo monumento aveva due scopi: quello meno importante era quello di tomba.
Proof of work
Sat Jun 10 00:14:52 2017 - HASH BLOCK - 0000000000000000010ab29ed1922854a826a4af3fcd1b9b294366187124092c
Sat Jun 10 00:26:52 2017 - HASH BLOCK - 0000000000000000015a50c20c5c3ecaa6a7cfb367453f1432aa8e96790d1789
Sat Jun 10 00:33:40 2017 - HASH BLOCK - 000000000000000000eeb5638f7515e0294adfd3ede15c7e446918406b062f7a
Sat Jun 10 00:33:52 2017 - HASH BLOCK - 00000000000000000154468386642e9f26bd3c0799a073c16ce51525b39a5128
Sat Jun 10 00:43:11 2017 - HASH BLOCK - 0000000000000000016efde93e8effc91e3a1bd53081026bd60d4064e0f87532
Sat Jun 10 00:47:51 2017 - HASH BLOCK - 000000000000000000cf2250e09dc981aa3f048ea6592b6e885757f239039552
Sat Jun 10 00:48:54 2017 - HASH BLOCK - 000000000000000000dba4257812f914b28bec522cf2ca9e03f8d303fdc2b3f2
Sat Jun 10 00:50:55 2017 - HASH BLOCK - 0000000000000000003e29202fb667b17b1845faf079758d1c595006f267dc89
Sat Jun 10 01:01:10 2017 - HASH BLOCK - 000000000000000000fb5a493ff021f32d920df04e66cd24a57dd763a05229e4
Sat Jun 10 01:19:14 2017 - HASH BLOCK - 0000000000000000019763174ecc1d54e2f2eda424ae954aefaa5ca9a9ff2940
Sat Jun 10 01:26:41 2017 - HASH BLOCK - 000000000000000000004e8136768bc03578b42c97d813477a61d1522272df0a
Sat Jun 10 01:39:38 2017 - HASH BLOCK - 000000000000000000abb96c1adf704c4345dcd43ae8f4e8117e7b9d77787167
Sat Jun 10 01:51:03 2017 - HASH BLOCK - 000000000000000000b72baed5f880856c7d52f8410252fa8fe1f2730bbcda65
Sat Jun 10 01:57:34 2017 - HASH BLOCK - 0000000000000000007dcfbbeffb078efe41bd2559668974ea8b5edc919f0dda
Sat Jun 10 02:00:19 2017 - HASH BLOCK - 00000000000000000003c3f2c241621daff3b60d6343877f8e3cc48c23b086e3
Sat Jun 10 02:18:12 2017 - HASH BLOCK - 0000000000000000019475cbb23d83d62a68b04b776f3ab2f14b53328a80487c
Sat Jun 10 02:27:43 2017 - HASH BLOCK - 0000000000000000000bb3e14be070376db118c68c5eb578b7b141617621f70d
Sat Jun 10 02:51:36 2017 - HASH BLOCK - 000000000000000000e20db69bc60df74708e3890fc1aba35b41e10ddb3a2d00
Sat Jun 10 02:57:53 2017 - HASH BLOCK - 0000000000000000017aaf7b4b264c7ab202a0f78e8147d3cc91431ebb821ef5
Sat Jun 10 03:06:46 2017 - HASH BLOCK - 00000000000000000152c06c4840d86ee6af03ae1107dd16a853d10f601bc60f
Sat Jun 10 03:07:37 2017 - HASH BLOCK - 0000000000000000019913b687f1c83684e616e71b27f66e59c8687db871552a
Sat Jun 10 03:24:54 2017 - HASH BLOCK - 00000000000000000092518a7a391604a3af52609c69df84c4230cbe4b8d3ded
Sat Jun 10 03:39:28 2017 - HASH BLOCK - 000000000000000000067a6f578054cca5a193768934dfa8cdda01e4dcde5d1d
Sat Jun 10 03:51:35 2017 - HASH BLOCK - 0000000000000000008132c5abc6d2193be226dd109353cca7e8a39b27638eb3
Sat Jun 10 03:54:30 2017 - HASH BLOCK - 00000000000000000081e7ef68029833ebf5db8c458948cc911cf6e2b8fa9a40
Sat Jun 10 03:55:17 2017 - HASH BLOCK - 00000000000000000073932b043cb7f19da464beddadee92858459cf11e361ea
Sat Jun 10 04:09:29 2017 - HASH BLOCK - 000000000000000000e493a736ffc53f54203e044f26c5a18ef0239c05c23495
Sat Jun 10 04:24:00 2017 - HASH BLOCK - 000000000000000000f450bd09e6e4f02008d6dfe195b19042e88ac73567cf9d
Sat Jun 10 04:39:50 2017 - HASH BLOCK - 000000000000000001232023472ea35f1a93e607ad2bd0529b562ceaf0be4c14
11
Rete p2p
1. Le nuove transazioni sono distribuite in broadcast a tutti i nodi
2. Ogni nodo raccoglie nuove transazioni in un blocco
3. Ogni nodo lavora per trovare un proof-of-work adeguato
4. Quando un nodo trova un proof-of-work, lo distribuisce in broadcast a tutti i
nodi
5. Un nodo accetta un nuovo blocco solo se tutte le transazioni al suo interno
sono valide e se esso soddisfa il proof-of-work
6. I nodi manifestano di accettare un blocco usando il suo hash come
previous-hash
12
Rete p2p
La rete è robusta in quanto semplice e non strutturata.
I nodi lavorano all’unisono con pochissima coordinazione
Non devono identificarsi, visto che nessun messaggio è diretto ad una destinazione
particolare, né è richiesto che la consegna sia affidabile (best effort)
I nodi possono entrare ed uscire dalla rete a piacimento, accettando la catena con maggior
proof-of-work come testimonianza di cosa è successo mentre erano via
Votano con la potenza computazionale, esprimendo di accettare un blocco lavorando su di
esso
Altre regole possono essere implementate con questo meccanismo di consenso
13
Blockchain dynamics - Simulation
14
Blockchain dynamics - lightning sample
15
Termodinamica
C’è un limite fisico al minimo ammontare di energia necessario a cambiare lo stato
di un bit. ( Principio di Landauer )
C’è un limite pratico all’efficienza dei calcolatori
● architettura
● processo produttivo
16
Incentivi di funzionamento
● Coinbase
Per convenzione, la prima transazione di ogni blocco “crea” nuove monete in una quantità
prestabilita (50, che si dimezza ogni 4 anni)
Questo crea l’incentivo a supportare la rete, e fornisce un modo per distribuire le monete, visto che
non c’è nessuna autorità centrale che possa farlo.
● Commissioni di transazione
Se gli output di una transazione sono inferiore agli input, la differenza è aggiunta alla coinbase, e va
al nodo che ha trovato il proof-of-work per quel blocco
Questo crea l’incentivo a includere e verificare le transazioni.
17
Mining
Inizialmente ogni utente era anche un “minatore”. Quando l’incentivo economico è
diventato abbastanza forte, sono emerse ottimizzazioni:
CPU GPU FPGA ASIC
18
Valori scelti arbitrariamente
Funzione di hash: Doppio SHA256
Ricompensa del blocco: 50 bitcoin
Tempo medio tra i blocchi: 10 minuti
Periodo di dimezzamento della ricompensa: 210000 blocchi ~4 anni
Bitcoin totali: 21 milioni
Dimensione massima del blocco: 1 MB
Retarget della difficoltà: 2016 blocchi
Prezzo di 1 bitcoin: Definito dal mercato
19
Timeline
20
Blockchain vs. Bitcoin
Blockchains
Bitcoin
Ethereum
zCash Monero
Litecoin
Dogecoin
Namecoin
Truffe
21
0 - Partiamo da una chiave privata ECDSA
18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
1 - Calcoliamo la corrispondente chiave pubblica: (65 bytes, 1 byte 0x04, 32 bytes coordinata X, 32 bytes coordinata Y)
0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
2 - Facciamo un giro di hashing SHA-256 sulla chiave pubblica
600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
3 - Facciamo un giro di hash RIPEMD-160 sull’output di SHA-256
010966776006953D5567439E5E39F86A0D273BEE
4 - Aggiungiamo il byte di versione all’inizio (0x00 per la Bitcoin Mainnet)
00010966776006953D5567439E5E39F86A0D273BEE
5 - Un altro giro di hash SHA-256
445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
6 - Ancora un altro giro di SHA-256
D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
7 - Prendiamo i primi 4 bytes, questo è il checksum
D61967F6
8 - Aggiungiamo il checksum al risultato del punto 4.
00010966776006953D5567439E5E39F86A0D273BEED61967F6
9 - Convertiamo in base58
16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
22
Per trovare una collisione è necessario in media 2107
volte il tempo che ci vuole a trovare un nuovo blocco.
Da dove viene il valore? - Rarità Digitale
“The initial price of bitcoin was caused by people who wanted to hold it, not people who wanted to spend it.
Furthermore, each subsequent step in Bitcoin’s advance must begin with more holders, not more spenders”
Daniel Krawisz
23
“The steady addition of a constant of amount of new coins is analogous to gold miners expending
resources to add gold to circulation. In our case, it is CPU time and electricity that is expended.” S.Nakamoto
Che prospettive/rischi ci sono?
24
“Luce alla fine del tunnel” o “treno in corsa nella tua
direzione”?
Il concetto di “digitale” spesso è associato all’idea di “veloce, dinamico, facilmente trasformabile”. Spesso
pensando ai supporti magnetici e ottici(HDD, SSD, DVD... ) ci si chiede quanto possano conservare
l’informazione in futuro, rispetto alla carta stampata, di cui abbiamo esperienza da parecchi secoli.
Il concetto di blockchain ci costringe però ad un cambio di paradigma: la differenza è che adesso ci sono
delle solide basi termodinamicamente garantite che permettono di implementare il denaro digitale in
modo indipendente dal sistema finanziario. E nessuno può predire con precisione che effetto può avere
sull’economia la presenza di un concorrente al sistema finanziario.
Difficoltà di previsione: Nel campo dell’intrattenimento l’emergere dello sharing p2p (es: torrent) ha prima
creato il fenomeno “panico e censura”, poi costretto l’industria multimediale a progredire, fino a che è
diventato più comodo per il grande pubblico pagare pochi euro al mese (es: Netflix,Spotify) anziché
cercare i torrent.
25
La blockchain del Bitcoin è un sistema di scala planetaria, termodinamicamente garantito, autosufficiente,
che garantisce immutabilità.
Di scala planetaria, perché per realizzarla è necessario sfruttare risorse su scala planetaria.
Termodinamicamente garantito perché è possibile calcolare il minimo ammontare di energia impiegato
per crearlo. La teoria dell’informazione ci garantisce che per “flippare” un certo quantitativo bit bisogna
spendere una determinata quantità di joules, e non ci sono scorciatoie.
Autosufficiente perché la sequenza di bytes che è prodotta come proof-of-work contiene l’informazione di
quanto lavoro è stato cumulativamente fatto.
“Our ancestors said "this is as good as
written in stone". Our grandchildren will say
"It is as good as written on the blockchain".
Because it is the new standard of
immutability and it is globally accessible.”
Andreas Antonopoulos
26
1 - Sviluppi e prospettive future
● Applicazioni notarili
E’ possibile includere piccole quantità di dati arbitrari nelle transazioni. Pubblico un hash di una foto: posso
provare che la foto è stata scattata prima della generazione del blocco che include l’hash (“Tag Temporale”)
● Payment channels
Se una transazione bitcoin fosse un “pacchetto UDP” di denaro, un payment channel sarebbe una
connessione TCP Lightning network
● Smart Contracts
Applicazioni che muovono denaro in base a una programmazione prestabilita e immutabile.
Enti di beneficenza digitali, assicurazioni p2p
● Blockchain forensic
Ce la farà il creatore di WannaCry a spendere i suoi bitcoin senza lasciare nessuna traccia digitale che li
colleghi alla sua identità reale? Tainted coin analysis
27
2 - Sviluppi e prospettive future
● Collaborative Transport
Dopo le auto che si guidano da sole, perchè non avere anche sistemi di noleggio e car sharing automatizzati tutelati
da assicurazioni smart contract?
● Energy Distributions
Vedi sopra, ma con scambio di energia prodotta da pannelli solari (TransActive Grid a New York)
● Data Storage
Un Database può essere ancorato su una blockchain
● Digitalization of documents (Es. Amministrazione Pubblica)
Carta stampata addio, benvenute firme digitali e autenticazione tramite “Proof of Identity”
● Luxury, Medical and Retail good Authentication
Quale metodo migliore di una catena di controllo qualità per gestire beni soggetti a frode?
28
Payment Channels - Pagamenti in “streaming”
Preparando delle transazioni senza inoltrare, ed aggiornandole successivamente
(invalidando le precedenti), è possibile implementare una sorta di “conto al bar”,
che viene poi “saldato” sulla blockchain quando la serie di transazioni è conclusa.
Il tutto in maniera “trustless”.
Questo concetto si espande poi in una rete di tipo hubs-and-spokes.
Esempio: Devo 5 euro ad un amico, ed entrambi abbiamo il conto al baretto:
questo, agendo come Hub, toglierà 5 euro dal mio conto e aggiungendoli al suo.
Transazione : pacchetto IP = Payment Channel : connessione TCP
29
Smart Contracts
Una forma di contratto digitale
gestito da un programma che gira
su blockchain Ethereum il cui
funzionamento è visibile a tutti: la
tutela delle parti è gestita da un
software e distribuito sulla rete,
quindi “incorruttibile” e
decentralizzato.
Le “API” di questi programmi sono
indirizzi che ricevono ed inviano
denaro.
30
Questo smart contract ripartisce quanto ricevuto tra 2
destinatari, secondo una percentuale scelta da un
terzo
Smart Contracts
Una forma di contratto digitale
gestito da un programma che gira
su blockchain Ethereum il cui
funzionamento è visibile a tutti: la
tutela delle parti è gestita da un
software e distribuito sulla rete,
quindi “incorruttibile” e
decentralizzato.
Le “API” di questi programmi sono
indirizzi che ricevono ed inviano
denaro.
31
Fig.1 - Il meccanismo dell’ impegno: Bob può solo
pagare Alice, Alice può solo risarcire entrambi
Disruptive Technology?
32
Rischi - La bolla dell’aspettativa tecnologica
New technology life cycle -
Gartner’s Hype Cycle
33
Fonti:
Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto, 2009
https://bitcoin.org/bitcoin.pdf
Blockchain demo: https://anders.com/blockchain/ , Anders Brownworth
Smart Contracts:
https://medium.com/@chriseth/babbage-a-mechanical-smart-contract-language-5
c8329ec5a0e
34
Q/A Session
35
Backup Materials
36
Hype Cycle 2015 vs 2016
37
Bitcoin e valore - logica “popolare”
Migliore risposta:
1. Ragioni "industriali": non si altera, è difficile reperirlo (l'estrazione è costosa e rende poco)
2. Ragioni "monetarie": è utilizzato come moneta da sempre proprio perché è raro
3. E’ un bene rifugio: visto che non si altera, può rappresentare un buon investimento... Ma più se ne
domanda, più il prezzo aumenta;
4. Ragioni “speculative”: se si scommette che il suo prezzo aumenterà, le aspettative tenderanno a
realizzarsi
38
Bitcoin vs Schema Ponzi
Tratti comuni schema Ponzi:
1. Promessa di alti rendimenti in pochissimo tempo
2. Finti guadagni ottenuti da investimenti di “alta finanza”, non ben specificati
3. Offerta per un pubblico non competente in ambito finanziario
4. Investimento che fa capo ad un solo promotore, oppure azienda
5. Centralizzazione del potere decisionale “dall’alto”
Nel Bitcoin è la rete stessa che decide e possiede il valore della rete in base al
numero di utenti che la utilizzano. Cosa succede se perdesse valore
improvvisamente?
39

More Related Content

Similar to Blockchain

Similar to Blockchain (20)

Bitcoin Revolution
Bitcoin RevolutionBitcoin Revolution
Bitcoin Revolution
 
Linux day 2017
Linux day 2017Linux day 2017
Linux day 2017
 
BitGold. L'estinzione dei dinosauri.
BitGold. L'estinzione dei dinosauri.BitGold. L'estinzione dei dinosauri.
BitGold. L'estinzione dei dinosauri.
 
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
 
Bitcoin and blockchain
Bitcoin and blockchainBitcoin and blockchain
Bitcoin and blockchain
 
Protocolli per la protezione dell'anonimato nelle valute Monero e Zcash
Protocolli per la protezione dell'anonimato nelle valute Monero e ZcashProtocolli per la protezione dell'anonimato nelle valute Monero e Zcash
Protocolli per la protezione dell'anonimato nelle valute Monero e Zcash
 
Bitcoin in codice
Bitcoin in codiceBitcoin in codice
Bitcoin in codice
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Slide Federico Tenga - Conferenza Blockchain Roma 17-06-16
Slide Federico Tenga - Conferenza Blockchain Roma 17-06-16Slide Federico Tenga - Conferenza Blockchain Roma 17-06-16
Slide Federico Tenga - Conferenza Blockchain Roma 17-06-16
 
Smau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICToSmau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICTo
 
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...
 
Marco Spada, Maria Perugini DirICTo - SMAU Milano 2017
Marco Spada, Maria Perugini DirICTo - SMAU Milano 2017Marco Spada, Maria Perugini DirICTo - SMAU Milano 2017
Marco Spada, Maria Perugini DirICTo - SMAU Milano 2017
 
Blockchain - crittomonete, Bitcoin e altre applicazioni
Blockchain - crittomonete, Bitcoin e altre applicazioniBlockchain - crittomonete, Bitcoin e altre applicazioni
Blockchain - crittomonete, Bitcoin e altre applicazioni
 
La blockchain - Cos'è un Algoritmo di Consenso
La blockchain - Cos'è un Algoritmo di ConsensoLa blockchain - Cos'è un Algoritmo di Consenso
La blockchain - Cos'è un Algoritmo di Consenso
 
Blockchain: fuffa, innovazione o metà e metà?
Blockchain: fuffa, innovazione o metà e metà?Blockchain: fuffa, innovazione o metà e metà?
Blockchain: fuffa, innovazione o metà e metà?
 
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...
 
Presentazione del mining Bitcoin
Presentazione del mining BitcoinPresentazione del mining Bitcoin
Presentazione del mining Bitcoin
 
Blockchain essenziale
Blockchain essenzialeBlockchain essenziale
Blockchain essenziale
 
Blockchain4 devs slides
Blockchain4 devs slidesBlockchain4 devs slides
Blockchain4 devs slides
 
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
 

Blockchain

  • 1. Blockchain Seminar Federico Corradino Francesco Polacchi 13 Giugno 2017 @Talent Garden Torino 1
  • 2. Agenda ● Intro ● Come costruire una moneta digitale decentralizzata ○ Funzioni di Hash ○ Crittografia asimmetrica ○ Moneta Digitale ○ Proof of Work ○ Rete P2P ○ Incentivi ● Sviluppi e prospettive future ○ Da dove viene il valore? Rarità digitale ○ Prospettive/rischi ○ Smart Contract & Payment Channels 2
  • 3. Come funziona? “Da dove viene” il valore? Come fa ad essere sicuro? 3
  • 4. Un po’ di storia Ottobre 2008: un anonimo partecipante ad una sconosciuta mailing list “Cypherpunks”, che si fa chiamare Satoshi Nakamoto, annuncia: “Sto lavorando ad un nuovo sistema di denaro elettronico completamente peer-to-peer, senza autorità centrali” “I've been working on a new electronic cash system that's fully peer-to-peer, with no trusted third party.” The paper is available at: http://www.bitcoin.org/bitcoin.pdf” http://satoshi.nakamotoinstitute.org/emails/cryptography/1/ 4 Il primo "Timestamp"
  • 5. Crittografia asimmetrica Nella crittografia asimmetrica, ad ogni attore coinvolto nella comunicazione è associata una coppia di chiavi: Chiave Pubblica: deve essere distribuita ● autentica la firma di un messaggio inviato da chi possiede la chiave privata abbinata ● cifra un messaggio garantendo che solo chi possiede la chiave privata abbinata possa decifrarlo Chiave Privata: deve essere mantenuta segreta ● genera una firma per un messaggio ● decifra un messaggio cifrato con la corrispondente chiave pubblica RSA, Diffie-Hellman, ECC PGP, SSH, TLS 5
  • 6. Moneta digitale - Catena di firme digitali 6 Una transazione è composta da: ● La chiave pubblica del destinatario ● L’hash della transazione che trasferì al mittente la proprietà della moneta ● La firma del mittente “We define an electronic coin as a chain of digital signatures” S.Nakamoto
  • 7. Moneta digitale - Combine & Split Si potrebbero trattare le monete individualmente, ma non è per niente comodo. Decidiamo quindi che è possibile unire e dividere le monete a piacimento. L’unico requisito è che la somma degli output non sia superiore alla somma degli input* 7 Funny facts: Overflow bug e fork del 2010
  • 8. La “Zecca” del Bitcoin... ...pubblica periodicamente un hash di tutte le transazioni con un timestamp. il timestamp prova che una data transazione esisteva prima che il blocco fosse pubblicato 8
  • 9. La Zecca del Bitcoin https://anders.com/blockchain/blockchain.html Possiamo rendere la vita un po più difficile alla Zecca, richiedendo un proof-of-work per ogni blocco. 9 “Once the CPU effort has been expended to make it satisfy the proof-of-work, the block cannot be changed without redoing the work.” S.Nakamoto
  • 10. Proof of Work Qualcosa di potente ha costruito quella cosa, non c’è una scorciatoia per farlo. 10 Questo monumento aveva due scopi: quello meno importante era quello di tomba.
  • 11. Proof of work Sat Jun 10 00:14:52 2017 - HASH BLOCK - 0000000000000000010ab29ed1922854a826a4af3fcd1b9b294366187124092c Sat Jun 10 00:26:52 2017 - HASH BLOCK - 0000000000000000015a50c20c5c3ecaa6a7cfb367453f1432aa8e96790d1789 Sat Jun 10 00:33:40 2017 - HASH BLOCK - 000000000000000000eeb5638f7515e0294adfd3ede15c7e446918406b062f7a Sat Jun 10 00:33:52 2017 - HASH BLOCK - 00000000000000000154468386642e9f26bd3c0799a073c16ce51525b39a5128 Sat Jun 10 00:43:11 2017 - HASH BLOCK - 0000000000000000016efde93e8effc91e3a1bd53081026bd60d4064e0f87532 Sat Jun 10 00:47:51 2017 - HASH BLOCK - 000000000000000000cf2250e09dc981aa3f048ea6592b6e885757f239039552 Sat Jun 10 00:48:54 2017 - HASH BLOCK - 000000000000000000dba4257812f914b28bec522cf2ca9e03f8d303fdc2b3f2 Sat Jun 10 00:50:55 2017 - HASH BLOCK - 0000000000000000003e29202fb667b17b1845faf079758d1c595006f267dc89 Sat Jun 10 01:01:10 2017 - HASH BLOCK - 000000000000000000fb5a493ff021f32d920df04e66cd24a57dd763a05229e4 Sat Jun 10 01:19:14 2017 - HASH BLOCK - 0000000000000000019763174ecc1d54e2f2eda424ae954aefaa5ca9a9ff2940 Sat Jun 10 01:26:41 2017 - HASH BLOCK - 000000000000000000004e8136768bc03578b42c97d813477a61d1522272df0a Sat Jun 10 01:39:38 2017 - HASH BLOCK - 000000000000000000abb96c1adf704c4345dcd43ae8f4e8117e7b9d77787167 Sat Jun 10 01:51:03 2017 - HASH BLOCK - 000000000000000000b72baed5f880856c7d52f8410252fa8fe1f2730bbcda65 Sat Jun 10 01:57:34 2017 - HASH BLOCK - 0000000000000000007dcfbbeffb078efe41bd2559668974ea8b5edc919f0dda Sat Jun 10 02:00:19 2017 - HASH BLOCK - 00000000000000000003c3f2c241621daff3b60d6343877f8e3cc48c23b086e3 Sat Jun 10 02:18:12 2017 - HASH BLOCK - 0000000000000000019475cbb23d83d62a68b04b776f3ab2f14b53328a80487c Sat Jun 10 02:27:43 2017 - HASH BLOCK - 0000000000000000000bb3e14be070376db118c68c5eb578b7b141617621f70d Sat Jun 10 02:51:36 2017 - HASH BLOCK - 000000000000000000e20db69bc60df74708e3890fc1aba35b41e10ddb3a2d00 Sat Jun 10 02:57:53 2017 - HASH BLOCK - 0000000000000000017aaf7b4b264c7ab202a0f78e8147d3cc91431ebb821ef5 Sat Jun 10 03:06:46 2017 - HASH BLOCK - 00000000000000000152c06c4840d86ee6af03ae1107dd16a853d10f601bc60f Sat Jun 10 03:07:37 2017 - HASH BLOCK - 0000000000000000019913b687f1c83684e616e71b27f66e59c8687db871552a Sat Jun 10 03:24:54 2017 - HASH BLOCK - 00000000000000000092518a7a391604a3af52609c69df84c4230cbe4b8d3ded Sat Jun 10 03:39:28 2017 - HASH BLOCK - 000000000000000000067a6f578054cca5a193768934dfa8cdda01e4dcde5d1d Sat Jun 10 03:51:35 2017 - HASH BLOCK - 0000000000000000008132c5abc6d2193be226dd109353cca7e8a39b27638eb3 Sat Jun 10 03:54:30 2017 - HASH BLOCK - 00000000000000000081e7ef68029833ebf5db8c458948cc911cf6e2b8fa9a40 Sat Jun 10 03:55:17 2017 - HASH BLOCK - 00000000000000000073932b043cb7f19da464beddadee92858459cf11e361ea Sat Jun 10 04:09:29 2017 - HASH BLOCK - 000000000000000000e493a736ffc53f54203e044f26c5a18ef0239c05c23495 Sat Jun 10 04:24:00 2017 - HASH BLOCK - 000000000000000000f450bd09e6e4f02008d6dfe195b19042e88ac73567cf9d Sat Jun 10 04:39:50 2017 - HASH BLOCK - 000000000000000001232023472ea35f1a93e607ad2bd0529b562ceaf0be4c14 11
  • 12. Rete p2p 1. Le nuove transazioni sono distribuite in broadcast a tutti i nodi 2. Ogni nodo raccoglie nuove transazioni in un blocco 3. Ogni nodo lavora per trovare un proof-of-work adeguato 4. Quando un nodo trova un proof-of-work, lo distribuisce in broadcast a tutti i nodi 5. Un nodo accetta un nuovo blocco solo se tutte le transazioni al suo interno sono valide e se esso soddisfa il proof-of-work 6. I nodi manifestano di accettare un blocco usando il suo hash come previous-hash 12
  • 13. Rete p2p La rete è robusta in quanto semplice e non strutturata. I nodi lavorano all’unisono con pochissima coordinazione Non devono identificarsi, visto che nessun messaggio è diretto ad una destinazione particolare, né è richiesto che la consegna sia affidabile (best effort) I nodi possono entrare ed uscire dalla rete a piacimento, accettando la catena con maggior proof-of-work come testimonianza di cosa è successo mentre erano via Votano con la potenza computazionale, esprimendo di accettare un blocco lavorando su di esso Altre regole possono essere implementate con questo meccanismo di consenso 13
  • 14. Blockchain dynamics - Simulation 14
  • 15. Blockchain dynamics - lightning sample 15
  • 16. Termodinamica C’è un limite fisico al minimo ammontare di energia necessario a cambiare lo stato di un bit. ( Principio di Landauer ) C’è un limite pratico all’efficienza dei calcolatori ● architettura ● processo produttivo 16
  • 17. Incentivi di funzionamento ● Coinbase Per convenzione, la prima transazione di ogni blocco “crea” nuove monete in una quantità prestabilita (50, che si dimezza ogni 4 anni) Questo crea l’incentivo a supportare la rete, e fornisce un modo per distribuire le monete, visto che non c’è nessuna autorità centrale che possa farlo. ● Commissioni di transazione Se gli output di una transazione sono inferiore agli input, la differenza è aggiunta alla coinbase, e va al nodo che ha trovato il proof-of-work per quel blocco Questo crea l’incentivo a includere e verificare le transazioni. 17
  • 18. Mining Inizialmente ogni utente era anche un “minatore”. Quando l’incentivo economico è diventato abbastanza forte, sono emerse ottimizzazioni: CPU GPU FPGA ASIC 18
  • 19. Valori scelti arbitrariamente Funzione di hash: Doppio SHA256 Ricompensa del blocco: 50 bitcoin Tempo medio tra i blocchi: 10 minuti Periodo di dimezzamento della ricompensa: 210000 blocchi ~4 anni Bitcoin totali: 21 milioni Dimensione massima del blocco: 1 MB Retarget della difficoltà: 2016 blocchi Prezzo di 1 bitcoin: Definito dal mercato 19
  • 21. Blockchain vs. Bitcoin Blockchains Bitcoin Ethereum zCash Monero Litecoin Dogecoin Namecoin Truffe 21
  • 22. 0 - Partiamo da una chiave privata ECDSA 18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725 1 - Calcoliamo la corrispondente chiave pubblica: (65 bytes, 1 byte 0x04, 32 bytes coordinata X, 32 bytes coordinata Y) 0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6 2 - Facciamo un giro di hashing SHA-256 sulla chiave pubblica 600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408 3 - Facciamo un giro di hash RIPEMD-160 sull’output di SHA-256 010966776006953D5567439E5E39F86A0D273BEE 4 - Aggiungiamo il byte di versione all’inizio (0x00 per la Bitcoin Mainnet) 00010966776006953D5567439E5E39F86A0D273BEE 5 - Un altro giro di hash SHA-256 445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094 6 - Ancora un altro giro di SHA-256 D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30 7 - Prendiamo i primi 4 bytes, questo è il checksum D61967F6 8 - Aggiungiamo il checksum al risultato del punto 4. 00010966776006953D5567439E5E39F86A0D273BEED61967F6 9 - Convertiamo in base58 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM 22 Per trovare una collisione è necessario in media 2107 volte il tempo che ci vuole a trovare un nuovo blocco.
  • 23. Da dove viene il valore? - Rarità Digitale “The initial price of bitcoin was caused by people who wanted to hold it, not people who wanted to spend it. Furthermore, each subsequent step in Bitcoin’s advance must begin with more holders, not more spenders” Daniel Krawisz 23 “The steady addition of a constant of amount of new coins is analogous to gold miners expending resources to add gold to circulation. In our case, it is CPU time and electricity that is expended.” S.Nakamoto
  • 25. “Luce alla fine del tunnel” o “treno in corsa nella tua direzione”? Il concetto di “digitale” spesso è associato all’idea di “veloce, dinamico, facilmente trasformabile”. Spesso pensando ai supporti magnetici e ottici(HDD, SSD, DVD... ) ci si chiede quanto possano conservare l’informazione in futuro, rispetto alla carta stampata, di cui abbiamo esperienza da parecchi secoli. Il concetto di blockchain ci costringe però ad un cambio di paradigma: la differenza è che adesso ci sono delle solide basi termodinamicamente garantite che permettono di implementare il denaro digitale in modo indipendente dal sistema finanziario. E nessuno può predire con precisione che effetto può avere sull’economia la presenza di un concorrente al sistema finanziario. Difficoltà di previsione: Nel campo dell’intrattenimento l’emergere dello sharing p2p (es: torrent) ha prima creato il fenomeno “panico e censura”, poi costretto l’industria multimediale a progredire, fino a che è diventato più comodo per il grande pubblico pagare pochi euro al mese (es: Netflix,Spotify) anziché cercare i torrent. 25
  • 26. La blockchain del Bitcoin è un sistema di scala planetaria, termodinamicamente garantito, autosufficiente, che garantisce immutabilità. Di scala planetaria, perché per realizzarla è necessario sfruttare risorse su scala planetaria. Termodinamicamente garantito perché è possibile calcolare il minimo ammontare di energia impiegato per crearlo. La teoria dell’informazione ci garantisce che per “flippare” un certo quantitativo bit bisogna spendere una determinata quantità di joules, e non ci sono scorciatoie. Autosufficiente perché la sequenza di bytes che è prodotta come proof-of-work contiene l’informazione di quanto lavoro è stato cumulativamente fatto. “Our ancestors said "this is as good as written in stone". Our grandchildren will say "It is as good as written on the blockchain". Because it is the new standard of immutability and it is globally accessible.” Andreas Antonopoulos 26
  • 27. 1 - Sviluppi e prospettive future ● Applicazioni notarili E’ possibile includere piccole quantità di dati arbitrari nelle transazioni. Pubblico un hash di una foto: posso provare che la foto è stata scattata prima della generazione del blocco che include l’hash (“Tag Temporale”) ● Payment channels Se una transazione bitcoin fosse un “pacchetto UDP” di denaro, un payment channel sarebbe una connessione TCP Lightning network ● Smart Contracts Applicazioni che muovono denaro in base a una programmazione prestabilita e immutabile. Enti di beneficenza digitali, assicurazioni p2p ● Blockchain forensic Ce la farà il creatore di WannaCry a spendere i suoi bitcoin senza lasciare nessuna traccia digitale che li colleghi alla sua identità reale? Tainted coin analysis 27
  • 28. 2 - Sviluppi e prospettive future ● Collaborative Transport Dopo le auto che si guidano da sole, perchè non avere anche sistemi di noleggio e car sharing automatizzati tutelati da assicurazioni smart contract? ● Energy Distributions Vedi sopra, ma con scambio di energia prodotta da pannelli solari (TransActive Grid a New York) ● Data Storage Un Database può essere ancorato su una blockchain ● Digitalization of documents (Es. Amministrazione Pubblica) Carta stampata addio, benvenute firme digitali e autenticazione tramite “Proof of Identity” ● Luxury, Medical and Retail good Authentication Quale metodo migliore di una catena di controllo qualità per gestire beni soggetti a frode? 28
  • 29. Payment Channels - Pagamenti in “streaming” Preparando delle transazioni senza inoltrare, ed aggiornandole successivamente (invalidando le precedenti), è possibile implementare una sorta di “conto al bar”, che viene poi “saldato” sulla blockchain quando la serie di transazioni è conclusa. Il tutto in maniera “trustless”. Questo concetto si espande poi in una rete di tipo hubs-and-spokes. Esempio: Devo 5 euro ad un amico, ed entrambi abbiamo il conto al baretto: questo, agendo come Hub, toglierà 5 euro dal mio conto e aggiungendoli al suo. Transazione : pacchetto IP = Payment Channel : connessione TCP 29
  • 30. Smart Contracts Una forma di contratto digitale gestito da un programma che gira su blockchain Ethereum il cui funzionamento è visibile a tutti: la tutela delle parti è gestita da un software e distribuito sulla rete, quindi “incorruttibile” e decentralizzato. Le “API” di questi programmi sono indirizzi che ricevono ed inviano denaro. 30 Questo smart contract ripartisce quanto ricevuto tra 2 destinatari, secondo una percentuale scelta da un terzo
  • 31. Smart Contracts Una forma di contratto digitale gestito da un programma che gira su blockchain Ethereum il cui funzionamento è visibile a tutti: la tutela delle parti è gestita da un software e distribuito sulla rete, quindi “incorruttibile” e decentralizzato. Le “API” di questi programmi sono indirizzi che ricevono ed inviano denaro. 31 Fig.1 - Il meccanismo dell’ impegno: Bob può solo pagare Alice, Alice può solo risarcire entrambi
  • 33. Rischi - La bolla dell’aspettativa tecnologica New technology life cycle - Gartner’s Hype Cycle 33
  • 34. Fonti: Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto, 2009 https://bitcoin.org/bitcoin.pdf Blockchain demo: https://anders.com/blockchain/ , Anders Brownworth Smart Contracts: https://medium.com/@chriseth/babbage-a-mechanical-smart-contract-language-5 c8329ec5a0e 34
  • 37. Hype Cycle 2015 vs 2016 37
  • 38. Bitcoin e valore - logica “popolare” Migliore risposta: 1. Ragioni "industriali": non si altera, è difficile reperirlo (l'estrazione è costosa e rende poco) 2. Ragioni "monetarie": è utilizzato come moneta da sempre proprio perché è raro 3. E’ un bene rifugio: visto che non si altera, può rappresentare un buon investimento... Ma più se ne domanda, più il prezzo aumenta; 4. Ragioni “speculative”: se si scommette che il suo prezzo aumenterà, le aspettative tenderanno a realizzarsi 38
  • 39. Bitcoin vs Schema Ponzi Tratti comuni schema Ponzi: 1. Promessa di alti rendimenti in pochissimo tempo 2. Finti guadagni ottenuti da investimenti di “alta finanza”, non ben specificati 3. Offerta per un pubblico non competente in ambito finanziario 4. Investimento che fa capo ad un solo promotore, oppure azienda 5. Centralizzazione del potere decisionale “dall’alto” Nel Bitcoin è la rete stessa che decide e possiede il valore della rete in base al numero di utenti che la utilizzano. Cosa succede se perdesse valore improvvisamente? 39