Immaginate come potrebbe diventare il mondo se il denaro potesse muoversi con la stessa frizione con cui oggi fluisce l’informazione in rete, attraversando in modo uniforme i confini nazionali/politici/culturali, al punto da renderli irrilevanti.
◦ 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
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"
arbitrariamente lungo in una stringa di lunghezza prefissata, cercando di far in modo che da questa stringa non si possa risalire al messaggio che l'ha generata. MD4,MD5 SHA1,SHA256 WHIRLPOOL KEKKAK Demo: https://anders.com/blockchain/hash.html 5
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 6
è 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
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* 8 Funny facts: Overflow bug e fork del 2010
po più difficile alla Zecca, richiedendo un proof-of-work per ogni blocco. 10 “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
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 13
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 14
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. 15
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 16
necessario a cambiare lo stato di un bit. ( Principio di Landauer ) C’è un limite pratico all’efficienza dei calcolatori • architettura • processo produttivo 19
- 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 23 Per trovare una collisione è necessario in media 2107 volte il tempo che ci vuole a trovare un nuovo blocco.
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 24 “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
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. 26
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 27
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 28
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? 29
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 30
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 Questo smart contract ripartisce quanto ricevuto tra 2 destinatari, secondo una percentuale scelta da un terzo
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. 32 Fig.1 - Il meccanismo dell’ impegno: Bob può solo pagare Alice, Alice può solo risarcire entrambi