SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
BLOCKCHAIN
Analisi introduttiva ai meccanismi di Sicurezza
nelle nuove reti TrustLess
Corso di Laurea Triennale in : SICUREZZA DEI SISTEMI E DELLE RETI INFORMATICHE
Studente : Lacerenza Francesco
Anno Accademico : 2016/2017
Indice
1. Definizione generica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
2. Componenti principali. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2.1 Architettura a Ledger Distribuito. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Concetto di Consensus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.3 Protocolli Consensus e Sicurezza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.4 Tipologia d’approccio al Consensus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Blockchain come Struttura dato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
3. Macro Scelte di Progettazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
4. Proprietà di Sicurezza nei sistemi Blockchain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5. Fonti di Critica delle Blockchain pubbliche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6. Possibili Vettori d’attacco. . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Definizione Generica
«Il presupposto della Blockchain è quello di ridurre la necessità di fiducia, sostituendola con la tecnologia.»
La Blockchain è una tecnologia emergente atta alla condivisione di dati ,costituita da un’architettura decentralizzata e basata
sulle transazioni interne ad una rete i cui partecipanti non sono fra loro necessariamente fidati.
Decentralizzazione e stati condivisi
L’utilizzo della logica peer-to-peer rende possibile la non
gerarchizzazione del sistema attorno ad un nodo centrale
fidato con privilegi maggiori sulla manipolazione delle
transazioni. Si ha dunque l’assenza di un Single Point of
Failure ed è proprio per questo che viene definita «Tecnologia
TrustLess» (senza fiducia) dove gli utenti possono scambiare fra
loro valore (dati, cryptovalute eccetera) senza affidarsi ad
un’autorità terza, ma alla blockchain stessa.
La mancanza di un centro funge inoltre da colonna portante
per la macchina a stati costituente la blockchain (catena di
blocchi) , in cui ogni transazione avvenuta resta
indelebilmente impressa (condizione append-only).
Lo stato attuale della catena è condiviso e deciso dai nodi
stessi grazie a meccanismi d’accettazione e propagazione.
1
Ledger Replicato
Storia di tutte le transazioni
Append-only log con passato immutabile
Distribuito su ciascuno dei nodi nella sua piena
forma
Consenso
Validazione transazioni
Controllo condiviso della tolleranza di
interruzioni
Incentivazione
Verifica e Propagazione dello stato attuale
Crittografia (e catena di hash)
Integrità del Ledger
Autenticità delle transazioni
Identità dei partecipanti
Privacy nelle transazioni
Logica Business
Architettura transazionale
Possibilità di sviluppo da semplice valuta e
Smart Contracts programmabili
Concetto di libro contabile inglobato nel Ledger
2
Il concetto di Ledger (Libro Mastro)
Peculiarità
Replicato e
prodotto in
collaborazione
fra i nodi
Presente in
ogni nodo
nella sua
forma
completa
Fiducia in
esso dovuta a:
-Crittografia
-Validazione
distribuita
Impossibile
( o quasi)
sostituirlo con
un falso
approvato poi
dalla
maggioranza
dei nodi
Il ledger contiene tutte le transazioni avvenute internamente
alla blockchain sin dalla sua creazione, ovvero funge da log
virtuale del sistema sul quale , tecnicamente, l’unica forma di
scrittura ammessa è l’ append.
Un Database decentralizzato
In particolare è utilizzato il Distributed Ledger, nel quale ogni
nodo possiede una copia dell’intero database di transazioni,
generando così fiducia fra i singoli membri.
Una minaccia nella condivisione
Sorge a questo punto la possibilità ,da parte di chiunque, di
modificare il proprio ledger aggiungendo o togliendo
transazioni, e di tentarne poi la propagazione verso gli altri
partecipanti.
Veridicità dello stato attuale
In conclusione attraverso il Distributed Ledger sono raggiunte
la trasparenza nel sistema e la resilienza della rete, data la
mancanza del Single point of Failure.
Viene però introdotta da questa tecnologia la necessità di
meccanismi atti alla legittimazione delle transazioni e degli
aggiornamenti riguardanti lo stato corrente del sistema.
3
Il concetto di Consenso in una Blockchain
Per Consenso in un Blockchain s’intende il raggiungimento
dell’intesa fra i nodi riguardo quale sia il blocco successivo da
aggiungere alla catena.
Un protocollo Consensus ha il dovere d’assicurare che tale blocco
sia la sola ed unica versione della verità approvata dal sistema, il
tutto grazie alla comunicazione fra i nodi.
❖ Regole di Validazione del
blocco di transazioni
❖ Regole di Broadcasting
❖ Risoluzione dei conflitti interni
di legittimazione per blocchi
simultanei
❖ Meccanismo d’incentivazione
al mining dei blocchi
❖ Validità dello storico
transazioni del
sistema
❖ Non presenza di
doppioni illeciti
❖ Non presenza di
transazioni non
legittimate
Implementazione Obiettivi
Astratto
Concreto
I meccanismi di Consenso permettono un sicuro aggiornamento dello
stato distribuito e condiviso; l’aggiornamento avviene sulla base di
regole definite a priori internamente alla macchina a stati eseguita
su tutti i nodi.
Tali regole interne alla macchina a stati assicurano dunque che nodi
diversi con gli stessi input producano, teoricamente ed in condizioni
non problematiche, gli stessi output, portando il sistema alla
propagazione dei soli blocchi legittimi.
4
Protocolli Consensus e Sicurezza
Proprietà chiave per la valutazione
di questa categoria di protocolli
 Safety,
un protocollo consensus si può ritenere
affidabile se e solo se tutti i nodi producono
lo stesso output e tutti gli output prodotti
risultano validi sulla base delle proprietà
definite dal protocollo.
 Liveness,
un protocollo consensus garantisce vitalità se
e solo se , in qualunque stato si trovi il
sistema, prima o poi i nodi non falsati
produrranno un output valido generando un
cambiamento di stato (progresso del sistema).
 Fault Tollerance,
