Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine

Pagina creata da Matilde Belotti
 
CONTINUA A LEGGERE
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain:
dalle crittovalute agli smart
contract
Prof. Marino Miculan – DMIF, Università di Udine
marino.miculan@uniud.it

Fondazione Friuli
20 dicembre 2019
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Bitcoin Mania
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Come spiegare Bitcoin e la Blockchain?
• Spiegare Bitcoin in forma breve non è semplice
• Sovrapposizione di:
    • Crittografia
    • Reti informatiche e trasmissione dati
    • Teoria dei giochi
    • Teoria economica e monetaria
• Ma soprattutto, un cambio di paradigma culturale
    • Da un sistema basato su autorità centrali e riconosciute
    • A un sistema decentralizzato, con assenza di fiducia
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Agenda
1. Bitcoin e blockchain: concetti di base
2. Breve prospettiva storica
3. Bitcoin e blockchain: come funzionano
4. Come vengono creati i bitcoin (il processo di mining)
5. Alcune possibili applicazioni della Blockchain
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
1. Bitcoin e blockchain:
concetti base
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Cos’è il Bitcoin? Concetti base
• Crittovaluta: "Una valuta digitale in cui vengono utilizzate tecniche di
  crittografia per regolare la generazione di unità di valuta e verificare il
  trasferimento di fondi, operando indipendentemente da una banca
  centrale".
• Bitcoin è una crittovaluta (ma ce ne sono altre)
• "Bitcoin" può fare riferimento a:
 • Bitcoin (maiuscolo) il protocollo, il software e
   la comunità
 • bitcoin (convenzionalmente in minuscolo)
   l'unità monetaria
• Bitcoin esiste esclusivamente come software
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Cos’è il Bitcoin? Concetti base
• Crittovaluta: deriva la fiducia da:
 • NON da statuti a corso legale (come valute legali, fiat)
 • NON dalle proprietà chimico / fisiche
 • Ma da proprietà matematiche
• basato su principi crittografici, affidabili e consolidati
 • hash crittografico (SHA256)
 • firme digitali (ECDSA)
• algoritmo distribuito per il consenso decentralizzato tra sistemi
  peer-to-peer senza fiducia (la blockchain)
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Bitcoin come rete peer-to-peer è ...
• Decentralizzata e distribuita
• democratica (in un certo senso)
• senza alcuna autorità centrale (cioè non
  supportata da alcun governo o organizzazione)
• Questo implica:
 • Nessuna necessità delle banche come
   intermediari di fiducia
 • Nessuna banca centrale coinvolta
   nell'emissione di denaro
 • Efficienza bancaria a basso costo per tutti,
   ovunque
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Da dove Bitcoin prende il suo valore?
•Bitcoin ha valore perché le persone credono che
abbia un valore

•Il valore di un bene è il prezzo che reca
Bitcoin e blockchain: dalle crittovalute agli smart contract - Prof. Marino Miculan - DMIF, Università di Udine
2. Breve prospettiva storica
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Breve storia di Bitcoin
La storia dei bitcoin suddivisa in alcuni capitoli rappresentativi
• Pre Bitcoin-2009: sogni e ideali libertari
• 2009-2010: lo sviluppo iniziale di Bitcoin
• 2010-2012: scandali, hack e attività illegali
• 2013-2014: Bitcoin attira l'attenzione
• 2014: accettazione dei commercianti
• 2013-2014: startup Bitcoin finanziate da Venture
• 2015-Present: Bitcoin fa fatica a scalare
• 2014-Presente: Arrivo e diffusione di Ethereum
• 2015-Presente: l'aumento di interesse per le "blockchain" da parte delle
  banche e aziende
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Il sogno libertariano dei cypherpunk
• Con l'avanzamento della tecnologia negli anni '80 e '90, nacque
  il movimento Cypherpunk
• I cypherpunk erano ossessionati dal modo in cui la tecnologia
  avrebbe cambiato il rapporto tra individuo e Stato, e di come le
  persone potevano proteggere le loro informazioni personali e
  mantenere la loro privacy dal governo
