Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bitcoin & Blockchain (parte 1) - Università degli Studi di Padova (04/12/17)

Bitcoin & Blockchain (parte 1) - Università degli Studi di Padova (04/12/17)

Talk presso il Dipartimento di Ingegneria dell'Università degli Studi di Padova
---------------------------------------------------------------------------
Segui il Blockchain Education Network Italia su:

➡ Facebook: https://www.facebook.com/BlockchainEduIT
➡ Twitter: https://twitter.com/BlockchainEduIT
➡ Forum Bitcoin Talk: http://goo.gl/zqDdte

http://blockchainedu.net

Transcript

  1. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Chi siamo Il Blockchain Education Network è un’associazione non-profit dedicata a favorire la divulgazione e la ricerca in ambito blockchain, alla creazione di network tra i membri e facilitare la nascita di progetti
  2. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    2000 Membri nel mondo 8 Start-up blockchain nate in seno all’associazione +450 Membri in Italia
  3. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Febbraio 2014 Nascita del BEN in America fondendo vari Bitcoin Club universitari Dicembre 2014 Nascita del BEN in Italia Maggio 2015 100 studenti universitari iscritti in Italia Giugno 2016 Organizzazione conferenza in Regione Lazio Luglio 2016 Partecipazione a tavoli tecnici di lavoro in Regione Lazio Dicembre 2016 Organizzazione di vari eventi divulgativi in tutta Italia Maggio 2017 Partecipazione al forum PA Luglio 2017 Organizzazione eventi divulgativi a Roma e Milano Storia del BEN
  4. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    bitcoin (b minuscola) indica la criptovaluta: •  Un bene immateriale •  Un mezzo di scambio •  Una riserva di valore •  Non è regolato da un’autorità Bitcoin (B maiscuola) indica il protocollo ed il sistema di funzionamento: •  Pagamento elettronico che non deve passare da un’autorità intermediatrice (decentralized)
  5. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    •  In bitcoin abbiamo una coppia di chiavi che controlla l’accesso (nella coppia, una chiave è definita privata e l’altra pubblica), usando la cri+ografia a chiavi asimmetriche si riesce a decifrare un messaggio aBraverso l’uso di una chiave di decifratura (privata) che non è ricavabile dalla chiave di cifratura (chiave pubblica) •  Pensa alla chiave pubblica come ad un numero di conto bancario e la chiave privata come il PIN segreto
  6. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Crittografia k K A Elliptic Curve Moltiplication Hashing Function (SHA256, RIPEMD160) CHIAVE PRIVATA CHIAVE PUBBLICA BITCOIN ADDRESS ESEMPIO DI CHIAVE PRIVATA 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530 EDCC32C8FFC6A526AEDD u  La chiave privata (k) può essere numero scelto a caso tra 1 ed n-1 (dove n è un pò meno di 2^256) ESEMPIO DI BITCOIN ADDRESS 1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy u  Si usano funzioni di crittografia unidirezionale per passare da k ad A, infatti il rapporto mostrato in figura è (k_to_K_to_A)
  7. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    La chiave pubblica è calcolata dalla chiave privata uYlizzando la proprietà di mol1plicazione delle curve elliHche, che è un’operazione irreversibile: \(K = k * G\) dove k è la chiave privata, G è un punto costante deBo “punto di generazione” e K è la chiave pubblica risultante
  8. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    •  La «catena dei blocchi» è il database che contiene tutti i file dati che vengono estratti e trasferiti nella rete. •  Ha la funzione di registro pubblico di tutte le transazioni che vengono via via firmate e verificate crittograficamente. •  Preserva da duplicazioni, falsificazioni e doppi pagamenti. •  E’ distribuita per tutti i client dei nodi della rete che partecipano al protocollo Bitcoin. Bitcoin è un protocollo basato su una tecnologia chiamata «Blockchain»
  9. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    •  Transazioni registrate in un database •  Tutti vedono le transazioni di tutti •  Non è necessaria alcuna fiducia
  10. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Blockchain Permissionless vs Permissioned •  Non ci sono restrizioni su chi processa le transazioni •  Libro mastro che registra i trasferimenti di valore decentralizzato e aperto a tutti •  Ogni transazione è crittograficamente collegata con quella precedente •  Più aBraente per imprese e servizi finanziari •  Il processo della transazione è eseguito da enYtà già predefinite PERMISSIONLESS PERMISSIONED
  11. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    STATUTO ELEZIONI DELIBERA Caso d’uso Blockchain notarizzazione di documenti associativi con blockchain bitcoin
  12. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Abbiamo iniziato così, e ora... © Blockchain Educa1on Network Italia 2017 – All Rights Reserved
  13. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    •  Nei blocchi sono inserite le transazioni •  Capacità massima dei blocchi 1MB •  7 transazioni al secondo (Visa gestisce 24.000 transazioni al secondo) Blockchain = Catena di Blocchi
  14. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Proof of Work (PoW) •  L’algoritmo di proof-of-work comporta l’effeBuare ripetutamente un’operazione di hashing dell’header del blocco e un numero casuale con l’algoritmo criBografico SHA256 fino a che non emerga una soluzione corrispondente a un determinato paBern •  Il primo miner che trova la soluzione pubblica il blocco nella rete e ofene il reward (aBualmente il reward è di 12.5 BTC per blocco, viene dimezzato ogni 4 anni) •  La difficoltà viene aggiornata ogni 2016 blocchi (circa due sefmane), la nuova difficoltà viene calcolta in base al tempo che è stato impiegato per calcolare 2016 blocchi
  15. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Conferme •  Inizialmente, quando si invia una qualsiasi transazione, questa viene vista come “unconfirmed" (non ancora confermata) •  Questo significa che la transazione è stata propagata sul network ma non è stata ancora inclusa nel registro di transazioni bitcoin (blockchain) •  Per essere inclusa, la transazione dovrà essere "pescata" da un miner e inclusa in un blocco di transazioni. Una volta che è stato formato un nuovo blocco, in circa 10 minuti, la transazione contenuta nel blocco sarà accettata e considerata "confermata" (Confirmed) dal network e potrà essere spesa.
  16. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Conferme •  Sei o più conferme sono considerate una prova sufficiente che la transazione non possa essere annullata (questo perché si necessiterebbe di un’ammontare immenso di computazione per invalidare il blocco e ricalcolarne altrettanti) •  La transazione è vista da tutti istantaneamente, ma è "considerata valida" da tutti solo quando è stata inclusa in un nuovo blocco che abbia ricevuto la conferma del mining.
  17. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Ricapitolando, nel mining: NODI DELLA RETE •  validano le transazioni già incluse nei blocchi •  verificano la Proof of Work nei blocchi •  mantengono tutti I blocchi validi che vedono, ma considerano come catena principale quella con più lavoro MINERS •  validano le transazioni e le inseriscono nei blocchi •  attribuiscono la Proof of Work ai blocchi per generare nuovi bitcoin •  trasmettono il loro blocco
  18. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Problemi •  La blockchain è “limitata” (solo 7 transazioni al secondo, Visa ne processa 24.000 al secondo) •  Le fee (tasse) sulle transazioni non sono più così irrisorie, o almeno non sempre: se la rete è “conges=onata”, i miner danno priorità per inserire la transazione nel primo blocco disponibile a chi è disposto a pagare la fee più alta •  ABualmente, micropagamenY non convenien1 (ad esempio un caffè)
  19. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Soluzioni SOLUZIONE (1) Aumentare la grandezza dei blocchi (blocchi attuali 1MB) PROBLEMA PER SOLUZIONE (1) •  Soluzione temporanea e non definitiva •  Per permettere a 7 miliardi di persone di fare due transazioni al giorno servirebbero blocchi da 46GB •  La blockchain diventerebbe davvero pesante •  Gli utenti che non aggiornano il client vedono come non validi blocchi >1MB (non retrocompatibilità, rischio hard fork)
  20. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Soluzioni SOLUZIONE (2) •  Transazioni off-chain PROBLEMA PER SOLUZIONE (2) •  Problema legato alla malleabilità della transazione (è un attacco che consiste nel modificare delle parti di una transazione creandone una ugualmente valida ma con un identificativo diverso) OFF-CHAIN
  21. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Soluzioni SOLUZIONE (3) Transazioni Segregated Witness (SegWit), ossia si sposta su off-chain la parte “witness” della transazione
  22. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Bitcoin forks Hard Fork SoR Fork Pro: Tecnicamente più semplice Contro: Non retrocompatibile, i vecchi nodi rifiutano i nuovi blocchi Pro: Retrocompatibile i vecchi nodi non esclusi dal network Contro: Technical debt
  23. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Esempio: Bitcoin Cash (fork di Bitcoin) Block 478558 Blockchain Bitcoin Blockchain Bitcoin Cash Blockchain Bitcoin
  24. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    •  C: Picocoin •  C++: Libbitcoin •  C#: BitcoinLib •  Objective-C: BitcoinSP •  … •  PHP: Bitcoin-php •  Python: Pycoin •  Java: BitcoinJ •  Javascript: BitcoinJS •  JavaScript: Bitcore Sviluppo Software: librerie
  25. © Blockchain Educa1on Network Italia 2017 – All Rights Reserved

    Jobs •  IoT / Blockchain Solution Architect •  Blockchain Garage Senior Developer Global Innovation Blockchain Product Manager •  Manager – Innovation •  Intern - Research, Blockchain (PhD) • AAE Blockchain Senior Consultant • Junior Blockchain Developer