University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello:...

37
Blockchain e criptovalute Meccanismi di base, principali piattaforme di supporto e scenari applicativi Rebecca Montanari, Luca Foschini Department of Computer Science and Engineering - DISI University of Bologna - DISI Ringraziamenti a: Marco Cilloni, Carlo Pasquale Picone e Antonio Corradi

Transcript of University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello:...

Page 1: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain e criptovaluteMeccanismi di base, principali piattaforme di supporto e scenari applicativiRebecca Montanari, Luca FoschiniDepartment of Computer Science and Engineering - DISIUniversity of Bologna - DISIRingraziamenti a: Marco Cilloni, Carlo Pasquale Picone e Antonio Corradi

Page 2: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Una tecnologia disruptive?“ Administrators hold the power. They can doctor corporate accounts, delete titles from land registries or add names to party rolls. To stop the keepers from going rogue, and catch them if they do, society has come to rely on all sorts of tools, from audits to supervisory boards. [...] Now imagine a parallel universe in which lists have declared independence: they maintain themselves. This, broadly, is the promise of the blockchain”“Disrupting the trust business”, The Economist (2017)

Page 3: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Il problema della fiduciaIl sistema economico e burocratico moderno si basa su terze parti fidate per garantire l’autenticità di documenti e la validità delle transazioni economicheAd esempio, prima di accettare un pagamento elettronico, è necessario che un intermediario assicuri possa andare a buon fine

Page 4: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Le banche garantiscono a Bob che Alice possegga realmente $20Lo scenario attuale

Page 5: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Fiducia: modello tradizionale (oggi)Questo approccio funziona, ma ha diverse problematiche:• Opacità: il sistema non è trasparente (specialmente nel caso bancario)• Costi: ciascun intermediario può esigere commissioni per il servizio che eroga, anche ingenti• Tempistiche: dipendono da procedure anche non digitali ed orari di apertura di banche e uffici• Possesso dati: L’utente non è il reale possessore dei suoi dati o del suo account; i servizi sono erogati a discrezione di banche o altre entità• Possibilità errori: diversi errori umani o tecnici, fuori dalla responsabilità dell’utente, possibili su tutto il processo

Page 6: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Fiducia: modello tradizionale (ancora…)Dato che (in genere) le parti di una transazione non si fidano tra di loro, è necessaria una vasta rete di intermediari fidati per garantire ed assicurare la validità e l’adempimento di quanto viene promesso

Page 7: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Fiducia: il nuovo modelloil Ledger (libro maestro) distribuitoIntuizione: Se tutti possiedono una copia del libro mastro (ledger), è sempre possibile verificare che quanto viene promesso da una parte sia vero, senza bisogno di intermediari esterni

Page 8: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Fiducia: ledger distribuitoSe…• Tutti i partecipanti tengono traccia del saldo corrente di ognuno• Ciascuna operazione è registrata da ogni membro del sistema• Nessuna operazione può essere autorizzata senza essere stata prima accettata e registrata dagli altri partecipanti

Page 9: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Fiducia: ledger distribuitoAllora…• Bob può sempre essere certo del fatto che Alice possegga $20• Alice non può spendere gli stessi soldi due volte (double spending)I sistemi basati su blockchain, come Bitcoin, implementano con successo un ledger distribuito in grado di provvedere queste garanzie

Page 10: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin• Prima criptovaluta, nata come sistema di pagamenti completamente decentralizzato, anonimo e indipendente da entità governative• Completamente decentralizzato, gestito, generato e controllato dai suoi utenti, sulla base di un protocolloben definito e chiaro a tutti• Blockchain utilizzata come ledger distribuito per verificare la validità delle transazioni • Creata nel 2008 da uno misterioso sviluppatore (o un collettivo) conosciuto “Satoshi Nakamoto”, la cui identità è ancora sconosciuta• Non è infinita; possono esistere max ₿21mln

Page 11: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