• Manifesto di Cypherpunk: "La privacy è necessaria per una
  società aperta nell'era elettronica".
• Radici nel libertarismo (minima ingerenza dello Stato nella vita
  dei cittadini) (Locke, Von Hayek, Nozik)
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Cambiare il concetto di denaro
• Il sistema finanziario esistente
  è stato visto come una delle
  maggiori minacce alla privacy
  individuale
• DigiCash è l'esempio più famoso
  delle prime criptovalute
    • basato su un'organizzazione
      centrale, per confermare
      ogni firma digitale.
    • Alla fine, la società di
      Chaum fallì
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Satoshi Nakamoto e Bitcoin (2008)
• Satoshi Nakamoto è l’autore
  anonimo di Bitcoin che in un
  white paper di nove pagine ha
  combinato brillantemente tutti gli
  sforzi precedenti per creare un
  denaro digitale autosufficiente
  (31 novembre 2008)
• All’inizio, pochi ci hanno creduto
  (dati i fallimenti dei precedenti
  tentativi)
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Genesis Block (2009)
• Blocco Genesis, estratto il 3
  gennaio 2009
• La base del blocco della
  genesi fa riferimento a una
  storia del quotidiano Times
  of London che coinvolge il
  Cancelliere che ha salvato le
  banche
• Prima transazione bitcoin il
  12 gennaio 2009 con Hal
  Finney
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

The Sixty Million Dollar Pizza
• Il 21 maggio 2010, Laszlo Hanyecz ha acquistato pizze
  per un valore di 25 USD pagando 10.000 BTC
• Questa è stata la prima transazione Bitcoin al mondo
  per un bene tangibile
• Per la maggior parte delle persone, il mining di bitcoin
  era semplicemente un hobby

• 10.000 BTC equivalgono ora
  a 64.136.800 euro
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

2010-12: Scandali, hack, attività illegali: Silk Road
• Nel febbraio 2011, ha aperto Silk Road, un negozio online di scambi illecito
  per gli affari di droga ed altro (“l’eBay per le droghe”). Pagamenti in Bitcoin.
• Nell'ottobre 2013, l'FBI ha chiuso Silk Road, confiscando 3,6 milioni di dollari
  di bitcoin.
• Ross Ulbricht, il fondatore di
  Silk Road, sta scontando l'ergastolo
  senza possibilità di libertà vigilata

• Molti altri scandali e hack, che
  hanno portato a consistenti perdite
  di bitcoin, ma sono dati dalla cattiva
  gestione dei servizi, non da problemi
  del protocollo di Bitcoin (morale: mai
  fidarsi di nessuno :) )
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

2014 - accettazione da parte dei commercianti
(Da CoinDesk)
• 2014 gennaio: Porn.com accetta Bitcoin
• 2014 gennaio: Overstock.com diventa il primo grande rivenditore ad
  accettare Bitcoin
• 2014 aprile: I nuovi distributori automatici di marijuana del Colorado
  accettano Bitcoin
• Settembre 2014: Partner PayPal con Coinbase, BitPay
• 2014 dicembre Microsoft accetta pagamenti con Bitcoin
•…
• Al giorno d’oggi, i bitcoin sono ampiamente accettati come forme di
  pagamento
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

2015-Oggi: Ethereum
• Bitcoin si basa su un linguaggio di scripting semplice e limitato.
• Ethereum è una versione di Bitcoin che supporta linguaggio di
  programmazione reale (“Turing completo”).
• Permette applicazioni decentralizzate complesse, chiamati smart contract
• Enorme potenziale per nuovi modelli di governance
• Storia:
         • Fine 2013: Ethereum descritto nel white paper di Vitalik Buterin
         • Luglio e Agosto 2014: Ethereum crowdsale
         • 30 luglio 2015: lancio della blockchain di Ethereum
         • Oggi: capitalizzazione dei token > 12.5 miliardi di euro
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Iniziative di “Private Blockchain"
• R3CEV
   • Inizia settembre 2015
