SlideShare a Scribd company logo
BITCOIN
&
BLOCKCHAIN
CORSO SICUREZZA SU RETI
Sommario
● Introduzione
● Bitcoin
● Possibili protocolli
● Protocollo BlockChain
● Transazioni
● Wallet
● Legalità
● AltChain e AltCoin
Di cosa parleremo oggi?
● Bitcoin: analizzeremo questa moneta, completamente elettronica,
dalle origini fino all’utilizzo odierno
● Protocollo Bitcoin: andremo passo passo da un protocollo
immaginario semplice fino ad arrivare al protocollo utilizzato dai
Bitcoin (basato sulla Blockchain)
● Blockchain: Che cos’è, da cosa è formata e cosa ne garantisce la
solidità
● Indirizzi e wallet: come possedere dei bitcoin e come non perderli
● Transazioni: come ricevere ed effettuare i pagamenti in tutta
sicurezza
Di cosa parleremo oggi?
● Legalità: in Italia, Europa e nel mondo
● AlternativeChain: utilizzi alternativi della blockchain, firme digitali e
Timestamping
● AlternativeCoin: le monete digitali alternative al Bitcoin
Crittovalute e
Una criptovaluta (o crittovaluta o criptomoneta) è una
valuta paritaria, decentralizzata digitale la cui
implementazione si basa sui principi della crittografia per
convalidare le transazioni e la generazione di moneta in sé.
Come ogni valuta digitale, consente di effettuare
pagamenti online in maniera sicura.
Crittovalute e
Bitcoin, è una particolare crittovaluta, ideata nel 2009 da
una persona (o un gruppo) noti con lo pseudonimo di
Satoshi Nakamoto.
É stato il primo ad introdurre il concetto di “ledger”,
ovvero un libro contabile pubblico che contiene tutti gli
spostamenti monetari all’interno della rete.
Satoshi Nakamoto è reale?
Nel novembre del 2008 Satoshi Nakamoto pubblicò
il protocollo Bitcoin su The Cryptography Mailing list
sul sito metzdowd.com.
Nel 2009 ha distribuito la prima versione del
software client e successivamente ha contribuito sul
progetto in via anonima insieme ad altri sviluppatori,
per ritirarsi dalla comunità di Bitcoin nel 2010.
L'ultimo contatto da parte di Satoshi Nakamoto è
stato nel 2011, quando dichiarò di essere passato ad
altri progetti
Si, sono Satoshi Nakamoto, ma non sono
stato io ad inventare il Bitcoin
Satoshi Nakamoto è reale?
Le teorie sulla vera identità di Satoshi Nakamoto sono numerose. Nessuno sa
se è un 'lui', una 'lei' oppure se si tratta di 'loro'.
Adam Penenberg, un professore della New York University, sostiene che dietro
il personaggio misterioso ci sarebbero tre persone: Neal King, Vladimir Oksman
e Charles Bry. La tesi di Penenberg si basa su una ricerca effettuata su Google
di alcune frasi particolari del protocollo bitcoin che ti riconducono ad una
richiesta di brevetto per l'aggiornamento e la distribuzione delle chiavi di
crittografia. Il brevetto era stato richiesto proprio da King, Oksman e Bry, i quali
hanno negato di avere a che fare con il bitcoin.
Satoshi Nakamoto è Craig Steven Wright?
Nel dicembre 2015, secondo due articoli d'inchiesta pubblicati da
Wired e Gizmodo, Craig Steven Wright, imprenditore australiano,
sarebbe il creatore.
Il 2 maggio 2016, Craig Steven Wright ha pubblicamente dichiarato
di essere Satoshi Nakamoto. Al fine di dimostrare la sua
affermazione, ha firmato un messaggio con la chiave di crittografia
privata associata alla prima transazione in Bitcoin. Tuttavia la
validazione di questa firma è contestata…
Il 4 maggio 2016 Wright promette di pubblicare ulteriori prove per
dimostrare la sua identità. Ma il giorno successivo, cancella tutti i
post sul suo blog e pubblica una nota intitolata "I'm sorry" nella
quale dichiara che era pronto a pubblicare ulteriori prove ma di non
aver avuto il coraggio di farlo. Conclude la nota con un "arrivederci".
Quali sono state le idee alla base di
› Moneta esclusivamente elettronica
› Non è posseduta e/o controllata da nessuno
› Difficile da falsificare
› Essere ampiamente riconoscibile
› Possesso e trasferimento “anonimo”
› Ognuno può partecipare
Analizziamo i possibili protocolli per lo
scambio di moneta fino ad arrivare
all’implementazione proposta da Satoshi
Possibile protocollo 1
Alice
Bob
Trasferisco della moneta
Firmando con PK di Alice
PRO
› Chiunque può verificare la
veridicità della transazione
CONTRO
› Nulla impedisce ad Alice di
effettuare più transazioni
con la stessa moneta.
Possibile protocollo 2
Alice
Bob
Trasferisco della moneta
Firmando con PK di Alice
+
Numero di serie
PRO
› Chiunque può verificare la
veridicità della transazione
› Moneta unica
CONTRO
› Numero di serie non
verificabile con più utenti
+ Numero di serie
Possibile protocollo 3
Alice
Bob
Trasferisco della moneta
Firmando con PK di Alice
+
Numero di serieGet
SN(im
porto)
Num
ero
diserie
Banca
check(Numero di serie)
CONTRO
› Controllo della banca!
+ Ente centrale
Possibile protocollo 4
Alice
Bob
Trasferisco della moneta
Firmando con PK di Alice
+
Numero di serieGet
SN(im
porto)
Num
ero
diserie
Banca collettiva
check(Numero di serie)
PRO
› Tutti conoscono le
transazioni di tutti, il
controllo è nelle mani della
community
+ Banca collettiva
Database distribuito?
La community deve possedere un database
distribuito per contenere tutti i numeri di serie,
quindi un DB che mantiene in modo continuo una
lista crescente di record, i quali fanno riferimento a
record precedenti presenti nella lista stessa
resistente a manomissioni.
Possibile protocollo 5
Alice
Bob
Trasferisco della moneta
Firmando con PK di Alice
+
Numero di serie 123
Controllo nella propria copia
del db se esiste numero di
serie 123 ed non è stato usato
nella transazione
Eva
Trasferisco della moneta
Firmando con PK di Alice
+
Numero di serie 123
Anche Eva verifica nella nella
propria copia del db se esiste
numero di serie 123 ed non è
stato usato nella transazione
É difficile implementare un DB distribuito che sia
perfettamente sincronizzato con tutti gli utenti della
community
+ Database distribuito
Possibile protocollo 6
Alice
Bob
Trasferisco della moneta
Firmando con PK di Alice
+
Numero di serie 123
Controllo nella propria copia
del db se esiste numero di
serie 123 ed non è stato usato
nella transazione
In più la community deve
confermare la transazione
OK
Se la maggioranza della community
saranno dei bot, quest’ultimi
possono confermare le transazioni
false a piacimento dell’owner
+ Con pubblico consenso
Il protocollo BitCoin
Alice
Bob
Trasferisco della moneta
Firmando con PK di Alice
+
Numero di serie 123
Controllo nella propria copia
del db se esiste numero di
serie 123 ed non è stato usato
nella transazione
In più la community deve
confermare la transazione
OK
Per confermare, i partecipanti
devono presentare il proof-of-work
Come evitare l’attacco?
Per confermare lo scambio avvenuto è necessario risolvere
un problema matematico che richiede una grande quantità
di potenza di calcolo e tempo per risolverlo. Questo
impedisce la creazione di molte identità fittizie che
confermano gli scambi doppi.
Nel linguaggio tecnico, risolvere il problema significa
presentare una proof-of-work (prova di lavoro)
Proof-of-Work come funziona
Nel ambito dell’informatica, uno dei problemi impossibili da risolvere, è la
ricerca dell’inversa della funzione hash. In realtà, l’unico modo per
trovarla è scorrere tutti i possibili input e verificare l’output.
Allo scopo di verificare il lavoro svolto questo tipo di problema è
perfetto poichè è:
● Difficile da risolvere
● Facile da verficare
Proof-of-Work nel Bitcoin
Nella rete Bitcoin l’impostazione del problema è seguente:
Trovare un hash prodotto dall’algoritmo SHA256 che inizia con N zeri a
partire da un certo messaggio M aggiungendo una certa sequenza detta
NONCE
Aumentando o diminuendo la N è possibile moderare la difficoltà nella
risoluzione del problema
Bitcoin network
Quindi tutti devono presentare il proof-of-work per partecipare al
network?
NO!
Lo fanno i cosiddetti “miner”, di solito sono partecipanti con un hardware
molto performante (si tratta di centinaia di GPU) che si occupano della
risoluzione del problema
Perché lo fanno?
I miner sono incentivati dal sistema, dato che ogni problema risolto viene
remunerato dalla rete con 50 BTC inizialmente, qualche settimana fa 25
BTC ora 12.5BTC (in generale la quantità di BTC dimezza ogni 4 anni fino a
10^-8 + le commisioni
Bitcoin network algoritmo di conferma
● Il Miner è un nodo che non solo si occupa di presentare le
proof-of-work, ma accumula anche tutte le transazioni della rete
● Tutte le transazioni le inserisce all’interno di un contenitore
● Per la proof-of-work il messaggio è la checksum del contenitore
precedentemente confermato
● Una volta trovato, sigilla il contenitore e lo annuncia nella rete
allegando la proof-of-work relativa a quel contenitore.
● Altri partecipanti verificano la correttezza della proof-of-work e se è
valida, a loro volta, propagano il nuovo contenitore creato
step-by-step
● I contenitori delle transazioni sono definiti blocchi
● I blocchi non contengono solo le transazioni ma anche le seguenti
informazioni:
Riassumendo
Dimensione Campo Descrizione
4 byte Dimensione del blocco Dimensione totale del blocco
80 byte Intestazione I campi che compongono l’intestazione
1-9 byte Contatore delle
transazioni
Quanti transazioni sono contenuti in questo
blocco
Variabile Transazioni Tutte le transazioni contenute in questo
blocco
Dimensione Campo Descrizione
4 byte Versione Numero della versione
32 byte Hash del blocco
precedente
Il riferimento, hash del blocco padre
32 byte Merkle Root Hash della radice dell’albero di Merkle
4 byte Timestamp Tempo di creazione del blocco
4 byte Difficoltà Il proof-of-work algoritmo della difficoltà
per minare questo blocco
4 byte Nonce Valori casuali che hanno prodotto il
proof-of-work
Intestazione del blocco
Ma cosa fa si che un insieme di blocchi sia una catena?
…. quidi una blockchain?
Ogni blocco è collegato al blocco precedente e questo fa si che si formi
una catena. Il primo blocco della blockchain viene chiamato GENESIS
block, e non ha nessun precessore.
Possibile attacco
Nel caso un nodo voglia alterare una transazione contenuta all’interno di
un blocco, dovrebbe ricalcolare la proof-of-work per il blocco che la
contiene, e nel caso ci fossero, per tutti i blocchi successivi.
Problematiche di concorrenza
Come anticipato precedentemente i miner sono incentivati, quindi a
livello globale, ci sono tantissimi nodi che sono alla ricerca della
soluzione del problema . Questo crea problemi di sincronizzazione tra
migliaia di nodi.
Un problema molto evidente emerge quando in due parti del mondo
vengono creati blocchi con lo stesso padre contenenti transazioni
diverse
Più blocchi vengono minati contemporaneamente
Più blocchi vengono minati contemporaneamente
Più blocchi vengono minati contemporaneamente
Più blocchi vengono minati contemporaneamente
Più blocchi vengono minati contemporaneamente
Risoluzione del conflitto dei più blocchi
Se avviene la creazione di più blocchi contemporaneamente, vengono
considerati i blocchi dalla chain più lunga.
Le transazioni dal blocco da cestinare vengono rimesse nel pool
transazionale, l’incentivo al miner non viene pagato.
È un evento raro?
Bitcoin and blockchain
Il blocco contiene le transazioni...
Ma cosa sono le transazioni?
● Essenzialmente una transazione è uno scambio tra due o più
soggetti di uno o di una molteplicità di beni o servizi
● Nei bitcoin esistono 3 tipi di transazione:
○ Uno a molti
○ Molti a uno
○ Molti a molti
Transazione
È la transazione più semplice possibile nella rete bitcoin, Alice fa un
trasferimento a Bob.
Dato che la moneta non può essere spezzata (come ad esempio 50
Euro), Bob restituisce il resto ad Alice.
Transazione uno a uno con resto
Essenzialmente questa transazione permette di aggregare più
“monete” virtuali in una. Si potrebbe pensare al caso in cui Alice vuole
unire tutti i resti dalle transazioni precedenti in un unica moneta.
( Possiamo paragonarlo al nostro “ cambio “ in un unica bancanota )
Transazione molti a uno
Questa è l’operazione inversa a quella precedente, permette di dividere
una moneta in monete più piccole, si può pensare a un pagamento ai
dipendenti di una grande azienda
Transazione uno a molti
Riassumendo, ci sono vari tipi di transazione, ma tutto questo si riduce
ad un semplice concetto, la transazione è nient’altro che un
trasferimento da uno o più input ad uno o più output.
Quindi, gli input e gli output, nei bitcoin, devono corrispondere a dei
soggetti fisici . Ma come vengono identificati questi soggetti in piena
anonimia?
Ogni soggetto deve possedere un identificativo, detto indirizzo. Ma
come si ottiene l’indirizzo?
Transazione in generale
Ci rivolgiamo alla crittografia classica, con chiave pubblica e privata
Quindi, un utente che vuole ricevere i bitcoin, deve prima di tutto
generare la coppia di chiavi privata e pubblica. Usare la chiave pubblica
come indirizzo per ricevere i bitcoin ha i seguenti svantaggi:
● Avere un solo indirizzo potrebbe compromettere l’anonimia del
soggetto
● Generare più chiavi pubbliche da una chiave privata
comprometterebbe la sicurezza della chiave privata
Svantaggi nell’uso della propria chiave pubblica
come indirizzo bitcoin
k è una chiave privata generata da un utente
K è la corrispettiva chiave pubblica
A è un indirizzo bitcoin, che viene ricavato dalla chiave pubblica
Come ricavare l’indirizzo A dalla chiave K?
Algoritmo di generazione dell’indirizzo
Algoritmo di
generazione
dell’indirizzo
Bitcoin
Indirizzi Bitcoin - ricapitolando
La rete bitcoin per aumentare l’anonimia, richiede
la generazione di un nuovo indirizzo per ogni
pagamento ricevuto. Questo implica, che un
utente generico avrà un insieme di indirizzi
abbastanza grande.
Dove potrebbe conservarli?
Il concetto dei wallet
Un wallet è l’equivalente di un portafoglio, in pratica, è il nostro
contenitore di indirizzi bitcoin.
Nel wallet vengono contenuti tutti gli indirizzi bitcoin generati a
partire dalle nostre chiavi pubbliche associate alla chiave privata.
Se si vuole ricevere un pagamento in bitcoin è sufficiente generare
un nuovo indirizzo e fornirlo all’ordinante.
Tipi di wallet
● Online wallet
○ Servizi online senza mantenere la blockchain
sul proprio PC
● Offline wallet
○ Client con una piena copia della blockchain
● Paper wallet
○ La coppia chiave privata/pubblica è stampato
su carta
Online wallet service
Sono dei serivizi online che prendono loro il
carico di gestire la blockchain, le chiavi e
pubblicare eventuali pagamenti. L’utente
deve soltanto salvare le credenziali di
accesso.
● Blockchain.info
● Coinbase.com
È un modo di utilizzo comodo, ma non sicuro
Attacco
MtGox, una società
Giapponese di trading
online di bitcoin, a
causa di una
vulnerabilità della
piattaforma si è vista
sparire 850.000 bitcoin,
l’equivalente di 390
milioni di dollari,
sparendo poi nel nulla
Offline wallet
Sono delle applicazioni, installabili sul dispostivo
dell’utente, che contengono e gestiscono sia la
blockchain che le chiavi private e quindi gli
indirizzi.
Con questo tipo di wallet è sicuro perché solo il
possessore dei bitcoin ha le chiavi.
Avere un unica copia delle chiavi
comporta...
Nel 2009 James Howells
ha perso 7500 bitcoin,
l’equivalente di 500.000
sterline, poichè non
aveva fatto il backup
dell’hdd del proprio
laptop, “buttato” per
sbaglio dopo l’acquisto
di un nuovo laptop
Paper wallet
La coppia di chiavi pubblica-privata del wallet viene stampata su
carta e conservata a discrezione dell’utente.
Non essendoci traccia sia online che offline delle chiavi private, è
probabilmente il metodo più sicuro per conservarle.
In più può essere utilizzato come un metodo di acquisto dei
bitcoin con i soldi reali.
Bitcoin and blockchain
Anonimia nelle transazioni
Ogni transazione ha un input ed un output
sottoforma di indirizzo di bitcoin che è
associato ad un soggetto. Il database
blockchain è aperto e distribuito a tutti. Quindi
ogni transazione effettuata può essere
facilmente tracciata?
Tracciamento delle transazioni
AliceCarl Eve
Bob
10 BTC 1 BTC
2 BTC
Dara
1 BTC
Tracciamento delle transazioni - soluzione
AliceCarl Eve
Bob
10 BTC 1 BTC
2 BTC
Dara
2 BTC
2 BTC
1 BTC
Mixing service
Mixing service
Mixing service, spezzando e riaggregando i
bitcoin tra migliaia di indirizzi, riesce a mischiare
i bitcoin in modo di nascondere la sorgente.
Esempi di siti che offrono questo servizio:
● bitmixer.io
● cryptomixer.com
Alcune statistiche e grafici
Bitcoin and blockchain
La generazione dei bitcoin è illimitata?
Si, ed è facilmente ricavabile, dato che ogni 210 000 blocchi l’incentivo
dimezza:
15,754,000BTC in circolazione ad oggi
E la rete arrotonda al 8
simbolo decimale MAX 20,999,999.9769
Bitcoin and blockchain
Bitcoin and blockchain
Legalità dei Bitcoin nel mondo
La risposta è…non ovunque
Legalità dei Bitcoin nel mondo
Legenda LEGALE LIMITATO VIETATO NON REGOLATO
Perchè non è legale?
In alcuni paesi, il bitcoin è illegale poichè rappresenta un
PERICOLO per l’economia. I principali motivi sono:
- Forte anonimità ( rischio di acquisti non controllati)
- Rischio riciclaggio
- Rischio svalutazione moneta tradizionale
BitCoin in Cina
Nel 2009 , il Ministero del commercio Cinese, ha
dichiarato che i BitCoin possono essere scambiati solo
con beni e servizi online
Ad oggi, il governo Cinese si riserva il diritto di
chiudere tutte le piattaforme di scambio di BitCoin
senza alcun preavviso, se lo dovesse ritenere
necessario
BitCoin in USA
Nel marzo 2016, la Financial Crimes Enforce Network,
insieme al dipartimento del tesoro USA, hanno stabilito
che le regole antiriciclaggio e il segreto bancario
vengano applicate anche alle monete virtuali
BitCoin in Europa
L’Europa non ha ancora preso alcuna decisione in
merito alla legalità ed alla accettazione
In assenza di una guida centrale, i singoli paesi dell’UE
hanno sviluppato una propria posizione sui BitCoin
BitCoin in Europa
Germania e Belgio sono aperte all’uso dei BitCoin
La Germania infatti, oltre a considerarla legale, segue
anche delle norme che sono state emanate per
regolarne l’uso
BitCoin in Europa
Francia e Italia invece sono ancora in “attesa“ delle
direttive dell’Unione Europea
In Italia, attualmente, l’uso è possibile tra privati, ma
non è ne regolamentato ne tutelato
NO!
In realtà la blockchain è una tecnologia rivoluzionaria che può
essere applicata non solo nell’ambito delle crittovalute. Ci sono
tantissimi altri settori di applicazione. Noi analizzeremo due:
● Alternative-Chain
● Alternative-Coin
La Blockchain vale solo per i Bitcoin?
Cos’è alt-chain ?
Tutti gli utilizzi alternativi della blockchain prendono la
denominazione “ alternative-chain”. Vedremo, quindi,
l’utilizzo per la firma digitale ed il time-stamping
Dalla Firma digitale classica alla firma digitale blockchain
Cos’è la firma digitale classica ? Perchè potrebbe essere sostituita
da quella basata sulla blockchain? Vediamo per prima la firma
digitale classica, che è l'equivalente informatico di una
tradizionale firma autografa apposta su carta
Quali sono le caratteristiche di
una firma digitale classica
● autenticità: la firma digitale garantisce l’identità
dell’utente che l’ha rilasciata ;
● integrità: la firma digitale assicura che il documento
non sia stato modificato dopo la sottoscrizione;
● non ripudio: la firma digitale attribuisce piena validità
legale al documento, riconduce il documento firmato
al titolare della firma.
Come richiedere la firma digitale?
Per richiedere la firma digitale servono pochi passaggi:
1. Controllare se il sito dove si vuole ottenere la firma è certificato dall‘
A.G.I.D
2. Bisogna scegliere un kit in base alle esigenze
3. Bisogna scegliere in quale comune praticare il de visu
4. Presentarsi all’ufficio pubblico con un documento di identità valido
5. Scegliere il metodo di consegna
6. Consegnare una copia dei documenti al corriere
7. Firmare i documenti proposti
8. Eseguire il pagamento
9. Attendere l’invio dell’autenticazione per la firma digitale
Enti per la firma digitale Tradizionale
Bitcoin and blockchain
La firma digitale ha svantaggi?
Gli enti certificatori non utilizzano gli stessi software e non vi
è un'unica rete, che permette di visualizzare e rendere
possibile l'autenticità della firma.
L’unica soluzione che i due enti trovano un accordo per
verificare l’affidibilita delle parti. Inoltre dovrebbe essere
possibile accedere alle liste di sospensione e revoca (CRL) di
tutti i certificatori.
Ci sono vari implementazioni della
firma digitale via blockchain.
Uno dei servizi più popolari è
Blocksign è un servizio gratuito che consente alle persone
di firmare digitalmente i documenti conservando l’evento
della firma nella blockchain.
Cos’è la blockSign?
Il documento viene caricato nel server della
blocksign con allegati i dati del firmatario, che
includono nome, cognome e E-mail
Il documento viene passato al server che calcola il digest,
quindi in output restituisce un hash lungo 32 caratteri
Il digest ,insieme ai dati del firmatario ,viene
aggiunto in una transazione minima di bitcoin,
quindi viene conservato nella blockchain
Come funziona la firma
Il documento firmato viene caricato nel server della blocksign
e passato al robot che ne genera un digest e verifica se il
documento ha la firma
Il digest viene cercato nella blockchain tra le transazioni
effettuate dalla blocksign
Il campo From: conterrà tutti i firmatari, quindi è
possibile accertarsi della firma
Come funziona la verifica
Svantaggi di BlockSign
● A differenza dalla firma digitale classica c’è bisogno di
caricare il documento ad un server di terze parti. Il
documento potrebbe contenere dei dati sensibili; è
anche problematico firmare un file grande diversi GB
● La firma è vincolata alle credenziali di accesso al
servizio ed , in caso di smarrimento, non è più possibile
riprodurla e bisogna ricrearne una da zero
● Blocksign è un servizio di fiducia, nel caso ci fosse un
interruzione del servizio non sarebbe più possibile fare
la verifica del documento
TimeStamp
La marcatura temporale (time-stamping) di un documento permette di
dimostrare che il documento di partenza effettivamente esisteva non più
tardi di un dato momento, e serve a risolvere eventuali contestazioni al
riguardo.
La marca temporale (time-stamp token) si ottiene inviando una opportuna richiesta
attraverso Internet ad un ente detto Time-Stamping Authority (TSA). La richiesta
contiene l'impronta (digest) del documento.
Come si ottiene il classico Timestamp di un
documento ?
Ci sono svantaggi ?
● Il garante potrebbe non essere valido in tutto il mondo
● Presenza di un nodo centrale che può essere vulnerabile a manomissioni
esterne o semplicemente non disponibile
Uno dei servizi che offre blockchain
timestamp è
http://www.originstamp.org/
OriginStamp è un servizio timestamping
gratuito che può essere utilizzato in maniera
anonima. Consente di dimostrare il mittente
di un documento in un determinato
momento.
Come funziona?
Dove trovare L’hash?
Pro e contro
● PRO
○ Anonimo
○ Gratuito
○ I digest vengono conservati nella blockchain per sempre
● CONTRO
○ Il file per il timestamp e per la verifica deve essere caricato
sul servizio gestito da terzi
○ Non c’è nessuna garanzia che il servizio non potrebbe
essere compromesso
○ L’aggiunta nella blockchain non è istantanea
Abbiamo parlato di vari utilizzi
della blockchain, ma
nell’ambito delle crittovalute
esiste solo il Bitcoin?
Motene digitali nel mondo
Cosa sono gli alt-Coin?
I due leader sono:
● BitCoin
● LiteCoin
Litecoin
A differenza dei Bitcoin, i Litecoin vengono definiti l’argento di
internet, per via del loro valore più basso. È la “ copia “ più famosa
dei Bitcoin, ma ha delle caratteristiche particolari che li
differenziano
Bitcoin vs Litecoin
Algoritmo di proof-of-work: scrypt .E’ una funzione di derivazione di chiave basata su password creata
da Colin Percival.Sfrutta molta memoria per creare un hash.E’ composto da 7 parametri:
1. int N- Costo della CPU/Memory ;
2. Passphrase - la stringa dei caratteri che saranno passati in hash;
3. int r- memoria usata;
4. int p - indica il numero di processi indipendenti (parallelismo) un numero intero positivo
minore o uguale a ( ( 2 ^ 32-1 ) * HLEN ) / MFLen dove HLEN è 32 e MFlen è 128 * r ;
5. Int Salt -è un valore casuale di 80 bytes .
6. B- grandezza del blocco si calcola con 128 * r
7. int dkLen- indica l’ hash risultato di 32(bytes);
Algoritmo di proof of work: scrypt come nasce?
Passo 1
Il primo passo sfrutta una funzione
pseudorandom HMAC-SHA256(keyed-hash
message authentication code) Espande la
password tramite il salt alla grandezza
massima del blocco.
Passo 2
Il secondo passo divide il risultato in blocchi di 128*r poi usa la scryptRomix
che prende in input la grandezza del blocco , il vettore del blocco e il costo
della memoria della cpu e per aumentare la memoria richiesta . Viene usato
il Salsa20 / 8, non per aumentare la forza di crittografia, ma per aumentare il
peso computazionale. Deve il suo nome al fatto che esegue 20 passaggi di
mescolamento del suo input ma in questo caso sono ridotti a 8.
Il Salsa20 espande la chiave a 128 bit ed il nonce (indica un numero,
generalmente casuale o pseudo-casuale) a 32 bit in un keystream di 270
byte
e crea un nuovo blocco B’.
Passo 3
Il terzo passaggio esegue una compressione usando l’or e prendendo la grandezza di 32 bytes le due
funzioni pseudorandom servono per aumentare la resistenza alle collisioni. Il keystream è generato in
blocchi di 512 bit, ed ogni blocco è costituito da un hash indipendente della chiave, dal nonce e dal
numero del blocco stesso espresso con un contatore a 64 bit. Grazie a questo contatore il keystream
può essere anche utilizzato con accesso casuale permettendo così all'utente di utilizzare qualsiasi
blocco desideri.per comprimere nuovamente la password.Il risultato è di 32 bytes
Bitcoin and blockchain
Scrypt è stato adottato da litecoin per evitare che
i miner usino gli ASICs (Application-specific
integrated circuit) per minare i bitcoin, anche per
minare i litecoin
Perché scrypt invece SHA256?
La moneta “BitCoin” è stata solo la prima
applicazione di blockchain. In seguito sono venute
altre monete ed usi.
La blockchain, essendo un semplice DB distribuito,
può essere vista come un nuovo punto di
riferimento per il futuro del trust interpersonale.
Dietro le quinte
1,651,254,573.33GHash/S
590.00Euro BTC 30 maggio 2016
15,754,000BTC in circolazione

More Related Content

PPS
Professor Ernesto Hofmann - Blockchain
PPTX
Blockchain e misurazione asset intangibili
PDF
Slide Blockchain - Ing. Giorgio Angiolini
PDF
Beyond #Bitocin: Blockchain and Food #IFPisa2018
PPTX
Antonio Iannaccone - SMAU Napoli 2017
PDF
Custodia unint
PDF
Blockchain revolution - Politecnico di Milano
PDF
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Professor Ernesto Hofmann - Blockchain
Blockchain e misurazione asset intangibili
Slide Blockchain - Ing. Giorgio Angiolini
Beyond #Bitocin: Blockchain and Food #IFPisa2018
Antonio Iannaccone - SMAU Napoli 2017
Custodia unint
Blockchain revolution - Politecnico di Milano
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...

What's hot (20)

PDF
BLOCKCHAIN PER L’AGRIFOOD
PDF
[SPS IPC DRIVES] - Internet of Food 2018
PDF
Cryptoasset compliance blockchain month 2021
PDF
Tokenizzazione e regolamentazione dei virtual asset
PPTX
Blockchain e Criptovalute nel mondo bancario
PDF
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)
PDF
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)
PPTX
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
PPTX
#Bitcoin: la moneta della rete
ODP
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
PPTX
I mezzi di pagamento in Internet: moneta elettronica, e-payment e criptovalute
PPTX
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
PPTX
Bitcoin Revolution
PDF
Bitcoin: la moneta virtuale conquista il mondo reale
PPTX
#Fintech e regolazione: sviluppi e prospettive - #smwrme 14 9_2016
PDF
Bitcoin tra regolamentazione e diritto
PDF
Blockchain Restart Conference 2016 - Milano 13 Aprile 2016
PDF
Blockchain, oro e tulipani. Rischi e opportunità per il Non Profit
PDF
Blockchain essenziale
PPTX
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...
BLOCKCHAIN PER L’AGRIFOOD
[SPS IPC DRIVES] - Internet of Food 2018
Cryptoasset compliance blockchain month 2021
Tokenizzazione e regolamentazione dei virtual asset
Blockchain e Criptovalute nel mondo bancario
#Bitcoin: moneta della rete e nuove forme di transazione (analisi Law&economics)
Esplorando il concetto di Blockchain Exploring Blockchain Technology (Italian)
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Bitcoin: la moneta della rete
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
I mezzi di pagamento in Internet: moneta elettronica, e-payment e criptovalute
Blockchain and Internet of Value – nuovi paradigmi che cambieranno la quotidi...
Bitcoin Revolution
Bitcoin: la moneta virtuale conquista il mondo reale
#Fintech e regolazione: sviluppi e prospettive - #smwrme 14 9_2016
Bitcoin tra regolamentazione e diritto
Blockchain Restart Conference 2016 - Milano 13 Aprile 2016
Blockchain, oro e tulipani. Rischi e opportunità per il Non Profit
Blockchain essenziale
Il Bitcoin. La moneta virtuale come nuova opportunità nell’organizzazione di ...
Ad