BlockchainUna blockchain è, fondamentalmente, un database:• decentralizzato (nessuna autorità centrale)• distribuito (MA tutto il ledger, cioè l’interablockchain, è replicato su tutti i nodi che fanno parte del core della rete)• composto da una catena di blocchi immutabili• basato su crittografia e firma digitale per garantire riservatezza, immutabilità e “proprietà” dei datiOriginariamente progettata come libro mastro distribuito(distributed ledger) per Bitcoin

Page 12: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain Size Circa 157 GB Jan 2009 Jan 2018

Page 13: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain Size Circa 157 GB Apr 2017 Mar 2018

Page 14: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin• Consiste in una rete globale di computer, detti nodi, ciascuno dei quali mantiene una copia completa della blockchain• Permette l’invio e ricezione di pagamenti verso altri utenti della piattaforma, identificati da indirizzi completamente anonimi e non tracciabili• Fa estensivo uso di crittografia, sia per garantire integrità dei dati mediante algoritmi di hash, sia per l’autenticazione (mediante schemi di firma a chiave pubblica/privata)• È potenzialmente libero ed indipendente da influenze governative, banche e industria; è una moneta completamente decentralizzata

Page 15: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: un primo glossario• Indirizzo: una stringa alfanumerica che rappresenta un’identità sul ledger, utilizzato come riferimento per l’invio di valute; ciascuna identità è associata a una coppia di chiavi (una privata e una pubblica) che consente di effettuare transazioni con la propria criptovaluta• Transazione: rappresenta l’invio di criptovaluta da un indirizzo ad un altro (possono coinvolgere più di un indirizzo)• Blocco: entità di base della blockchain, che contiene un insieme di transazioni valide, immutabili e irreversibili

Page 16: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: un primo glossario (ancora…)• Rete: è una rete peer to peer, in cui ogni partecipante alla rete è sia client che server (genericamente detto nodo)• Miner: nodo appartenente alla rete che genera nuovi bitcoin e registra nuove transazione (per fare questo deve risolvere la cosiddetta Proof of Work, acquisendo così il diritto di inserire un nuovo blocco alla rete, come dettagliato nel seguito)• Wallet: nodo appartenente alla rete che mantiene identità

Page 17: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: componenti di un nodoI nodi di Bitcoin possono essere di quattro categorie:• Wallet: i nodi wallet si occupano di fare store di identità• Miner: sono i nodi “speciali” che si occupano di fare mining• Full Blockchain: sono i nodi completi i quali conservano tutto il ledger• Network: diffondono sulla rete i nuovi blocchi e transazioniricevute

Page 18: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: tipi di nodi

Page 19: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

I nodi miner mantengono collettivamente la blockchainLa Blockchain Bitcoin

Page 20: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

La base: algoritmi di hashingFunzione di hash: algoritmo che, dato un contenuto (es. ‘potato’) in input, ritorna un valore numerico univoco detto hash (es., ‘e91254ad…’) avente, almeno, le seguenti proprietà:– Assenza di collisioni: dev’essere impossibile, o quasi, per due valori diversi avere identico hash– Non invertibilità: ricostruire l’input partendo dal suo hash deve idealmente richiedere la prova di tutti i valori possibili (attaccobrute force)Queste proprietà rendono ideali le funzioni di hash nel garantire integrità dei dati

Page 21: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain: struttura• Ciascun blocco contiene da 1 ad N transazioni• Ogni blocco fa riferimento all’hash crittografico del blocco precedente• Una volta aggiunto, un blocco è immutabile, e diviene traccia permanente delle transazioni a cui è associato

Page 22: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain: proprietà• Se qualcuno cambia qualsiasi parte del contenuto di Block#2, cambia di conseguenza Hash#2, e quindi anche il contenuto di Block#3, e così via• In breve: per costruzione qualsiasi cambiamento apportato a un blocco i-esimo cambia il contenuto di tutti i blocchi successivi (i+1, i+2, ecc.) nella catena