• Chain - collaborazione con società finanziarie
  per la costruzione di uno standard aperto
• Progetto Hyperledger: blockchain open source per le aziende
   • Gestito da Digital Asset Holdings, IBM, Linux Foundation …
   • Ecosistema molto ricco
3. Bitcoin e blockchain:
come funzionano
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Bitcoin: Il Protocollo
• Blockchain: Libro mastro pubblico distribuito delle transazioni
• Le transazioni specificano il trasferimento di proprietà di una
  risorsa scritturale digitale
  • un "token digitale" che può essere scambiato, ma non
    duplicato
• Il registro è condiviso con la tecnologia peer-to-peer e conserva
  per sempre tutte le transazioni, che sono accessibili a tutti
• Potrebbe sostituire qualsiasi autorità centrale di registrazione
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

     Il funzionamento di blockchain in una slide

○ Transazioni: trasferimenti di
  bitcoin da indirizzi di input a
  indirizzi di output
○ Blocchi: raccolta timestamp di
  transazioni.
○ Minatore: agente che convalida
  le transazioni e le inserisce in
  blocchi
○ Blockchain: l'intera serie di
  blocchi 'incatenati' insieme
○ I minatori competono per
  aggiungere blocchi, il "vincitore"
  viene compensato con bitcoin
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Identità in Bitcoin
• Bitcoin è pseudonimo, non anonimo
• Più simile ai «conti correnti numerati» nei paradisi fiscali ...
• ... ma le cui transazioni sono visibili a tutti!
• L'indirizzo bitcoin non fornisce informazioni dirette sul
  proprietario del bitcoin
• L’indirizzo è generato direttamente dall’utente con tecniche
  matematiche da numeri casuali (chiavi pubbliche/private)
• Se si perde l’anonimato (ossia si riesce a risalire al possessore di
  una chiave privata corrispondente ad un cert indirizzo ad una
  persona), si possono tracciare tutte le transazioni dall'inizio.
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Identità in Bitcoin
• Un utente può generare tutte le chiavi (e gli indirizzi) che desidera,
  autonomamente, e senza chiedere niente a nessuno
• Indirizzo di esempio: 3EnQkjmt3Pv2Uyk8gG736xYKen9efED5LQ
• Due utenti potrebbero generare le stesse chiavi (e indirizzi)?
   • La probabilità che ciò succeda è praticamente 0, perché la quantità
     di chiavi è ENORME
   • 2^160 indirizzi possibili
     (1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.
     976 indirizzi)
   • Granelli di sabbia sulla terra: 2^63
   • Se «vediamo un mondo in un granello di sabbia»: 2^126, che in
     realtà è solo 0,0000000058% di 2^160
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Transazioni
• Una transazione ha un elenco di indirizzi di
  input e un elenco di indirizzi di output
• Significato: "la proprietà dei bitcoin dagli
  indirizzi di input viene trasferita a questi
  indirizzi di output, secondo queste quote”
• Gli indirizzi di input devono essere gli
  indirizzi di output di una transazione
  precedente
• Tx tipica: un ingresso, due uscite
• Non si spende “un bitcoin”, ma si spende
  “QUESTO” bitcoin
Bitcoin e blockchain - dalle crittovalute agli smart contract             M. Miculan

Una transazione Bitcoin - versione base
• Le transazioni vengono immesse tramite il software
  “wallet"
    • La creazione del Wallet genera un indirizzo Bitcoin
• Per ricevere denaro, si condivide l’indirizzo del wallet
    • Il mittente specifica l'indirizzo e l'importo
    • La transazione viene trasmessa alla rete, dove i
      "minatori" la verificano e la aggiungono alla
      cronologia delle transazioni in un nuovo blocco
• Una volta convalidata, la transazione viene archiviata
  per sempre

                                                                                Coinbase interface
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

  Transazioni