un protocollo consensus possiede tolleranza
degli errori se e solo se è in grado di
riprendersi autonomamente da problemi
dovuti ad uno o più nodi partecipanti al
protocollo.
Nello sviluppo di un algoritmo per il Consenso in una rete distribuita si
deve oltretutto tener conto della vasta gamma di problemi in tempo
d’esecuzione sfruttabili contro quest’ultimo al fine di falsarne gli output.
Tali protocolli dovranno dunque risultare resilienti a :
✓ Collasso di n nodi in un simultaneo tempo t
✓ Partizionamento della rete in subnets
✓ Ritardo dei messaggi,
✓ Messaggistica out-of-order (riordinamento dei messaggi di rete)
✓ Messaggi corrotti
✓ Messaggi programmati contro le regole del sistema (Byzantine Nodes)
FLP Impossibility Result (Fischer,Lynch e Peterson ,1985)
Questa teoria riguarda nello specifico le tre proprietà chiave per la
valutazione questa categoria di protocolli.
Secondo quanto dimostrato dall’Impossibility Result nessun protocollo
deterministico per il Consenso può garantire tutte le proprietà :
Safety,Liveness e Fault Tollerance.
IL COMPROMESSO
Essendo la tolleranza degli errori (Fault Tollerance) cruciale in una rete
globale , nei sistemi Distribuiti si ha dunque la tendenza a scegliere quale
fra Safety e Liveness soddisfare, basandosi sui requisiti e sulle assunzioni
dell’applicativo.
5
Tipologie d’approccio al Consensus
Proof of Work (BTC ed ETH)
Questa tipologia è la più utilizzata attualmente nell’ambito delle crypto-monete, in questo algoritmo chi compete per l’aggiunta del blocco
successivo è chiamato miner e l’aggiunta è delegata a chi per primo risulta aver risolto dei complessi problemi crittografici dati dal sistema
stesso, per la risoluzione dei quali è richiesta dunque un’alta capacità computazionale.
La ricompensa per l’aggiunta del blocco consiste in una quantità definita di valuta ed una tassa di transazione.
VALUTAZIONE ▪ Investimento : Energia Elettrica ed
Hardware di ultima generazione
▪ Append Blocco: risoluzione problemi
crittografici
▪ Reward per Blocco: tassa
transazionale o tassa per la firma
▪ Equità competizione: legge del
rapporto sull’investimento
▪ Scalabilità: Inefficiente a causa
del limite di 1Mb sulla
dimensione del singolo blocco
imposto come difesa da attacchi
DoS; sono cosi supportate da 3 a
7 transazioni al secondo. E’
inoltre dispendiosa la valutazione
dell’ hashing power maggiore.Proof of Stake
In questo caso i Miner sono chiamati Validatori poiché il sistema non genera valuta ad ogni aggiunta di blocco, bensì tutto il volume di
valuta è presente nel sistema sin dalla sua creazione. I Validatori acquistano fondi dal sistema (stake), sono per questo chiamati Stake
Holders, ottenendo così profitto dalle tasse di transazione ed incrementando le loro probabilità di poter aggiungere un blocco alla catena.
Ciascun blocco creato necessita poi della firma commissiva prima d’essere immutabilmente considerato valido dalla blockchain; in base a
come viene implementata questa firma si generano sottoclassi del protocollo, sarebbe infatti possibile eleggere un gruppo casuale di nodi per
la valutazione del blocco (signers) o addirittura far si che tutti i nodi debbano firmarlo prima dell’aggiunta.
VALUTAZIONE ▪ Investimento : fondi del sistema ,
STAKE
▪ Append Blocco: più stake si possiedono e
maggiori sono le possibilità di attendere
all’aggiunta di un blocco
▪ Reward per Blocco: Valuta e tassa
transazionale.
▪ Equità competizione: avvantaggiati
miners di paesi con basso costo
energetico
▪ Scalabilità: Efficiente poiché
risulta più semplice valutare chi
possiede più fondi rispetto ,
come avviene nel P.o.Work, alla
valutazione dell’ Hashing
Power.
6
Limite dei BTC producibili (anti iper-inflazione)
La blockchain del Bitcoin ha un limite di produzione di valuta, ciascun blocco aggiunto alla catena introduce 50
BTC nel sistema, ogni 210.000 blocchi la quantità di BTC introdotta dai singoli blocchi si dimezza.
Risulta dunque semplice il calcolo tramite serie numerica dell’ammontare di bitcoin producibili dal sistema:
Problem
of Nothing at Stake
(nessuna posta in gioco)
Con l’approccio Proof of Stake s’introduce la
possibilità da parte di Validatori e Signers di sfruttare
facilmente ,senza alcuna posta in gioco, un tentativo malevolo
di ramificazione della catena (Fork Attacks), nel quale risultano
Una volta raggiunto il tetto massimo di blocchi generanti
nuovi BTC il guadagno per i miner sarà limitato alle sole
tasse di transazione .
presenti in circolazione due versioni dello storico transazioni , una delle
quali è ovviamente un tentativo di modifica del passato o di aggiunta di
transazioni non legittime.
I nodi ,non avendo nulla da perdere, potrebbero dunque partecipare alla firma di
entrambe le varianti, ottenendo un guadagno da queste.
Motivi d’introduzione della problematica
Con il PoStake la capacità computazionale necessaria per partecipare alla blockchain è stata ridotta
drasticamente, rendendo così facile la partecipazione a più chains simultaneamente; i miners di fatto trarrebbero
profitto dal lavoro in due catene anche nel PoWork , ma è proprio l’alto carico computazionale richiesto a rendere
altamente dispendioso e non favorevole il lavoro su catene non legittime.
Gli Stake Holders non avrebbero dunque nulla da perdere nel provare ad ingannare il sistema , spendendo ad esempio due
volte la stessa cifra in istanze differenti della blockchain, prima della riorganizzazione.
7
Proof of Activity (ibrido PoWork e PoStake)
VALUTAZIONE ▪ Investimento : Energia Elettrica ed
Hardware di ultima generazione
▪ Append Blocco: risoluzione problemi
crittografici
▪ Limiti: Problem of nothing at
Stake
▪ Limiti: limiti energetici del
PoWork e pericolo Problem of
Nothing at Stake
Proof of Capacity
In questo protocollo di Consensus le chance che un nodo ha di aggiungere un nodo ed essere per esso ricompensato sono legate allo spazio di
archiviazione. L’algoritmo genera dei Plots ,ovvero dei grandi data sets che il miner salve nel proprio supporto; maggiore è la quantità di
plots posseduti maggiori sono le possibilità di essere selezionati per l’aggiunta del blocco successivo.
VALUTAZIONE ▪ Investimento : spazio d’archiviazione
▪ Append Blocco: probabilità legata ad i
plots posseduti
▪ Reward per Blocco: tassazioni
divise fra miners e signers
▪ Equità competizione: avvantaggiati
miners di paesi con basso costo
energetico
Sistema ideato per ovviare al limite di liquidità del BTC.
In quanto ibrido mantiene il processo di creazione dei blocchi del PoWork (Hashing Power), il blocco generato anziché contenere
transazione sarà composto da un Template avente un Header e l’indirizzo monetario del miner.
A questo punto si ha l’assegnazione del compito di firma del blocco ad un gruppo di nodi , chiamati in questa fase signers, scelti in base alla
valuta da loro posseduta (più valuta si possieda e maggiori sono le probabilità di essere scelti come signer).
8
Proof of Burn
VALUTAZIONE ▪ Investimento : Valuta «bruciata»
▪ Append Blocco: più valuta viene
bruciata continuativamente , maggiori
saranno le probabilità di selezione
Proof of Elapsed Time (di Intel)
VALUTAZIONE ▪ Non TrustLess : problematico è il fatto che vi sia un ente
terzo cui affidarsi , cioè Intel, mentre l’obiettivo stesso della
tecnologia blockchain era quello di eliminare il concetto di
affidamento ad enti.
▪ Limiti: avendo una logica «paga
per giocare» può risultare in uno
spreco continuo di moneta
I miner inviano valuta ad un indirizzo «bruciandoli» , questi non saranno infatti recuperabili. Più valuta viene bruciata e maggiori sono le
possibilità d’essere selezionati per l’append.
A differenza del PoStake le chance acquisite con questa spesa decadono nel tempo , portando dunque alla necessità di un continuo
versamento di valuta nel sistema per il mantenimento della probabilità di selezione, un po’ come avviene nel PoWork con l’investimento
continuo in Hardware sempre più potente.
L’approccio di Intel si basa sul tempo d’attesa e sul TEE (Trusted Execution Environment). I blocchi sono prodotti sulla base di un lotteria
«temporale» regolata dal TEE eseguito simultaneamente su ogni nodo, questo garantisce il corretto funzionamento del sistema gestendo i
vari lassi di tempo con un’elevatissima scalabilità e basso dispendio energetico.
9
Blockchain come Struttura Dato
Catena di hash ed immutabilità
Il termine «blockchain» va in primis utilizzato come riferimento alla struttura
dato che rappresenta.
La struttura dato Blockchain consiste in una lista ordinata di blocchi, ogni uno dei
quali contiene a sua volta una serie di elementi.
I blocchi fanno riferimento al precedente proprio come i numeri di
pagina in un libro
Ogni blocco è formato da:
➢ Contenuto effettivo, nel Bitcoin si hanno le transazioni
e la ricompensa d’incentivo per il miner. Con gli Smart
Contracts si possono avere risultati di chiamate e
funzione (es. nell’Ethereum).
➢ Un Header, solitamente questo contiene dati tecnici
relativi al blocco ,un Hash calcolato in base ai dati
contenuti in esso ed infine l’Hash che fa riferimento al
blocco precedente.
Ordinamento in un libro Ordinamento blocchi
Pagina 1,2,3,4,5,6,7,8 Blocco n58uf0 costruito sul 84n855
Blocco 90fk5n costruito sul n58uf0
Blocco 8n6d7j costruito sul 90fk5n
Ogni pagina è creata sulla base
del numero minore di uno.
84n855, n58uf0, 90fk5n, 8n6d7j
Rappresentano gli hash dei singoli
blocchi. La loro peculiarità sta nel fatto
che , a differenza dei numeri di pagina,
essi sono determinati dal contenuto dei
blocchi.
Consistenza Interna
Attraverso l’utilizzo di funzioni di hashing è ottenuta una forma di ordine e
validazione. L’Hash del blocco viene calcolato dallo stesso nodo che attende
alla sua aggiunta e se questo risulta consistente rispetto ai dati , in caso di
aggiunta avvenuta nella chain si ha la certezza che l’intera blockchain sia
internamente consistente rispetto allo storico dei dati in essa inseriti.
Chiunque voglia modificare un dato interno dovrebbe ricalcolare tutti gli
hash da quel punto della catena in poi ,la blockchain risulterebbe differente
proprio per questo (impossibilità modifica dati)
10
Differenze Logiche
Prima Generazione Seconda Generazione
Costituite da un’architettura Distributed Ledger per il
salvataggio di transazioni validate da protocolli atti al
raggiungimento del consenso all’interno della rete.
La capacità logica aggiungibile alle transazioni è minima e
non possono essere rappresentati beni digitali (es. documenti)
o fisici (es. diamanti) .
Raggiunta la capacità d’ottenere un’infrastruttura general-
purpose, ad uso generico, con un ledger pubblico che tiene
traccia dei risultati computazionali.
La logica è ottenibile grazie agli Smart Contracts
programmabili ed eseguibili nella rete blockchain, la quale
assume il ruolo di una Virtual Machine Distribuita (anche
detta Turing completa).
Permessi d’Accesso
Macro scelte di Progettazione
Una Blockchain si definisce pubblica quando: In una blockchain «privata» i partecipanti sono invece fidati e
conosciuti, scelti dall’ente che possiede la rete, come ad
esempio un’azienda od un gruppo di enti pubblici.
Pubbliche Private
1. Chiunque , senza permessi dati da
un’autorità superiore, può scrivere dati
su di essa.
2. Chiunque , senza permessi dati da
un’autorità superiore, può leggere dati da
essa.
Ciò va dunque ad influenzare la scelta dei meccanismi
decisionali ,quali il protocollo consensus, da applicare al
sistema, in quanto si ha la certezza (o quasi) di un
comportamento consono da parte dei nodi.
BILANCIAMENTO PROTOCOLLI
11
Proprietà di Sicurezza nei Sistemi Blockchain
Basandosi sui meccanismi introdotti in precedenza sono individuabili le proprietà di un sistema
realizzato mediante blockchain :
Identificazione Partecipanti
Immutabilità dei dati
Integrità, autorizzazione e
validazione delle transazioni
Pari condizioni d’accesso
Trasparenza
Non ripudio delle Transazioni
Data dalla catena di Hash che porta, come visto, alla consistenza dell’intera dei dati
nella catena di transazioni avvenute.
Data dal monitoraggio e riadattamento costante attraverso protocolli per il Consenso
distribuito.
Date dalla mancanza di ruoli aventi maggiori privilegi fra i partecipanti.
Ciascun nodo possiede solo l’autorizzazione alla lettura ed alla scrittura in append.
Data dall’adozione di un’architettura a Ledger Distribuito.
Dato dall’immutabilità dei dati unita al forte legame fra hash di un blocco ed il suo
contenuto.
Data da Crittografia Asimmetrica con chiave pubblica e privata
12
Fonti di Critica nei confronti delle Blockchain Pubbliche
PRIVACY risulta un problema perchè ogni nodo ha libero accesso ai dati dell’intera rete e dunque alle
singole transazioni degli altri partecipanti.
Questo è dunque uno dei riflessi della trasparenza su cui si fonda questa tecnologia.
SCALABILITA’ ha limiti in termini di:
 Dimensione dei dati nella catena
 Transaction Processing Rate