Page 23: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain: integrità dei dati• Se tutta la catena è replicata su molti nodi è possibili verificare, attraverso algoritmi di voting a maggioranza, se una copia è stata modificataChanged value Catena modificataCopia 1Copia 2Copia 3

Page 24: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain e Bitcoin: Nonce e creazione di un nuovo bloccoOgni blocco contiene :– PrevBlockHash: hash del blocco precedente– Merkle Tree Root: vediamolo in prima battuta come la parte dati del blocco, in realtà è l’hash dell’albero delle transazioni (garanzia di integrità) ottimizzazione per risparmiare spazio su disco utilizzato– Nonce: il numero (in realtà stringa alfanumerica), valutato a forza bruta (per tentativi) dal Miner, che consente di ottenere per il Block corrente un hash di valore minore di un valore obiettivo dato (il cosiddetto target, un hash che inizia con un certo numero di zeri)1. Hash(Block)2. < PrevBlockHash3.

Page 25: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: valore valuta e Proof-of-WorkIn generale, il valore di una valuta può derivare da:• Il suo valore intrinseco (commodity money, es: monete d’oro);• La sua convertibilità in un bene o altra valuta che abbia un valore intrinseco (representative money, es: gold certificates)• Una imposizione dall’alto (fiat money)Una valuta fiat non ha valore intrinseco; il valore dipende dall’obbligo di utilizzarla e dalla sua scarsità (se chiunque potesse stampare moneta, non avrebbe valore)

Page 26: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: valore valuta e Proof-of-WorkIn assenza di un'autorità (come una banca centrale o governi), Bitcoin non può essere fiat money; dev’essere la rete stessa a “stamparlo” e distribuirlo.La soluzione è Proof-of-Work: – I nodi miner assumono su di sé il compito di creare (“minare”) nuovi blocchi da aggiungere in coda alla blockchain, validando così, attraverso il loro inserimento nel nuovo blocco le transazioni in arrivo sulla rete (propagate a tutti i miner)– I miner investono tempo e risorse di calcolo per competere fra loro, risolvendo la sfida matematica di ricerca del nonce (costo approx di un miner entry-level € 3000)– Una volta che un nodo ha scoperto una soluzione, il miner reclama e pubblicizza il nuovo blocco alla rete, ricevendo nuovi bitcoin e commissioni sulle transazioni come premio; gli altri abbandonano il lavoro e ricominciano con un nuovo blocco

Page 27: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: miner e transazioni• Quando un utente desidera inviare BTC ad un altro utente, genera una transazione utilizzando il suo indirizzo e la pubblica, proteggendola con un meccanismo a chiave asimmetrica, inviandola ai miner che conosce che la propagano a tutta la rete (oltre all’ammontare desiderato, dev’essere aggiunta una commissione)• I miners raccolgono le transazioni, mentre ricercano un valore che soddisfi la challenge della Proof-of-Work– Il primo miner che riesce in questo intento, crea e pubblica un nuovo blocco– Le transazioni sono aggiunte immutabilmente al blocco, ne rappresentano parte integrante e non possono più essere modificate– Il miner guadagna la ricompensa per l’operazione (attualmente ₿12.5), oltre che le commissioni incluse nelle transazioni minate

Page 28: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

I miner creano nuovi blocchi e aggiungono le transazioni pendenti alla chain

Page 29: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: Proof-of-WorkLa ricerca del valore del nonce è la challenge della Proof-of-Work di Bitcoin che i miners debbono vincere:• Dopo aver aggiunto le transazioni che ha ricevuto, il miner ricerca un valore di nonce tale che l’hash dell’intero blocco sia minore di un dato valore (target); questa operazione richiede molte risorse e fortuna• Il livello di difficoltà viene scelto ogni 2016 blocchi (circa 2 settimane) attraverso un algoritmo noto a tutti, per mantenere il ritmo medio di un nuovo blocco ogni 10 minuti hash(block) < target