• Ogni transazione, per essere
  valida, deve utilizzare indirizzi
  di input che non sono utilizzati
  da altre transazioni
• Gli indirizzi di output che non
  sono utilizzati come input di
  alcuna transazione è dove
  risiede attualmente la
  proprietà effettiva
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Analogia: il catasto tavolare
• Esempio familiare: i lotti di terreno
     • Una particella non si sposta, cambia solo la proprietà
• Il sistema della blockchain è come il Catasto tavolare
     • Il sistema tavolare è un sistema a base reale: riguarda non
       le "persone" dei proprietari o dei creditori, bensì sempre
       ed esclusivamente il bene immobile che forma l'oggetto dei
       diritto
     • Per ogni lotto (particella) è presente un foglio che registra
       i cambiamenti di proprietà
     • I lotti possono essere suddivisi e uniti, producendo nuovi
       fogli
• Il Grundbuch (libro fondiario) è la blockchain!
• Differenza fondamentale: il Grundbuch è centralizzato, la
  blockchain è distribuita
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Blockchain = concatenazione di blocchi di transazioni
• blocco: contiene un gruppo ordinato di transazioni
• I timestamp delle transazioni sono immutabili
• Ogni blocco fa riferimento a un blocco precedente
• Ogni blocco ha altezza e profondità (conferme)
        • Più un blocco è profondo, più è
          considerato sicuro
        • Attualmente 609 k blocchi, e in crescita
• Blockchain = l'intera serie di blocchi 'concatenati'
  insieme
        • cfr. le pagine rilegate del Grundbuch
4. Come vengono creati i Bitcoin:
il mining
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Il problema della doppia spesa
• Problema: se ogni transazione è creata autonomamente
  da ogni utente, come possiamo impedire che un utente
  spenda due (o più) volte lo stesso output?
    • “doppia spesa” (“double spending”)
• In un sistema centralizzato (p.e. banca, catasto, PRA),
  viene controllato da chi gestisce il registro
• Ma in una blockchain non c’è nessun “sistema centrale”
• Qui entra in gioco l’idea di proof-of-work di Nakamoto
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Mining di un blocco

• Le transazioni non vengono confermate
  immediatamente, ma vengono tenute in sospeso
1.Prima il miner deve controllare la sua copia della catena
  di blocchi per assicurarsi che le transazioni siano
  legittime.
2.In secondo luogo, il suo computer deve utilizzare le
  risorse per risolvere un difficile enigma matematico,
  assolutamente inutile
3.Solo dopo aver trovato la soluzione, può annunciare il
  blocco delle transazioni sulla rete
     • In cambio si auto-assegna un premio (block reward,
       attualmente 12.5 BTC = 80.900 EUR)
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Il mining è una gara tra miner

• Mining = competizione per verificare le transazioni
• Supponiamo che Alice voglia spendere lo stesso BTC due volte
  • Deve fare due transazioni con lo stesso input e due output diversi
  • Per convincere tutta la rete che entrambe vanno bene, deve
     “minare” un secondo blocco (contenente la truffaldina seconda
     spesa) PRIMA dei nodi onesti
  • Ma la probabilità che ci riesca è proporzionata alla potenza di
     calcolo che Alice può controllare.
• Finché la maggior parte della potenza di calcolo sulla rete è
   controllata da persone oneste, i nodi onesti hanno più
   probabilità di vincere la gara prima dei nodi disonesti (Alice)
• MAJORITY IS AN AUTHORITY
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Attacco del 51%
• Se i nodi malevoli sono in grado di controllare la maggioranza
  della potenza di calcolo, possono «cambiare» la storia come
  desiderano
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Attacchi 51%
Tuttavia, se un gruppo di nodi assembla così tanta potenza di CPU, ha questo
dilemma:
• Utilizzarlo per attaccare il sistema, ma allora nessuno lo userebbe più e il
  valore dei bitcoin diventerebbe zero.