Grandezza del Ledger archiviato su ogni nodo.
Numero di Transazioni presenti in ogni blocco
limitate alla larghezza di banda dei nodi o per motivi
di difesa da attacco Dos.
La latenza che intercorre fra richiesta e validazione
di una transazione è influenzata dal Protocollo
Consensus abilitato nella Blockchain di riferimento.
Esempi:
BTC : latenza = 60 minuti circa
ETH : latenza = 3 minuti (12 signers)
con 14 s di intervallo per ogni nodo
validatore
13
Alcuni Possibili Vettori d’Attacco
Wallet Theft
I siti web offrenti un servizio come portafoglio elettronico
potrebbero presentare bug nell’applicativo web o negli stessi smart
contracts per le transazioni, grazie ai quali potrebbe risultare
possibile il furto delle crypto-monete degli utenti iscritti.Packet Sniffing
Possibile monitoraggio delle attività di un nodo da parte di un
malintenzionato, vettore annullato grazie all’integrazione della
rete Tor.
Sybil Attack
Un sistema decentralizzato non può essere «sconfitto» finché è
presente in esso una maggioranza autoritaria; ovvero non risulta
possibile ai nodi malevoli prendere il sopravvento sulla
legittimazione a meno che questi non risultino essere in
maggioranza.
In questa tipologia gli attaccanti creano diversi nodi anonimi aventi
un comportamento non consono alle regole del sistema. Il
meccanismo Proof of Work risulta essere una forma di difesa da
questo attacco poiché a garantire l’integrità della Blockchain non è
la maggioranza numerica dei nodi fidati ma la potenza
computazionale (hashing power) complessiva di questi ultimi.
Se infatti risulta semplice per gli attaccanti creare nodi malevoli è
invece per loro molto difficile accumulare elevate capacità di calcolo.
DoS Attack
Il classico Denial of Service , nel quale si tenta di esaurire le
risorse di un sistema che offre un servizio mediante l’invio di un
elevato numero di richieste, sino alla saturazione con conseguente
disservizio verso le richieste di operazioni valide.
Nel caso della Blockchain un attacco DoS ha come fine quello
d’impedire la gestione di operazioni come: aggiornamento del
ledger, ricezione o trasmissione di transazioni , validazione di
blocchi o mining.
TimeJacking (Timestamp Hacking nel Bitcoin)
Ciascun nodo interno mantiene un contatore rappresentante il timestamp della rete, importante per la valutazione e la legittimazione di
qualsiasi operazione , vi sono infatti regole temporali secondo le quali un nodo decide se accettare o meno un messaggio proveniente dalla
rete. L’aggiornamento del timestamp è basato sui messaggi dei peers che di volta in volta si connettono.
L’attacco consiste nell’annunciazione ad un singolo nodo (solitamente un miner ) di un elevato numero di timestamp inaccurati da parte
d’un gruppo di peer malevoli, come ad esempio un gruppo di client Tor. Così facendo l’attaccante è in grado di alterare con l’inganno il
timestamp di rete del nodo, inducendolo poi ad accettare come vera una blockchain fasulla.
A questo punto la vittima è letteralmente «isolata» dal normale processo transazionale della rete e continuerà ad utilizzare la sua capacità
computazionale per l’ append di blocchi poi rifiutati dal resto della rete ,poiché calcolati su di una chain diversa da quella attuale.
Questo attacco è solitamente utilizzato dai miners per ridurre la potenza di calcolo dei concorrenti, facendola utilizzare su chain false.
Bibliografia
«A Taxonomy of Blockchain-Based Systems for Architecture Design» di Xiwei Xu , Mark Staples and Ingo Weber (CSIRO)
«A Gentle Introduction to Blockchain Technology» di Antony Lewis per Bits on Blocks (Blog) e BNC (Brave New Coin)
«Blockchain, cryptography, and consensus» di Christian Cachin da IBM Research, Zurigo
«A (Short) Guide to Blockchain Consensus Protocols » di Amy Castor per Coin Desk
Sitografia
«Understanding Blockchain Consensus Models» del Dr. Arati Baliga per Persistent System