Similar to Bitcoin and blockchain (20)

PDF
Blockchain - crittomonete, Bitcoin e altre applicazioni
PDF
Introduzione a Bitcoin
PPTX
Blockchain: fuffa, innovazione o metà e metà?
PDF
Blockchain
PDF
Protocolli per la protezione dell'anonimato nelle valute Monero e Zcash
PDF
Blockchain dove il free software incontra la finanza - novembre 2021
PDF
Noonic Guides - Tecnologia Blockchain
PDF
Bitcoin in codice
PDF
03-2014-BITCOIN-I-RISCHI-DI-LEGALITA-NELL-UTILIZZO-DELLA-MONETA-VIRTUALE-NELL...
PDF
Presentazione del mining Bitcoin
 
PPTX
Come interagire con la blockchain di Bitcoin
PDF
Slide Federico Tenga - Conferenza Blockchain Roma 17-06-16
PPTX
bitcoin1 (1).pptx
PDF
Tecnologia Blockchain E Governance Decentralizzata: Lo Stato È Ancora Necessa...
PPTX
La blockchain - Cos'è un Algoritmo di Consenso
PDF
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
PPTX
bitcoin1.pptx
PDF
Marco Spada, Maria Perugini DirICTo - SMAU Milano 2017
PPTX
bitcoin1 (2).pptx
PDF
Blockchain il travolgente futuro della sicurezza distribuita
Blockchain - crittomonete, Bitcoin e altre applicazioni
Introduzione a Bitcoin
Blockchain: fuffa, innovazione o metà e metà?
Blockchain
Protocolli per la protezione dell'anonimato nelle valute Monero e Zcash
Blockchain dove il free software incontra la finanza - novembre 2021
Noonic Guides - Tecnologia Blockchain
Bitcoin in codice
03-2014-BITCOIN-I-RISCHI-DI-LEGALITA-NELL-UTILIZZO-DELLA-MONETA-VIRTUALE-NELL...
Presentazione del mining Bitcoin
 