Page 30: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: consenso distribuitoPer evitare che si formino chains in competizione, la rete di Bitcoin utilizza il principio della longest chain per decidere quale sia la futura sequenza di blocchi considerata ufficiale da tutti i blocchi:• Viene privilegiata la catena con più lavoro dietro, ovvero la catena su cui i miners hanno dimostrabilmente utilizzato più risorse• La rete passa immediatamente ad un ramo più lungo, scartando gli altri• Quando un blocco finisce in un ramo “morto” diviene scartato, e diviene stale: le sue transazioni sono ritornate al pool (globale), in attesa di un nuovo miningQuesto è l’algoritmo che permette il raggiungimento di consenso distribuito

Page 31: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: the cost of mining• HW ha un costo che parte da € 3000• Attività molto power-consuming• Legata al costo dell’energia elettrica (da $ 3200 in Lousiana a $ 9500 alla Hawaii per un singolo bitcoin)

Page 32: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain: alcune prime conclusioniBitcoin attraverso la sua blockchain ha mostrato un nuovo modello:– Basato su consenso completamente distribuito, basato su Proof-of-Work– In grado di mantenere completa fiducia in assenza di terze parti– Libero, “democratico” e senza autorità centraliQuesta prima implementazione però è risultata piuttosto limitata al di fuori del caso d’uso economico:– Scarsa espressività, prettamente limitata a transazioni finanziarie, e non facilmente estendibile– Impossibilità (o quasi) di esprimere dati e relazioni complessi

Page 33: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bitcoin: questioni aperteTecnologiche• Scalabilità: se si raggiungessero rate transazioni di VISA (circa 2000/sec) si avrebbe una crescita dello stato di 8TB/anno• Anomalia Blockchain: si è già dimostrato che per specifici attacchi in presena di partizione di rete è possibile avere casi di double spending• Standardizzazione: per ora tutto basato su prototipi aperti, ma carenza standard ben definitiSociali• Discruptiveness: cambio di paradigma, che richiederà tempo per essere accettato• Payment network or veritable revolution: probabilmente la seconda…

Page 34: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Blockchain: oltre Bitcoin A partire dal 2014, con Ethereum sono emerse nuove implementazione di blockchain e criptovalute, focalizzate su un maggiore potere espressivo delle transazioniIn particolare, queste si sono focalizzate su concetti chiave come:• Smart Contracts• Exchange decentralizzati• Decentralized Autonomous Organizations (DAO)• Microtransazioni e maggiore velocità di mining• Creazione e trasferimento di risorse virtuali: Smart Property

Page 35: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bibliografia e riferimentiBitcoin and Cryptocurrency Technologies -https://www.coursera.org/learn/cryptocurrencyUnderstanding the DAO attack - https://www.coindesk.com/understanding-dao-hack-journalists/ https://www.bloomberg.com/features/2017-the-ether-thief/Paritiy Multi Sig wallet attack - https://medium.com/blockcat/on-the-parity-multi-sig-wallet-attack-83fb5e7f4b8cS. Nakamoto, “Bitcoin - A Peer-to-Peer Electronic Cash System” -https://bitcoin.org/bitcoin.pdfEthereum Whitepaper - https://github.com/ethereum/wiki/wiki/White-PaperEtherisc Whitepaper - https://etherisc.com/whitepaperStorj - https://storj.io/Golem - https://golem.network/Streamr - https://www.streamr.com/

Page 36: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Bibliografia e riferimentiBitcoin: The End of Money as We Know It - http://www.imdb.com/title/tt4654844/The Verge, “Blockchain is Meaningless” -https://www.theverge.com/2018/3/7/17091766/blockchain-bitcoin-ethereum-cryptocurrency-meaning

Page 37: University of Bologna - DISI · Bitcoin attraverso la sua blockchain ha mostrato un nuovo modello: – Basato su consenso completamente distribuito, basato su Proof-of-Work – In

Q&A and ContactsLuca Foschini Email: [email protected]. +39 051 2093541 Antonio CorradiEmail: [email protected]. +39 051 2093083