Mais conteúdo relacionado

Mais procurados

Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...Sardegna Ricerche
 
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitaleBitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitalemidimarcus
 
Blockchain essenziale
Blockchain essenzialeBlockchain essenziale
Blockchain essenzialeFederico Bo
 
SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...
SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...
SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...Danilo Longoni
 
Le monete virtuali
Le monete virtualiLe monete virtuali
Le monete virtualiLoris Venuto
 
Presentazione del mining Bitcoin
Presentazione del mining BitcoinPresentazione del mining Bitcoin
Presentazione del mining BitcoinI3P
 
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...Giulia Aranguena
 
Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset  Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset Giulia Aranguena
 
Blockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuitaBlockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuitaMario Gentili
 
Bitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo realeBitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo realetelosaes
 
#Bitcoin: la moneta della rete
#Bitcoin: la moneta della rete#Bitcoin: la moneta della rete
#Bitcoin: la moneta della reteGiulia Aranguena
 
Introduzione alla Blockchain
Introduzione alla BlockchainIntroduzione alla Blockchain
Introduzione alla BlockchainGiovanni Ciatto
 

Mais procurados (15)

Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
Stefano Capaccioli - Strumenti per decentralizzare il mondo: Bitcoin, Blockch...
 
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitaleBitcoin e le Criptovalute come nuova frontiera della libertà digitale
Bitcoin e le Criptovalute come nuova frontiera della libertà digitale
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Bitcoin Revolution
Bitcoin RevolutionBitcoin Revolution
Bitcoin Revolution
 
Blockchain essenziale
Blockchain essenzialeBlockchain essenziale
Blockchain essenziale
 
SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...
SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...
SMAU Bologna 2018 - Blockchain, Sicurezza delle transazioni e dei dati: non s...
 
Le monete virtuali
Le monete virtualiLe monete virtuali
Le monete virtuali
 
Presentazione del mining Bitcoin
Presentazione del mining BitcoinPresentazione del mining Bitcoin
Presentazione del mining Bitcoin
 
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
 
Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset  Tokenizzazione e regolamentazione dei virtual asset
Tokenizzazione e regolamentazione dei virtual asset
 
Blockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuitaBlockchain il travolgente futuro della sicurezza distribuita
Blockchain il travolgente futuro della sicurezza distribuita
 
Bitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo realeBitcoin: la moneta virtuale conquista il mondo reale
Bitcoin: la moneta virtuale conquista il mondo reale
 
Bitcoin2014utfen
Bitcoin2014utfenBitcoin2014utfen
Bitcoin2014utfen
 
#Bitcoin: la moneta della rete
#Bitcoin: la moneta della rete#Bitcoin: la moneta della rete
#Bitcoin: la moneta della rete
 
Introduzione alla Blockchain
Introduzione alla BlockchainIntroduzione alla Blockchain
Introduzione alla Blockchain
 

Semelhante a Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti TrustLess

Come interagire con la blockchain di Bitcoin
Come interagire con la blockchain di BitcoinCome interagire con la blockchain di Bitcoin
Come interagire con la blockchain di BitcoinAndrea Melchiorre
 
Protocolli per la protezione dell'anonimato nelle valute Monero e Zcash
Protocolli per la protezione dell'anonimato nelle valute Monero e ZcashProtocolli per la protezione dell'anonimato nelle valute Monero e Zcash
Protocolli per la protezione dell'anonimato nelle valute Monero e ZcashRiccardoCorocher
 