Come interagire con la blockchain di Bitcoin
Slide Federico Tenga - Conferenza Blockchain Roma 17-06-16
bitcoin1 (1).pptx
Tecnologia Blockchain E Governance Decentralizzata: Lo Stato È Ancora Necessa...
La blockchain - Cos'è un Algoritmo di Consenso
Cristina Baldi - Chi ha detto Blockchain? - Rinascita Digitale | DAY #4
bitcoin1.pptx
Marco Spada, Maria Perugini DirICTo - SMAU Milano 2017
bitcoin1 (2).pptx
Blockchain il travolgente futuro della sicurezza distribuita
Ad

More from Sergio Shevchenko (12)

PDF
Gestione dell'economia nelle reti di Self Sovereign Identity con Algorand Sm...
PDF
Kubernetes - from sketch to production
PDF
Meltdown & spectre
PDF
The Google file system
PDF
μ-Kernel Evolution
PDF
Burrows-Wheeler transform for terabases
PDF
Presentazione CERT-CHECK
PDF
Design patterns: Creational patterns
PDF
Qt Multiplatform development
PDF
Qt for beginners
PPTX
Continuous Integration
PPTX
Mobile Factor App
Gestione dell'economia nelle reti di Self Sovereign Identity con Algorand Sm...
Kubernetes - from sketch to production
Meltdown & spectre
The Google file system
μ-Kernel Evolution
Burrows-Wheeler transform for terabases
Presentazione CERT-CHECK
Design patterns: Creational patterns
Qt Multiplatform development
Qt for beginners
Continuous Integration
Mobile Factor App

