Con le seguenti diapositive si vogliono evidenziare i metodi formali di sicurezza rispettati dalla tecnologia blockchain partendo dallo studio dei meccanismi iimplementati che li rendono tali.
Vengono poi elencate le macro scelte di progettazione d'una blockchain assieme ai difetti riscontrati nelle blockchain pubbliche.
Nell'ultima parte sono poi introdotti in linea teorica alcuni vettori d'attacco utilizzati in passato.
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