Blockchain for Business Innova4_
Blockchain for Business Innova4_Blockchain for Business Innova4_
Blockchain for Business Innova4_Massimo Formica
 
BlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuitoBlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuitoNinja Academy
 
Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...
Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...
Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...MassimoPalmisano
 
Application_level_SLA_monitoring
Application_level_SLA_monitoringApplication_level_SLA_monitoring
Application_level_SLA_monitoringNicola Mezzetti
 
SignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio Murri
SignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio MurriSignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio Murri
SignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio MurriDigital Law Communication
 
Thesis | Blockchain & Marketing
Thesis | Blockchain & MarketingThesis | Blockchain & Marketing
Thesis | Blockchain & MarketingGiona Giusti
 
Publish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingPublish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingNicola Mezzetti
 
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?Roberta De Matteo
 
Blockchain per la PA
Blockchain per la PABlockchain per la PA
Blockchain per la PAManuel Rafeli
 
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...TiborRacman
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
Smau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICToSmau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICToSMAU
 
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilitàTesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilitàRiccardo Melioli
 
Bitcoin: un sistema di moneta elettronica peer-to-peer
Bitcoin: un sistema di moneta elettronica peer-to-peerBitcoin: un sistema di moneta elettronica peer-to-peer
Bitcoin: un sistema di moneta elettronica peer-to-peerQuotidiano Piemontese
 

Semelhante a Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti TrustLess (20)

Come interagire con la blockchain di Bitcoin
Come interagire con la blockchain di BitcoinCome interagire con la blockchain di Bitcoin
Come interagire con la blockchain di Bitcoin
 
Matic ita (4)
Matic ita (4)Matic ita (4)
Matic ita (4)
 
Protocolli per la protezione dell'anonimato nelle valute Monero e Zcash
Protocolli per la protezione dell'anonimato nelle valute Monero e ZcashProtocolli per la protezione dell'anonimato nelle valute Monero e Zcash
Protocolli per la protezione dell'anonimato nelle valute Monero e Zcash
 
Blockchain for Business Innova4_
Blockchain for Business Innova4_Blockchain for Business Innova4_
Blockchain for Business Innova4_
 
BlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuitoBlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuito
 
Workshop 20092019 Nonnis
Workshop 20092019 NonnisWorkshop 20092019 Nonnis
Workshop 20092019 Nonnis
 
Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...
Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...
Prototipazione di una piattaforma di controllo degli accessi fisici cross ven...
 
La blockchain - Cos'è un Algoritmo di Consenso
La blockchain - Cos'è un Algoritmo di ConsensoLa blockchain - Cos'è un Algoritmo di Consenso
La blockchain - Cos'è un Algoritmo di Consenso
 
Application_level_SLA_monitoring
Application_level_SLA_monitoringApplication_level_SLA_monitoring
Application_level_SLA_monitoring
 
SignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio Murri
SignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio MurriSignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio Murri
SignEAT - Evento AIFAG del 15 giugno 2017 - Intervento Giulio Murri
 
Thesis | Blockchain & Marketing
Thesis | Blockchain & MarketingThesis | Blockchain & Marketing
Thesis | Blockchain & Marketing
 
Publish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingPublish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based Routing
 
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
Blockchain e Smart contracts. Siamo alla vigilia di una rivoluzione?
 
Blockchain per la PA
Blockchain per la PABlockchain per la PA
Blockchain per la PA
 
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
Analisi e prototipazione di un sistema di streaming per la localizzazione in ...
 
Sicurezza delle reti 802.11
Sicurezza delle reti 802.11Sicurezza delle reti 802.11
Sicurezza delle reti 802.11
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
Smau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICToSmau Firenze 2016 - dirICTo
Smau Firenze 2016 - dirICTo
 
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilitàTesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
 
Bitcoin: un sistema di moneta elettronica peer-to-peer
Bitcoin: un sistema di moneta elettronica peer-to-peerBitcoin: un sistema di moneta elettronica peer-to-peer
Bitcoin: un sistema di moneta elettronica peer-to-peer
 