• Oppure usarlo per estrarre bitcoin, guadagnando più bitcoin onestamente.

Se i nodi hanno interesse nel sistema Bitcoin, sono incentivati ad agire
onestamente, altrimenti “rompono il giocattolo”.

Questo è tuttavia un problema per gli altcoin - chiamati altcoin infanticide (ad
esempio, un singolo miner di Bitcoin, Luke-Jr., ha ucciso CoiledCoin riempiendo
la sua blockchain di blocchi inutili molto più velocemente dei minatori onesti di
CoiledCoin, che quindi hanno abbandonato la crittovaluta)
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Quanto è difficile trovare un blocco?
• In media all'incirca ogni 10 minuti
   • Difficoltà del problema viene aggiustata ogni 2 settimane
• Bitcoin è in offerta limitata: 21 milioni di bitcoin entro il 2141
   • Si dimezza la ricompensa ogni 4 anni (halving)
   • L'80% è già stato estratto
   • Successivamente, non verranno creati altri bitcoin
   • E i bitcoin potrebbero andare (e essersi persi) persi - per
     sempre! (p.e. di proprietà di indirizzi la cui chiave privata
     è andata persa)
     • Un mercato deflazionario!
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Block Reward :: Bitcoin Halving
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Come è fatto un petahash miner
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Costi operativi per i miner
• Energia utilizzata per estrarre Bitcoin è considerevole
• In pratica un miner è un stufa elettrica che ti fa
  guadagnare
• Il consumo di energia della rete Bitcoin è paragonabile a
  quello di un piccolo Paese (oggi, circa come la Svizzera o
  l’Austria)
   • Equivalente a 25 centrali come quella di Monfalcone
• È vantaggioso (= più profitto) dislocare i miner dove
  l'elettricità è più economica
   • Ma in tali luoghi l'energia viene prodotta principalmente
      dal carbone e dal petrolio, quindi c'è un grande impatto
      sull’ambiente (grandi emissioni di CO2)
5. Alcune applicazioni della
Blockchain
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Registro pubblico inalterabile
• La Blockchain può essere utilizzata come un registro pubblico
  immutabile per archiviare praticamente tutti i dati, per sempre,
  anche in una situazione di mancanza di fiducia tra le parti
• Utile per dimostrare l'esistenza di qualcosa in un determinato
  momento
• Robusto anche in contesti soggetti alla censura
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Registro pubblico inalterabile
• Possibili applicazioni:
   • Registro di passaggi di proprietà (come
     il catasto o il PRA)
   • Atti pubblici (es. anagrafe, stato civile)
   • Opere creative:
       • trademark
       • la hash di un documento / musica…
   • Tracciatura di beni (p.e. nella Supply
     Chain Management)
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

ethereum.org Turing complete contracts on a blockchain
• I contratti sono i principali elementi costitutivi di Ethereum.
• Un contratto è un programma per computer che vive all'interno della
  rete distribuita di Ethereum (come se fosse una transazione sospesa)
  e ha un proprio bilancio in ether, memoria e codice
• Ogni volta che si invia una transazione a un contratto, viene eseguito
  il suo codice, che può archiviare dati, inviare transazioni e interagire
  con altri contratti
• I contratti sono gestiti dalla rete, senza alcun controllo o proprietà
  centrale
• I contratti sono scritti in un linguaggio di programmazione familiare a
  qualsiasi programmatore
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Esempio: compravendita di una casa in Ethereum
Bitcoin e blockchain - dalle crittovalute agli smart contract   M. Miculan

Per maggiori dettagli
• “Bitcoin and Cryptocurrency Technologies” ottimo
  testo introduttivo
   • Disponibile a http://
     bitcoinbook.cs.princeton.edu

• “Mastering Ethereum” di A. Antonopoulos
   • Disponibile a https://github.com/
     ethereumbook/ethereumbook
Grazie per la vostra
attenzione
Prof. Marino Miculan
marino.miculan@uniud.it
Puoi anche leggere