Bitcoin and blockchain

  • 2. Sommario ● Introduzione ● Bitcoin ● Possibili protocolli ● Protocollo BlockChain ● Transazioni ● Wallet ● Legalità ● AltChain e AltCoin
  • 3. Di cosa parleremo oggi? ● Bitcoin: analizzeremo questa moneta, completamente elettronica, dalle origini fino all’utilizzo odierno ● Protocollo Bitcoin: andremo passo passo da un protocollo immaginario semplice fino ad arrivare al protocollo utilizzato dai Bitcoin (basato sulla Blockchain) ● Blockchain: Che cos’è, da cosa è formata e cosa ne garantisce la solidità ● Indirizzi e wallet: come possedere dei bitcoin e come non perderli ● Transazioni: come ricevere ed effettuare i pagamenti in tutta sicurezza
  • 4. Di cosa parleremo oggi? ● Legalità: in Italia, Europa e nel mondo ● AlternativeChain: utilizzi alternativi della blockchain, firme digitali e Timestamping ● AlternativeCoin: le monete digitali alternative al Bitcoin
  • 5. Crittovalute e Una criptovaluta (o crittovaluta o criptomoneta) è una valuta paritaria, decentralizzata digitale la cui implementazione si basa sui principi della crittografia per convalidare le transazioni e la generazione di moneta in sé. Come ogni valuta digitale, consente di effettuare pagamenti online in maniera sicura.
  • 6. Crittovalute e Bitcoin, è una particolare crittovaluta, ideata nel 2009 da una persona (o un gruppo) noti con lo pseudonimo di Satoshi Nakamoto. É stato il primo ad introdurre il concetto di “ledger”, ovvero un libro contabile pubblico che contiene tutti gli spostamenti monetari all’interno della rete.
  • 7. Satoshi Nakamoto è reale? Nel novembre del 2008 Satoshi Nakamoto pubblicò il protocollo Bitcoin su The Cryptography Mailing list sul sito metzdowd.com. Nel 2009 ha distribuito la prima versione del software client e successivamente ha contribuito sul progetto in via anonima insieme ad altri sviluppatori, per ritirarsi dalla comunità di Bitcoin nel 2010. L'ultimo contatto da parte di Satoshi Nakamoto è stato nel 2011, quando dichiarò di essere passato ad altri progetti Si, sono Satoshi Nakamoto, ma non sono stato io ad inventare il Bitcoin
  • 8. Satoshi Nakamoto è reale? Le teorie sulla vera identità di Satoshi Nakamoto sono numerose. Nessuno sa se è un 'lui', una 'lei' oppure se si tratta di 'loro'. Adam Penenberg, un professore della New York University, sostiene che dietro il personaggio misterioso ci sarebbero tre persone: Neal King, Vladimir Oksman e Charles Bry. La tesi di Penenberg si basa su una ricerca effettuata su Google di alcune frasi particolari del protocollo bitcoin che ti riconducono ad una richiesta di brevetto per l'aggiornamento e la distribuzione delle chiavi di crittografia. Il brevetto era stato richiesto proprio da King, Oksman e Bry, i quali hanno negato di avere a che fare con il bitcoin.
  • 9. Satoshi Nakamoto è Craig Steven Wright? Nel dicembre 2015, secondo due articoli d'inchiesta pubblicati da Wired e Gizmodo, Craig Steven Wright, imprenditore australiano, sarebbe il creatore. Il 2 maggio 2016, Craig Steven Wright ha pubblicamente dichiarato di essere Satoshi Nakamoto. Al fine di dimostrare la sua affermazione, ha firmato un messaggio con la chiave di crittografia privata associata alla prima transazione in Bitcoin. Tuttavia la validazione di questa firma è contestata… Il 4 maggio 2016 Wright promette di pubblicare ulteriori prove per dimostrare la sua identità. Ma il giorno successivo, cancella tutti i post sul suo blog e pubblica una nota intitolata "I'm sorry" nella quale dichiara che era pronto a pubblicare ulteriori prove ma di non aver avuto il coraggio di farlo. Conclude la nota con un "arrivederci".
  • 10. Quali sono state le idee alla base di › Moneta esclusivamente elettronica › Non è posseduta e/o controllata da nessuno › Difficile da falsificare › Essere ampiamente riconoscibile › Possesso e trasferimento “anonimo” › Ognuno può partecipare
  • 11. Analizziamo i possibili protocolli per lo scambio di moneta fino ad arrivare all’implementazione proposta da Satoshi
  • 12. Possibile protocollo 1 Alice Bob Trasferisco della moneta Firmando con PK di Alice PRO › Chiunque può verificare la veridicità della transazione CONTRO › Nulla impedisce ad Alice di effettuare più transazioni con la stessa moneta.
  • 13. Possibile protocollo 2 Alice Bob Trasferisco della moneta Firmando con PK di Alice + Numero di serie PRO › Chiunque può verificare la veridicità della transazione › Moneta unica CONTRO › Numero di serie non verificabile con più utenti + Numero di serie
  • 14. Possibile protocollo 3 Alice Bob Trasferisco della moneta Firmando con PK di Alice + Numero di serieGet SN(im porto) Num ero diserie Banca check(Numero di serie) CONTRO › Controllo della banca! + Ente centrale
  • 15. Possibile protocollo 4 Alice Bob Trasferisco della moneta Firmando con PK di Alice + Numero di serieGet SN(im porto) Num ero diserie Banca collettiva check(Numero di serie) PRO › Tutti conoscono le transazioni di tutti, il controllo è nelle mani della community + Banca collettiva
  • 16. Database distribuito? La community deve possedere un database distribuito per contenere tutti i numeri di serie, quindi un DB che mantiene in modo continuo una lista crescente di record, i quali fanno riferimento a record precedenti presenti nella lista stessa resistente a manomissioni.
  • 17. Possibile protocollo 5 Alice Bob Trasferisco della moneta Firmando con PK di Alice + Numero di serie 123 Controllo nella propria copia del db se esiste numero di serie 123 ed non è stato usato nella transazione Eva Trasferisco della moneta Firmando con PK di Alice + Numero di serie 123 Anche Eva verifica nella nella propria copia del db se esiste numero di serie 123 ed non è stato usato nella transazione É difficile implementare un DB distribuito che sia perfettamente sincronizzato con tutti gli utenti della community + Database distribuito
  • 18. Possibile protocollo 6 Alice Bob Trasferisco della moneta Firmando con PK di Alice + Numero di serie 123 Controllo nella propria copia del db se esiste numero di serie 123 ed non è stato usato nella transazione In più la community deve confermare la transazione OK Se la maggioranza della community saranno dei bot, quest’ultimi possono confermare le transazioni false a piacimento dell’owner + Con pubblico consenso
  • 19. Il protocollo BitCoin Alice Bob Trasferisco della moneta Firmando con PK di Alice + Numero di serie 123 Controllo nella propria copia del db se esiste numero di serie 123 ed non è stato usato nella transazione In più la community deve confermare la transazione OK Per confermare, i partecipanti devono presentare il proof-of-work
  • 20. Come evitare l’attacco? Per confermare lo scambio avvenuto è necessario risolvere un problema matematico che richiede una grande quantità di potenza di calcolo e tempo per risolverlo. Questo impedisce la creazione di molte identità fittizie che confermano gli scambi doppi. Nel linguaggio tecnico, risolvere il problema significa presentare una proof-of-work (prova di lavoro)
  • 21. Proof-of-Work come funziona Nel ambito dell’informatica, uno dei problemi impossibili da risolvere, è la ricerca dell’inversa della funzione hash. In realtà, l’unico modo per trovarla è scorrere tutti i possibili input e verificare l’output. Allo scopo di verificare il lavoro svolto questo tipo di problema è perfetto poichè è: ● Difficile da risolvere ● Facile da verficare
  • 22. Proof-of-Work nel Bitcoin Nella rete Bitcoin l’impostazione del problema è seguente: Trovare un hash prodotto dall’algoritmo SHA256 che inizia con N zeri a partire da un certo messaggio M aggiungendo una certa sequenza detta NONCE Aumentando o diminuendo la N è possibile moderare la difficoltà nella risoluzione del problema
  • 23. Bitcoin network Quindi tutti devono presentare il proof-of-work per partecipare al network? NO! Lo fanno i cosiddetti “miner”, di solito sono partecipanti con un hardware molto performante (si tratta di centinaia di GPU) che si occupano della risoluzione del problema Perché lo fanno? I miner sono incentivati dal sistema, dato che ogni problema risolto viene remunerato dalla rete con 50 BTC inizialmente, qualche settimana fa 25 BTC ora 12.5BTC (in generale la quantità di BTC dimezza ogni 4 anni fino a 10^-8 + le commisioni
  • 24. Bitcoin network algoritmo di conferma ● Il Miner è un nodo che non solo si occupa di presentare le proof-of-work, ma accumula anche tutte le transazioni della rete ● Tutte le transazioni le inserisce all’interno di un contenitore ● Per la proof-of-work il messaggio è la checksum del contenitore precedentemente confermato ● Una volta trovato, sigilla il contenitore e lo annuncia nella rete allegando la proof-of-work relativa a quel contenitore. ● Altri partecipanti verificano la correttezza della proof-of-work e se è valida, a loro volta, propagano il nuovo contenitore creato step-by-step
  • 25. ● I contenitori delle transazioni sono definiti blocchi ● I blocchi non contengono solo le transazioni ma anche le seguenti informazioni: Riassumendo Dimensione Campo Descrizione 4 byte Dimensione del blocco Dimensione totale del blocco 80 byte Intestazione I campi che compongono l’intestazione 1-9 byte Contatore delle transazioni Quanti transazioni sono contenuti in questo blocco Variabile Transazioni Tutte le transazioni contenute in questo blocco
  • 26. Dimensione Campo Descrizione 4 byte Versione Numero della versione 32 byte Hash del blocco precedente Il riferimento, hash del blocco padre 32 byte Merkle Root Hash della radice dell’albero di Merkle 4 byte Timestamp Tempo di creazione del blocco 4 byte Difficoltà Il proof-of-work algoritmo della difficoltà per minare questo blocco 4 byte Nonce Valori casuali che hanno prodotto il proof-of-work Intestazione del blocco
  • 27. Ma cosa fa si che un insieme di blocchi sia una catena? …. quidi una blockchain? Ogni blocco è collegato al blocco precedente e questo fa si che si formi una catena. Il primo blocco della blockchain viene chiamato GENESIS block, e non ha nessun precessore.
  • 28. Possibile attacco Nel caso un nodo voglia alterare una transazione contenuta all’interno di un blocco, dovrebbe ricalcolare la proof-of-work per il blocco che la contiene, e nel caso ci fossero, per tutti i blocchi successivi.
  • 29. Problematiche di concorrenza Come anticipato precedentemente i miner sono incentivati, quindi a livello globale, ci sono tantissimi nodi che sono alla ricerca della soluzione del problema . Questo crea problemi di sincronizzazione tra migliaia di nodi. Un problema molto evidente emerge quando in due parti del mondo vengono creati blocchi con lo stesso padre contenenti transazioni diverse
  • 30. Più blocchi vengono minati contemporaneamente
  • 31. Più blocchi vengono minati contemporaneamente
  • 32. Più blocchi vengono minati contemporaneamente
  • 33. Più blocchi vengono minati contemporaneamente
  • 34. Più blocchi vengono minati contemporaneamente
  • 35. Risoluzione del conflitto dei più blocchi Se avviene la creazione di più blocchi contemporaneamente, vengono considerati i blocchi dalla chain più lunga. Le transazioni dal blocco da cestinare vengono rimesse nel pool transazionale, l’incentivo al miner non viene pagato. È un evento raro?
  • 37. Il blocco contiene le transazioni... Ma cosa sono le transazioni?
  • 38. ● Essenzialmente una transazione è uno scambio tra due o più soggetti di uno o di una molteplicità di beni o servizi ● Nei bitcoin esistono 3 tipi di transazione: ○ Uno a molti ○ Molti a uno ○ Molti a molti Transazione
  • 39. È la transazione più semplice possibile nella rete bitcoin, Alice fa un trasferimento a Bob. Dato che la moneta non può essere spezzata (come ad esempio 50 Euro), Bob restituisce il resto ad Alice. Transazione uno a uno con resto
  • 40. Essenzialmente questa transazione permette di aggregare più “monete” virtuali in una. Si potrebbe pensare al caso in cui Alice vuole unire tutti i resti dalle transazioni precedenti in un unica moneta. ( Possiamo paragonarlo al nostro “ cambio “ in un unica bancanota ) Transazione molti a uno
  • 41. Questa è l’operazione inversa a quella precedente, permette di dividere una moneta in monete più piccole, si può pensare a un pagamento ai dipendenti di una grande azienda Transazione uno a molti
  • 42. Riassumendo, ci sono vari tipi di transazione, ma tutto questo si riduce ad un semplice concetto, la transazione è nient’altro che un trasferimento da uno o più input ad uno o più output. Quindi, gli input e gli output, nei bitcoin, devono corrispondere a dei soggetti fisici . Ma come vengono identificati questi soggetti in piena anonimia? Ogni soggetto deve possedere un identificativo, detto indirizzo. Ma come si ottiene l’indirizzo? Transazione in generale
  • 43. Ci rivolgiamo alla crittografia classica, con chiave pubblica e privata
  • 44. Quindi, un utente che vuole ricevere i bitcoin, deve prima di tutto generare la coppia di chiavi privata e pubblica. Usare la chiave pubblica come indirizzo per ricevere i bitcoin ha i seguenti svantaggi: ● Avere un solo indirizzo potrebbe compromettere l’anonimia del soggetto ● Generare più chiavi pubbliche da una chiave privata comprometterebbe la sicurezza della chiave privata Svantaggi nell’uso della propria chiave pubblica come indirizzo bitcoin
  • 45. k è una chiave privata generata da un utente K è la corrispettiva chiave pubblica A è un indirizzo bitcoin, che viene ricavato dalla chiave pubblica Come ricavare l’indirizzo A dalla chiave K? Algoritmo di generazione dell’indirizzo
  • 47. Indirizzi Bitcoin - ricapitolando La rete bitcoin per aumentare l’anonimia, richiede la generazione di un nuovo indirizzo per ogni pagamento ricevuto. Questo implica, che un utente generico avrà un insieme di indirizzi abbastanza grande. Dove potrebbe conservarli?
  • 48. Il concetto dei wallet Un wallet è l’equivalente di un portafoglio, in pratica, è il nostro contenitore di indirizzi bitcoin. Nel wallet vengono contenuti tutti gli indirizzi bitcoin generati a partire dalle nostre chiavi pubbliche associate alla chiave privata. Se si vuole ricevere un pagamento in bitcoin è sufficiente generare un nuovo indirizzo e fornirlo all’ordinante.
  • 49. Tipi di wallet ● Online wallet ○ Servizi online senza mantenere la blockchain sul proprio PC ● Offline wallet ○ Client con una piena copia della blockchain ● Paper wallet ○ La coppia chiave privata/pubblica è stampato su carta
  • 50. Online wallet service Sono dei serivizi online che prendono loro il carico di gestire la blockchain, le chiavi e pubblicare eventuali pagamenti. L’utente deve soltanto salvare le credenziali di accesso. ● Blockchain.info ● Coinbase.com È un modo di utilizzo comodo, ma non sicuro
  • 51. Attacco MtGox, una società Giapponese di trading online di bitcoin, a causa di una vulnerabilità della piattaforma si è vista sparire 850.000 bitcoin, l’equivalente di 390 milioni di dollari, sparendo poi nel nulla
  • 52. Offline wallet Sono delle applicazioni, installabili sul dispostivo dell’utente, che contengono e gestiscono sia la blockchain che le chiavi private e quindi gli indirizzi. Con questo tipo di wallet è sicuro perché solo il possessore dei bitcoin ha le chiavi.
  • 53. Avere un unica copia delle chiavi comporta... Nel 2009 James Howells ha perso 7500 bitcoin, l’equivalente di 500.000 sterline, poichè non aveva fatto il backup dell’hdd del proprio laptop, “buttato” per sbaglio dopo l’acquisto di un nuovo laptop
  • 54. Paper wallet La coppia di chiavi pubblica-privata del wallet viene stampata su carta e conservata a discrezione dell’utente. Non essendoci traccia sia online che offline delle chiavi private, è probabilmente il metodo più sicuro per conservarle. In più può essere utilizzato come un metodo di acquisto dei bitcoin con i soldi reali.
  • 56. Anonimia nelle transazioni Ogni transazione ha un input ed un output sottoforma di indirizzo di bitcoin che è associato ad un soggetto. Il database blockchain è aperto e distribuito a tutti. Quindi ogni transazione effettuata può essere facilmente tracciata?
  • 57. Tracciamento delle transazioni AliceCarl Eve Bob 10 BTC 1 BTC 2 BTC Dara 1 BTC
  • 58. Tracciamento delle transazioni - soluzione AliceCarl Eve Bob 10 BTC 1 BTC 2 BTC Dara 2 BTC 2 BTC 1 BTC Mixing service
  • 59. Mixing service Mixing service, spezzando e riaggregando i bitcoin tra migliaia di indirizzi, riesce a mischiare i bitcoin in modo di nascondere la sorgente. Esempi di siti che offrono questo servizio: ● bitmixer.io ● cryptomixer.com
  • 62. La generazione dei bitcoin è illimitata? Si, ed è facilmente ricavabile, dato che ogni 210 000 blocchi l’incentivo dimezza: 15,754,000BTC in circolazione ad oggi E la rete arrotonda al 8 simbolo decimale MAX 20,999,999.9769
  • 65. Legalità dei Bitcoin nel mondo La risposta è…non ovunque
  • 66. Legalità dei Bitcoin nel mondo Legenda LEGALE LIMITATO VIETATO NON REGOLATO
  • 67. Perchè non è legale? In alcuni paesi, il bitcoin è illegale poichè rappresenta un PERICOLO per l’economia. I principali motivi sono: - Forte anonimità ( rischio di acquisti non controllati) - Rischio riciclaggio - Rischio svalutazione moneta tradizionale
  • 68. BitCoin in Cina Nel 2009 , il Ministero del commercio Cinese, ha dichiarato che i BitCoin possono essere scambiati solo con beni e servizi online Ad oggi, il governo Cinese si riserva il diritto di chiudere tutte le piattaforme di scambio di BitCoin senza alcun preavviso, se lo dovesse ritenere necessario
  • 69. BitCoin in USA Nel marzo 2016, la Financial Crimes Enforce Network, insieme al dipartimento del tesoro USA, hanno stabilito che le regole antiriciclaggio e il segreto bancario vengano applicate anche alle monete virtuali
  • 70. BitCoin in Europa L’Europa non ha ancora preso alcuna decisione in merito alla legalità ed alla accettazione In assenza di una guida centrale, i singoli paesi dell’UE hanno sviluppato una propria posizione sui BitCoin
  • 71. BitCoin in Europa Germania e Belgio sono aperte all’uso dei BitCoin La Germania infatti, oltre a considerarla legale, segue anche delle norme che sono state emanate per regolarne l’uso
  • 72. BitCoin in Europa Francia e Italia invece sono ancora in “attesa“ delle direttive dell’Unione Europea In Italia, attualmente, l’uso è possibile tra privati, ma non è ne regolamentato ne tutelato
  • 73. NO! In realtà la blockchain è una tecnologia rivoluzionaria che può essere applicata non solo nell’ambito delle crittovalute. Ci sono tantissimi altri settori di applicazione. Noi analizzeremo due: ● Alternative-Chain ● Alternative-Coin La Blockchain vale solo per i Bitcoin?
  • 74. Cos’è alt-chain ? Tutti gli utilizzi alternativi della blockchain prendono la denominazione “ alternative-chain”. Vedremo, quindi, l’utilizzo per la firma digitale ed il time-stamping
  • 75. Dalla Firma digitale classica alla firma digitale blockchain Cos’è la firma digitale classica ? Perchè potrebbe essere sostituita da quella basata sulla blockchain? Vediamo per prima la firma digitale classica, che è l'equivalente informatico di una tradizionale firma autografa apposta su carta
  • 76. Quali sono le caratteristiche di una firma digitale classica ● autenticità: la firma digitale garantisce l’identità dell’utente che l’ha rilasciata ; ● integrità: la firma digitale assicura che il documento non sia stato modificato dopo la sottoscrizione; ● non ripudio: la firma digitale attribuisce piena validità legale al documento, riconduce il documento firmato al titolare della firma.
  • 77. Come richiedere la firma digitale? Per richiedere la firma digitale servono pochi passaggi: 1. Controllare se il sito dove si vuole ottenere la firma è certificato dall‘ A.G.I.D 2. Bisogna scegliere un kit in base alle esigenze 3. Bisogna scegliere in quale comune praticare il de visu 4. Presentarsi all’ufficio pubblico con un documento di identità valido 5. Scegliere il metodo di consegna 6. Consegnare una copia dei documenti al corriere 7. Firmare i documenti proposti 8. Eseguire il pagamento 9. Attendere l’invio dell’autenticazione per la firma digitale
  • 78. Enti per la firma digitale Tradizionale
  • 80. La firma digitale ha svantaggi? Gli enti certificatori non utilizzano gli stessi software e non vi è un'unica rete, che permette di visualizzare e rendere possibile l'autenticità della firma. L’unica soluzione che i due enti trovano un accordo per verificare l’affidibilita delle parti. Inoltre dovrebbe essere possibile accedere alle liste di sospensione e revoca (CRL) di tutti i certificatori.
  • 81. Ci sono vari implementazioni della firma digitale via blockchain. Uno dei servizi più popolari è
  • 82. Blocksign è un servizio gratuito che consente alle persone di firmare digitalmente i documenti conservando l’evento della firma nella blockchain. Cos’è la blockSign?
  • 83. Il documento viene caricato nel server della blocksign con allegati i dati del firmatario, che includono nome, cognome e E-mail Il documento viene passato al server che calcola il digest, quindi in output restituisce un hash lungo 32 caratteri Il digest ,insieme ai dati del firmatario ,viene aggiunto in una transazione minima di bitcoin, quindi viene conservato nella blockchain Come funziona la firma
  • 84. Il documento firmato viene caricato nel server della blocksign e passato al robot che ne genera un digest e verifica se il documento ha la firma Il digest viene cercato nella blockchain tra le transazioni effettuate dalla blocksign Il campo From: conterrà tutti i firmatari, quindi è possibile accertarsi della firma Come funziona la verifica
  • 85. Svantaggi di BlockSign ● A differenza dalla firma digitale classica c’è bisogno di caricare il documento ad un server di terze parti. Il documento potrebbe contenere dei dati sensibili; è anche problematico firmare un file grande diversi GB ● La firma è vincolata alle credenziali di accesso al servizio ed , in caso di smarrimento, non è più possibile riprodurla e bisogna ricrearne una da zero ● Blocksign è un servizio di fiducia, nel caso ci fosse un interruzione del servizio non sarebbe più possibile fare la verifica del documento
  • 86. TimeStamp La marcatura temporale (time-stamping) di un documento permette di dimostrare che il documento di partenza effettivamente esisteva non più tardi di un dato momento, e serve a risolvere eventuali contestazioni al riguardo.
  • 87. La marca temporale (time-stamp token) si ottiene inviando una opportuna richiesta attraverso Internet ad un ente detto Time-Stamping Authority (TSA). La richiesta contiene l'impronta (digest) del documento. Come si ottiene il classico Timestamp di un documento ?
  • 88. Ci sono svantaggi ? ● Il garante potrebbe non essere valido in tutto il mondo ● Presenza di un nodo centrale che può essere vulnerabile a manomissioni esterne o semplicemente non disponibile
  • 89. Uno dei servizi che offre blockchain timestamp è http://www.originstamp.org/
  • 90. OriginStamp è un servizio timestamping gratuito che può essere utilizzato in maniera anonima. Consente di dimostrare il mittente di un documento in un determinato momento.
  • 93. Pro e contro ● PRO ○ Anonimo ○ Gratuito ○ I digest vengono conservati nella blockchain per sempre ● CONTRO ○ Il file per il timestamp e per la verifica deve essere caricato sul servizio gestito da terzi ○ Non c’è nessuna garanzia che il servizio non potrebbe essere compromesso ○ L’aggiunta nella blockchain non è istantanea
  • 94. Abbiamo parlato di vari utilizzi della blockchain, ma nell’ambito delle crittovalute esiste solo il Bitcoin?
  • 96. Cosa sono gli alt-Coin?
  • 97. I due leader sono: ● BitCoin ● LiteCoin
  • 98. Litecoin A differenza dei Bitcoin, i Litecoin vengono definiti l’argento di internet, per via del loro valore più basso. È la “ copia “ più famosa dei Bitcoin, ma ha delle caratteristiche particolari che li differenziano
  • 100. Algoritmo di proof-of-work: scrypt .E’ una funzione di derivazione di chiave basata su password creata da Colin Percival.Sfrutta molta memoria per creare un hash.E’ composto da 7 parametri: 1. int N- Costo della CPU/Memory ; 2. Passphrase - la stringa dei caratteri che saranno passati in hash; 3. int r- memoria usata; 4. int p - indica il numero di processi indipendenti (parallelismo) un numero intero positivo minore o uguale a ( ( 2 ^ 32-1 ) * HLEN ) / MFLen dove HLEN è 32 e MFlen è 128 * r ; 5. Int Salt -è un valore casuale di 80 bytes . 6. B- grandezza del blocco si calcola con 128 * r 7. int dkLen- indica l’ hash risultato di 32(bytes); Algoritmo di proof of work: scrypt come nasce?
  • 101. Passo 1 Il primo passo sfrutta una funzione pseudorandom HMAC-SHA256(keyed-hash message authentication code) Espande la password tramite il salt alla grandezza massima del blocco.
  • 102. Passo 2 Il secondo passo divide il risultato in blocchi di 128*r poi usa la scryptRomix che prende in input la grandezza del blocco , il vettore del blocco e il costo della memoria della cpu e per aumentare la memoria richiesta . Viene usato il Salsa20 / 8, non per aumentare la forza di crittografia, ma per aumentare il peso computazionale. Deve il suo nome al fatto che esegue 20 passaggi di mescolamento del suo input ma in questo caso sono ridotti a 8. Il Salsa20 espande la chiave a 128 bit ed il nonce (indica un numero, generalmente casuale o pseudo-casuale) a 32 bit in un keystream di 270 byte e crea un nuovo blocco B’.
  • 103. Passo 3 Il terzo passaggio esegue una compressione usando l’or e prendendo la grandezza di 32 bytes le due funzioni pseudorandom servono per aumentare la resistenza alle collisioni. Il keystream è generato in blocchi di 512 bit, ed ogni blocco è costituito da un hash indipendente della chiave, dal nonce e dal numero del blocco stesso espresso con un contatore a 64 bit. Grazie a questo contatore il keystream può essere anche utilizzato con accesso casuale permettendo così all'utente di utilizzare qualsiasi blocco desideri.per comprimere nuovamente la password.Il risultato è di 32 bytes
  • 105. Scrypt è stato adottato da litecoin per evitare che i miner usino gli ASICs (Application-specific integrated circuit) per minare i bitcoin, anche per minare i litecoin Perché scrypt invece SHA256?
  • 106. La moneta “BitCoin” è stata solo la prima applicazione di blockchain. In seguito sono venute altre monete ed usi. La blockchain, essendo un semplice DB distribuito, può essere vista come un nuovo punto di riferimento per il futuro del trust interpersonale. Dietro le quinte
  • 107. 1,651,254,573.33GHash/S 590.00Euro BTC 30 maggio 2016 15,754,000BTC in circolazione