Blockchain: Analisi Introduttiva ai meccanismi di sicurezza nelle nuove reti TrustLess

  • 1. BLOCKCHAIN Analisi introduttiva ai meccanismi di Sicurezza nelle nuove reti TrustLess
  • 2. Corso di Laurea Triennale in : SICUREZZA DEI SISTEMI E DELLE RETI INFORMATICHE Studente : Lacerenza Francesco Anno Accademico : 2016/2017
  • 3. Indice 1. Definizione generica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 2. Componenti principali. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 2.1 Architettura a Ledger Distribuito. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Concetto di Consensus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 2.3 Protocolli Consensus e Sicurezza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 2.4 Tipologia d’approccio al Consensus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5 Blockchain come Struttura dato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 3. Macro Scelte di Progettazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 4. Proprietà di Sicurezza nei sistemi Blockchain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5. Fonti di Critica delle Blockchain pubbliche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6. Possibili Vettori d’attacco. . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
  • 4. Definizione Generica «Il presupposto della Blockchain è quello di ridurre la necessità di fiducia, sostituendola con la tecnologia.» La Blockchain è una tecnologia emergente atta alla condivisione di dati ,costituita da un’architettura decentralizzata e basata sulle transazioni interne ad una rete i cui partecipanti non sono fra loro necessariamente fidati. Decentralizzazione e stati condivisi L’utilizzo della logica peer-to-peer rende possibile la non gerarchizzazione del sistema attorno ad un nodo centrale fidato con privilegi maggiori sulla manipolazione delle transazioni. Si ha dunque l’assenza di un Single Point of Failure ed è proprio per questo che viene definita «Tecnologia TrustLess» (senza fiducia) dove gli utenti possono scambiare fra loro valore (dati, cryptovalute eccetera) senza affidarsi ad un’autorità terza, ma alla blockchain stessa. La mancanza di un centro funge inoltre da colonna portante per la macchina a stati costituente la blockchain (catena di blocchi) , in cui ogni transazione avvenuta resta indelebilmente impressa (condizione append-only). Lo stato attuale della catena è condiviso e deciso dai nodi stessi grazie a meccanismi d’accettazione e propagazione. 1
  • 5. Ledger Replicato Storia di tutte le transazioni Append-only log con passato immutabile Distribuito su ciascuno dei nodi nella sua piena forma Consenso Validazione transazioni Controllo condiviso della tolleranza di interruzioni Incentivazione Verifica e Propagazione dello stato attuale Crittografia (e catena di hash) Integrità del Ledger Autenticità delle transazioni Identità dei partecipanti Privacy nelle transazioni Logica Business Architettura transazionale Possibilità di sviluppo da semplice valuta e Smart Contracts programmabili Concetto di libro contabile inglobato nel Ledger 2
  • 6. Il concetto di Ledger (Libro Mastro) Peculiarità Replicato e prodotto in collaborazione fra i nodi Presente in ogni nodo nella sua forma completa Fiducia in esso dovuta a: -Crittografia -Validazione distribuita Impossibile ( o quasi) sostituirlo con un falso approvato poi dalla maggioranza dei nodi Il ledger contiene tutte le transazioni avvenute internamente alla blockchain sin dalla sua creazione, ovvero funge da log virtuale del sistema sul quale , tecnicamente, l’unica forma di scrittura ammessa è l’ append. Un Database decentralizzato In particolare è utilizzato il Distributed Ledger, nel quale ogni nodo possiede una copia dell’intero database di transazioni, generando così fiducia fra i singoli membri. Una minaccia nella condivisione Sorge a questo punto la possibilità ,da parte di chiunque, di modificare il proprio ledger aggiungendo o togliendo transazioni, e di tentarne poi la propagazione verso gli altri partecipanti. Veridicità dello stato attuale In conclusione attraverso il Distributed Ledger sono raggiunte la trasparenza nel sistema e la resilienza della rete, data la mancanza del Single point of Failure. Viene però introdotta da questa tecnologia la necessità di meccanismi atti alla legittimazione delle transazioni e degli aggiornamenti riguardanti lo stato corrente del sistema. 3
  • 7. Il concetto di Consenso in una Blockchain Per Consenso in un Blockchain s’intende il raggiungimento dell’intesa fra i nodi riguardo quale sia il blocco successivo da aggiungere alla catena. Un protocollo Consensus ha il dovere d’assicurare che tale blocco sia la sola ed unica versione della verità approvata dal sistema, il tutto grazie alla comunicazione fra i nodi. ❖ Regole di Validazione del blocco di transazioni ❖ Regole di Broadcasting ❖ Risoluzione dei conflitti interni di legittimazione per blocchi simultanei ❖ Meccanismo d’incentivazione al mining dei blocchi ❖ Validità dello storico transazioni del sistema ❖ Non presenza di doppioni illeciti ❖ Non presenza di transazioni non legittimate Implementazione Obiettivi Astratto Concreto I meccanismi di Consenso permettono un sicuro aggiornamento dello stato distribuito e condiviso; l’aggiornamento avviene sulla base di regole definite a priori internamente alla macchina a stati eseguita su tutti i nodi. Tali regole interne alla macchina a stati assicurano dunque che nodi diversi con gli stessi input producano, teoricamente ed in condizioni non problematiche, gli stessi output, portando il sistema alla propagazione dei soli blocchi legittimi. 4
  • 8. Protocolli Consensus e Sicurezza Proprietà chiave per la valutazione di questa categoria di protocolli  Safety, un protocollo consensus si può ritenere affidabile se e solo se tutti i nodi producono lo stesso output e tutti gli output prodotti risultano validi sulla base delle proprietà definite dal protocollo.  Liveness, un protocollo consensus garantisce vitalità se e solo se , in qualunque stato si trovi il sistema, prima o poi i nodi non falsati produrranno un output valido generando un cambiamento di stato (progresso del sistema).  Fault Tollerance, un protocollo consensus possiede tolleranza degli errori se e solo se è in grado di riprendersi autonomamente da problemi dovuti ad uno o più nodi partecipanti al protocollo. Nello sviluppo di un algoritmo per il Consenso in una rete distribuita si deve oltretutto tener conto della vasta gamma di problemi in tempo d’esecuzione sfruttabili contro quest’ultimo al fine di falsarne gli output. Tali protocolli dovranno dunque risultare resilienti a : ✓ Collasso di n nodi in un simultaneo tempo t ✓ Partizionamento della rete in subnets ✓ Ritardo dei messaggi, ✓ Messaggistica out-of-order (riordinamento dei messaggi di rete) ✓ Messaggi corrotti ✓ Messaggi programmati contro le regole del sistema (Byzantine Nodes) FLP Impossibility Result (Fischer,Lynch e Peterson ,1985) Questa teoria riguarda nello specifico le tre proprietà chiave per la valutazione questa categoria di protocolli. Secondo quanto dimostrato dall’Impossibility Result nessun protocollo deterministico per il Consenso può garantire tutte le proprietà : Safety,Liveness e Fault Tollerance. IL COMPROMESSO Essendo la tolleranza degli errori (Fault Tollerance) cruciale in una rete globale , nei sistemi Distribuiti si ha dunque la tendenza a scegliere quale fra Safety e Liveness soddisfare, basandosi sui requisiti e sulle assunzioni dell’applicativo. 5
  • 9. Tipologie d’approccio al Consensus Proof of Work (BTC ed ETH) Questa tipologia è la più utilizzata attualmente nell’ambito delle crypto-monete, in questo algoritmo chi compete per l’aggiunta del blocco successivo è chiamato miner e l’aggiunta è delegata a chi per primo risulta aver risolto dei complessi problemi crittografici dati dal sistema stesso, per la risoluzione dei quali è richiesta dunque un’alta capacità computazionale. La ricompensa per l’aggiunta del blocco consiste in una quantità definita di valuta ed una tassa di transazione. VALUTAZIONE ▪ Investimento : Energia Elettrica ed Hardware di ultima generazione ▪ Append Blocco: risoluzione problemi crittografici ▪ Reward per Blocco: tassa transazionale o tassa per la firma ▪ Equità competizione: legge del rapporto sull’investimento ▪ Scalabilità: Inefficiente a causa del limite di 1Mb sulla dimensione del singolo blocco imposto come difesa da attacchi DoS; sono cosi supportate da 3 a 7 transazioni al secondo. E’ inoltre dispendiosa la valutazione dell’ hashing power maggiore.Proof of Stake In questo caso i Miner sono chiamati Validatori poiché il sistema non genera valuta ad ogni aggiunta di blocco, bensì tutto il volume di valuta è presente nel sistema sin dalla sua creazione. I Validatori acquistano fondi dal sistema (stake), sono per questo chiamati Stake Holders, ottenendo così profitto dalle tasse di transazione ed incrementando le loro probabilità di poter aggiungere un blocco alla catena. Ciascun blocco creato necessita poi della firma commissiva prima d’essere immutabilmente considerato valido dalla blockchain; in base a come viene implementata questa firma si generano sottoclassi del protocollo, sarebbe infatti possibile eleggere un gruppo casuale di nodi per la valutazione del blocco (signers) o addirittura far si che tutti i nodi debbano firmarlo prima dell’aggiunta. VALUTAZIONE ▪ Investimento : fondi del sistema , STAKE ▪ Append Blocco: più stake si possiedono e maggiori sono le possibilità di attendere all’aggiunta di un blocco ▪ Reward per Blocco: Valuta e tassa transazionale. ▪ Equità competizione: avvantaggiati miners di paesi con basso costo energetico ▪ Scalabilità: Efficiente poiché risulta più semplice valutare chi possiede più fondi rispetto , come avviene nel P.o.Work, alla valutazione dell’ Hashing Power. 6
  • 10. Limite dei BTC producibili (anti iper-inflazione) La blockchain del Bitcoin ha un limite di produzione di valuta, ciascun blocco aggiunto alla catena introduce 50 BTC nel sistema, ogni 210.000 blocchi la quantità di BTC introdotta dai singoli blocchi si dimezza. Risulta dunque semplice il calcolo tramite serie numerica dell’ammontare di bitcoin producibili dal sistema: Problem of Nothing at Stake (nessuna posta in gioco) Con l’approccio Proof of Stake s’introduce la possibilità da parte di Validatori e Signers di sfruttare facilmente ,senza alcuna posta in gioco, un tentativo malevolo di ramificazione della catena (Fork Attacks), nel quale risultano Una volta raggiunto il tetto massimo di blocchi generanti nuovi BTC il guadagno per i miner sarà limitato alle sole tasse di transazione . presenti in circolazione due versioni dello storico transazioni , una delle quali è ovviamente un tentativo di modifica del passato o di aggiunta di transazioni non legittime. I nodi ,non avendo nulla da perdere, potrebbero dunque partecipare alla firma di entrambe le varianti, ottenendo un guadagno da queste. Motivi d’introduzione della problematica Con il PoStake la capacità computazionale necessaria per partecipare alla blockchain è stata ridotta drasticamente, rendendo così facile la partecipazione a più chains simultaneamente; i miners di fatto trarrebbero profitto dal lavoro in due catene anche nel PoWork , ma è proprio l’alto carico computazionale richiesto a rendere altamente dispendioso e non favorevole il lavoro su catene non legittime. Gli Stake Holders non avrebbero dunque nulla da perdere nel provare ad ingannare il sistema , spendendo ad esempio due volte la stessa cifra in istanze differenti della blockchain, prima della riorganizzazione. 7
  • 11. Proof of Activity (ibrido PoWork e PoStake) VALUTAZIONE ▪ Investimento : Energia Elettrica ed Hardware di ultima generazione ▪ Append Blocco: risoluzione problemi crittografici ▪ Limiti: Problem of nothing at Stake ▪ Limiti: limiti energetici del PoWork e pericolo Problem of Nothing at Stake Proof of Capacity In questo protocollo di Consensus le chance che un nodo ha di aggiungere un nodo ed essere per esso ricompensato sono legate allo spazio di archiviazione. L’algoritmo genera dei Plots ,ovvero dei grandi data sets che il miner salve nel proprio supporto; maggiore è la quantità di plots posseduti maggiori sono le possibilità di essere selezionati per l’aggiunta del blocco successivo. VALUTAZIONE ▪ Investimento : spazio d’archiviazione ▪ Append Blocco: probabilità legata ad i plots posseduti ▪ Reward per Blocco: tassazioni divise fra miners e signers ▪ Equità competizione: avvantaggiati miners di paesi con basso costo energetico Sistema ideato per ovviare al limite di liquidità del BTC. In quanto ibrido mantiene il processo di creazione dei blocchi del PoWork (Hashing Power), il blocco generato anziché contenere transazione sarà composto da un Template avente un Header e l’indirizzo monetario del miner. A questo punto si ha l’assegnazione del compito di firma del blocco ad un gruppo di nodi , chiamati in questa fase signers, scelti in base alla valuta da loro posseduta (più valuta si possieda e maggiori sono le probabilità di essere scelti come signer). 8
  • 12. Proof of Burn VALUTAZIONE ▪ Investimento : Valuta «bruciata» ▪ Append Blocco: più valuta viene bruciata continuativamente , maggiori saranno le probabilità di selezione Proof of Elapsed Time (di Intel) VALUTAZIONE ▪ Non TrustLess : problematico è il fatto che vi sia un ente terzo cui affidarsi , cioè Intel, mentre l’obiettivo stesso della tecnologia blockchain era quello di eliminare il concetto di affidamento ad enti. ▪ Limiti: avendo una logica «paga per giocare» può risultare in uno spreco continuo di moneta I miner inviano valuta ad un indirizzo «bruciandoli» , questi non saranno infatti recuperabili. Più valuta viene bruciata e maggiori sono le possibilità d’essere selezionati per l’append. A differenza del PoStake le chance acquisite con questa spesa decadono nel tempo , portando dunque alla necessità di un continuo versamento di valuta nel sistema per il mantenimento della probabilità di selezione, un po’ come avviene nel PoWork con l’investimento continuo in Hardware sempre più potente. L’approccio di Intel si basa sul tempo d’attesa e sul TEE (Trusted Execution Environment). I blocchi sono prodotti sulla base di un lotteria «temporale» regolata dal TEE eseguito simultaneamente su ogni nodo, questo garantisce il corretto funzionamento del sistema gestendo i vari lassi di tempo con un’elevatissima scalabilità e basso dispendio energetico. 9
  • 13. Blockchain come Struttura Dato Catena di hash ed immutabilità Il termine «blockchain» va in primis utilizzato come riferimento alla struttura dato che rappresenta. La struttura dato Blockchain consiste in una lista ordinata di blocchi, ogni uno dei quali contiene a sua volta una serie di elementi. I blocchi fanno riferimento al precedente proprio come i numeri di pagina in un libro Ogni blocco è formato da: ➢ Contenuto effettivo, nel Bitcoin si hanno le transazioni e la ricompensa d’incentivo per il miner. Con gli Smart Contracts si possono avere risultati di chiamate e funzione (es. nell’Ethereum). ➢ Un Header, solitamente questo contiene dati tecnici relativi al blocco ,un Hash calcolato in base ai dati contenuti in esso ed infine l’Hash che fa riferimento al blocco precedente. Ordinamento in un libro Ordinamento blocchi Pagina 1,2,3,4,5,6,7,8 Blocco n58uf0 costruito sul 84n855 Blocco 90fk5n costruito sul n58uf0 Blocco 8n6d7j costruito sul 90fk5n Ogni pagina è creata sulla base del numero minore di uno. 84n855, n58uf0, 90fk5n, 8n6d7j Rappresentano gli hash dei singoli blocchi. La loro peculiarità sta nel fatto che , a differenza dei numeri di pagina, essi sono determinati dal contenuto dei blocchi. Consistenza Interna Attraverso l’utilizzo di funzioni di hashing è ottenuta una forma di ordine e validazione. L’Hash del blocco viene calcolato dallo stesso nodo che attende alla sua aggiunta e se questo risulta consistente rispetto ai dati , in caso di aggiunta avvenuta nella chain si ha la certezza che l’intera blockchain sia internamente consistente rispetto allo storico dei dati in essa inseriti. Chiunque voglia modificare un dato interno dovrebbe ricalcolare tutti gli hash da quel punto della catena in poi ,la blockchain risulterebbe differente proprio per questo (impossibilità modifica dati) 10
  • 14. Differenze Logiche Prima Generazione Seconda Generazione Costituite da un’architettura Distributed Ledger per il salvataggio di transazioni validate da protocolli atti al raggiungimento del consenso all’interno della rete. La capacità logica aggiungibile alle transazioni è minima e non possono essere rappresentati beni digitali (es. documenti) o fisici (es. diamanti) . Raggiunta la capacità d’ottenere un’infrastruttura general- purpose, ad uso generico, con un ledger pubblico che tiene traccia dei risultati computazionali. La logica è ottenibile grazie agli Smart Contracts programmabili ed eseguibili nella rete blockchain, la quale assume il ruolo di una Virtual Machine Distribuita (anche detta Turing completa). Permessi d’Accesso Macro scelte di Progettazione Una Blockchain si definisce pubblica quando: In una blockchain «privata» i partecipanti sono invece fidati e conosciuti, scelti dall’ente che possiede la rete, come ad esempio un’azienda od un gruppo di enti pubblici. Pubbliche Private 1. Chiunque , senza permessi dati da un’autorità superiore, può scrivere dati su di essa. 2. Chiunque , senza permessi dati da un’autorità superiore, può leggere dati da essa. Ciò va dunque ad influenzare la scelta dei meccanismi decisionali ,quali il protocollo consensus, da applicare al sistema, in quanto si ha la certezza (o quasi) di un comportamento consono da parte dei nodi. BILANCIAMENTO PROTOCOLLI 11
  • 15. Proprietà di Sicurezza nei Sistemi Blockchain Basandosi sui meccanismi introdotti in precedenza sono individuabili le proprietà di un sistema realizzato mediante blockchain : Identificazione Partecipanti Immutabilità dei dati Integrità, autorizzazione e validazione delle transazioni Pari condizioni d’accesso Trasparenza Non ripudio delle Transazioni Data dalla catena di Hash che porta, come visto, alla consistenza dell’intera dei dati nella catena di transazioni avvenute. Data dal monitoraggio e riadattamento costante attraverso protocolli per il Consenso distribuito. Date dalla mancanza di ruoli aventi maggiori privilegi fra i partecipanti. Ciascun nodo possiede solo l’autorizzazione alla lettura ed alla scrittura in append. Data dall’adozione di un’architettura a Ledger Distribuito. Dato dall’immutabilità dei dati unita al forte legame fra hash di un blocco ed il suo contenuto. Data da Crittografia Asimmetrica con chiave pubblica e privata 12
  • 16. Fonti di Critica nei confronti delle Blockchain Pubbliche PRIVACY risulta un problema perchè ogni nodo ha libero accesso ai dati dell’intera rete e dunque alle singole transazioni degli altri partecipanti. Questo è dunque uno dei riflessi della trasparenza su cui si fonda questa tecnologia. SCALABILITA’ ha limiti in termini di:  Dimensione dei dati nella catena  Transaction Processing Rate Grandezza del Ledger archiviato su ogni nodo. Numero di Transazioni presenti in ogni blocco limitate alla larghezza di banda dei nodi o per motivi di difesa da attacco Dos. La latenza che intercorre fra richiesta e validazione di una transazione è influenzata dal Protocollo Consensus abilitato nella Blockchain di riferimento. Esempi: BTC : latenza = 60 minuti circa ETH : latenza = 3 minuti (12 signers) con 14 s di intervallo per ogni nodo validatore 13
  • 17. Alcuni Possibili Vettori d’Attacco Wallet Theft I siti web offrenti un servizio come portafoglio elettronico potrebbero presentare bug nell’applicativo web o negli stessi smart contracts per le transazioni, grazie ai quali potrebbe risultare possibile il furto delle crypto-monete degli utenti iscritti.Packet Sniffing Possibile monitoraggio delle attività di un nodo da parte di un malintenzionato, vettore annullato grazie all’integrazione della rete Tor. Sybil Attack Un sistema decentralizzato non può essere «sconfitto» finché è presente in esso una maggioranza autoritaria; ovvero non risulta possibile ai nodi malevoli prendere il sopravvento sulla legittimazione a meno che questi non risultino essere in maggioranza. In questa tipologia gli attaccanti creano diversi nodi anonimi aventi un comportamento non consono alle regole del sistema. Il meccanismo Proof of Work risulta essere una forma di difesa da questo attacco poiché a garantire l’integrità della Blockchain non è la maggioranza numerica dei nodi fidati ma la potenza computazionale (hashing power) complessiva di questi ultimi. Se infatti risulta semplice per gli attaccanti creare nodi malevoli è invece per loro molto difficile accumulare elevate capacità di calcolo. DoS Attack Il classico Denial of Service , nel quale si tenta di esaurire le risorse di un sistema che offre un servizio mediante l’invio di un elevato numero di richieste, sino alla saturazione con conseguente disservizio verso le richieste di operazioni valide. Nel caso della Blockchain un attacco DoS ha come fine quello d’impedire la gestione di operazioni come: aggiornamento del ledger, ricezione o trasmissione di transazioni , validazione di blocchi o mining. TimeJacking (Timestamp Hacking nel Bitcoin) Ciascun nodo interno mantiene un contatore rappresentante il timestamp della rete, importante per la valutazione e la legittimazione di qualsiasi operazione , vi sono infatti regole temporali secondo le quali un nodo decide se accettare o meno un messaggio proveniente dalla rete. L’aggiornamento del timestamp è basato sui messaggi dei peers che di volta in volta si connettono. L’attacco consiste nell’annunciazione ad un singolo nodo (solitamente un miner ) di un elevato numero di timestamp inaccurati da parte d’un gruppo di peer malevoli, come ad esempio un gruppo di client Tor. Così facendo l’attaccante è in grado di alterare con l’inganno il timestamp di rete del nodo, inducendolo poi ad accettare come vera una blockchain fasulla. A questo punto la vittima è letteralmente «isolata» dal normale processo transazionale della rete e continuerà ad utilizzare la sua capacità computazionale per l’ append di blocchi poi rifiutati dal resto della rete ,poiché calcolati su di una chain diversa da quella attuale. Questo attacco è solitamente utilizzato dai miners per ridurre la potenza di calcolo dei concorrenti, facendola utilizzare su chain false.
  • 18. Bibliografia «A Taxonomy of Blockchain-Based Systems for Architecture Design» di Xiwei Xu , Mark Staples and Ingo Weber (CSIRO) «A Gentle Introduction to Blockchain Technology» di Antony Lewis per Bits on Blocks (Blog) e BNC (Brave New Coin) «Blockchain, cryptography, and consensus» di Christian Cachin da IBM Research, Zurigo «A (Short) Guide to Blockchain Consensus Protocols » di Amy Castor per Coin Desk Sitografia «Understanding Blockchain Consensus Models» del Dr. Arati Baliga per Persistent System