Analisi e progettazione di un sistema di gestione dei Green Pass basato su Blockchain
Università degli Studi di Napoli Parthenope
Dipartimento di Scienze e Tecnologie
Scuola Interdipartimentale delle Scienze, dell’Ingegneria e della Salute
Corso di Laurea in Informatica
Elaborato di Laurea
Relatori: Candidato:
Prof. Alessio Ferone Emiliano Castiello
M0124001451
Anno accademico 2020/2021
Indice
1 Tecnologie 3
1.1 La tecnologia Blockchain . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Funzionamento di una Blockchain . . . . . . . . . . . . . . . . . . 11
1.3 Blockchain Ethereum . . . . . . . . . . . . . . . . . . . . . . . . . 23
2 Il sistema proposto 34
2.1 Gestione dei Green Pass basati su Blockhain . . . . . . . . . . . . 34
2.2 Non Fungible Tokens(NFT) . . . . . . . . . . . . . . . . . . . . . 36
2.3 Analisi dell’applicazione . . . . . . . . . . . . . . . . . . . . . . . 38
3 Implementazione della dApp 49
3.1 Strumenti utilizzati . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2 Green Pass dApp . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4 Conclusioni 63
4.1 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Bibliografia 67
1
Introduzione
Lo scopo della tesi è la progettazione e sviluppo di un’applicazione distribuita e decentralizzata, basata su tecnologia Blockchain, per la gestione e il monitoraggio dei certificati vaccinali contro l’emergenza Covid. L’obiettivo è quello di fornire una possibile alternativa al sistema informatico attualmente in vigore in Italia utilizzato dal Ministero della Salute. Lo scopo dell’applicazione sarà quello di tokenizzare il Green Pass di ogni individuo che accederà ad essa sfruttando le caratteristiche della Blockchain Ethereum. Queste funzionalità saranno rese disponibili agli utenti finali mediante l’utilizzo di uno strumento, Metamask, che permette di accedere e sfruttare servizi web distribuiti senza l’impiego di un client apposito, ma tramite un comune web browser. È quindi presentata un’analisi approfondita delle tecnologie sin qui citate, utile alla comprensione e formulazione di un modello di software distribuito moderno che sfrutti una tecnologia Blockchain, al fine di introdurre considerevoli vantaggi non raggiungibili con le tecnologie attuali.
2
Capitolo 1 Tecnologie
1.1 La tecnologia Blockchain
I diversi punti di vista e le molteplici prospettive da cui la Blockchain può essere interpretata, vanifica ogni possibilità di darne una semplice e univoca definizione. Per alcuni, può essere letta partendo dalle tecnologie che vi stanno alla base, per altri da un’angolazione strutturale o dalle sue implicazioni sul business e sulla società. È certo, che il concreto stravolgimento socioeconomico e infrastrutturale, così come le possibili ripercussioni su innumerevoli settori, hanno via via contribuito a far affermare la tecnologia Blockchain come “l’Internet del futuro”. La sua componente innovativa è legata alla possibilità di sviluppare applicazioni decentrate, effettuare transazioni immutabili e rimuovere la presenza di intermediari. Grazie a queste e ad altre caratteristiche che verranno esposte più avanti, la Blockchain è destinata a cambiare molti aspetti della società moderna, andando a fornire delle soluzioni che prima potevano solo essere lontanamente immaginate. Il modo più semplice per definire
3
Figura 1.1: Struttura Blockchain
una Blockchain è chiamarla registro digitale(ledger).
È una sottofamiglia di tecnologie in cui il registro è decentrato e distribuito su network, strutturato come una catena di registri (i blocchi – ognuno collegato al precedente) contenenti le transazioni e responsabili dell’archiviazione dei dati, la cui validazione è affidata a un meccanismo di consenso (Figura 1.1).
È impossibile rimuovere/modificare i precedenti blocchi aggiunti, poiché la sua natura permette solo l’aggiunta di nuovi blocchi d’informazione. [6]. La Blockchain è infatti una struttura dati condivisa, caratterizzata fondamentalmente da protocolli di consenso, immutabilità del registro, trasparenza, tracciabilità delle transazioni e sicurezza basata su tecniche crittografiche. Diversamente da un comune registro cartaceo, introduce le differenze tipiche del funzionamento del digitale e della rete, tra cui il decentramento, la possibilità di stipulare contratti a distanza e soprattutto di fare a meno di intermediari; di fatto, permette una gestione dei dati in termini di verifica e di autorizzazione senza che sia necessaria la supervisione di un ente centrale.
Dal punto di vista funzionale, la Blockchain permette di gestire un
4
database in modo distribuito, poiché basata su una Rete; dal punto di vista operativo, invece, è un’ottima alternativa agli archivi centralizzati permettendo di gestire l’aggiornamento dei dati con la collaborazione dei partecipanti alla Rete e con la possibilità di avere dati condivisi, accessibili, distribuiti presso tutti i partecipanti. [6]
“La Blockchain è molto più di un’infrastruttura di pagamento, di un sistema di monitoraggio della supply chain o di un gestore di identità digitale; è un sistema con le potenzialità per portare un nuovo livello di fiducia nelle applicazioni, introducendo un cambio di paradigma nelle modalità con cui esse vengono realizzate e dandoci l’opportunità di innovare liberamente”.[7].
Partendo da questi principi, la Blockchain è diventata la declinazione in digitale di un nuovo concetto di fiducia al punto che alcuni ritengono che possa assumere anche un valore per certi aspetti di tipo ‘sociale e politico’. In questo caso la Blockchain è da vedere come una piattaforma che consente lo sviluppo e la concretizzazione di una nuova forma di rapporto sociale, che grazie alla partecipazione di tutti è in grado di garantire a chiunque di verificare, di ‘controllare’, di disporre di una totale trasparenza sugli atti e sulle decisioni, che vengono registrati in archivi che, giova ripetere, possiedono la caratteristica di essere inalterabili, immodificabili e dunque immuni da corruzione[4]. Prima di proseguire oltre, occorre fermarsi ancora un attimo per identificare il rapporto tra Blockchain e Distributed Ledger Technology (DLT).
Sia le DLT che le Blockchain sono registri di informazioni digita-
5
lizzati e decentrati, ma differenti per un insieme di funzionalità specifiche che non condividono. La Blockchain è considerata una tecnologia che appartiene alla categoria delle tecnologie Distributed Ledger ma non tutte le DLT sono Blockchain. Ancora, la Blockchain è una forma di DLT ma con un’applicazione tecnologica molto specifica, creando un libro mastro immutabile di record gestito da una rete decentrata, dove tutti i record sono approvati mediante consenso. Tecnologia, struttura, organizzazione e sviluppo sono decentrati, mentre nelle DLT la tecnologia è decentrata, ma la sua organizzazione potrebbe non rispettare questo carattere.
La Blockchain può essere utilizzata in ogni scenario in cui è richiesto uno stato globale logicamente centralizzato ma una struttura del sistema distribuita (in cui i dati e le computazioni sono distribuiti su più nodi) e decentrata. Tuttavia, in alcuni casi l’autorità in una Blockchain può non essere decentrata, ma tendere alla centralizzazione. A seconda di come viene gestita l’autorità, si distinguono due modelli di Blockchain: pubblica e privata.
Il modello di Blockchain pubblica è attualmente quello più noto e utilizzato, un sistema ad architettura decentrata, ad autorità decentrata e logica centralizzata. Il decentramento è senza alcun dubbio un aspetto chiave di questo modello, dal momento che qualsiasi tentativo di centralizzazione introdurrebbe una debolezza nel sistema esponendo un potenziale punto di fallimento o di controllo (Figura 1.2).
6
Non esiste una singola autorità. Tutti possono unirsi alla rete (aperta), esplorando e verificando la correttezza di ogni transazione (pubblica e analizzabile) e non c’è possibilità di essere esclusi (resistenza alla censura); infatti, una Blockchain aperta non discrimina in base all’origine, destinazione o contenuto (neutrale). Il modello di Blockchain privata, al contrario, sacrifica un completo decentramento in cambio di un controllo sui permessi di accesso e solitamente delle migliori performance, ed è più indicata in alcuni contesti di tipo industriale (Figura 1.3).
Il livello di verifica degli accessi è controllato da una o più autorità (a seconda del grado di privatizzazione), e ha il compito di decidere chi può leggere/scrivere i dati sulla Blockchain e chi può partecipare al processo di verifica delle varie transazioni. Il sistema è considerato affidabile solo se gli attori scelti per il processo di verifica sono affidabili”[7].
Figura 1.2: Figura 1.3:
Blockchain Blockchain
Pubblica Privata
È possibile ricondurre i punti di forza della Blockchain in relazione a delle caratteristiche e proprietà che rappresentano elementi fondamentali per questa tecnologia(Figura 1.4).
7
L’impossibilità di modificare i dati e le transazioni registrate rappresenta l’emblema di questa innovazione e, soprattutto, il costo di un’eventuale modifica in termini di risorse rende sconveniente e quasi impossibile la sua realizzazione; la determinazione del costo da sostenere risulta poi direttamente proporzionale alla vecchiaia dell’informazione.
Per ciò che riguarda la privacy, questa viene garantita dal sistema di attribuzione di chiavi private e pubbliche, che permette la registrazione parzialmente anonima all’interno della Blockchain. In questo modo risulterà difficile risalire all’identità del soggetto controllore delle chiavi. Si parla di anonimato parziale in quanto non è possibile determinare l’identità della persona ma è possibile individuare gli indirizzi che effettuano le transazione.
Altro elemento centrale per questa tecnologia è la fiducia garantita ai soggetti che effettuano degli scambi. L’annullamento della necessità di una parte terza che garantisca lo scambio è determinato dal fatto che sulla Blockchain viene trasferito il peso riposto alla fiducia. Il sistema è la terza parte incontrollabile, decentralizzata e distribuita. Proprio in tal senso la ridondanza delle informazioni le rende presenti e disponibili per ogni fruitore senza il pericolo che possano esser cancellate, inoltre, la Blockchain è accessibile ad ogni soggetto. Questa tecnologia prevede la possibilità di comunicare con altre sue simili richiamando il principio di compatibilità e registrando un sistema di allocazione delle risorse più rapido. Ovviamente anche per questa funzionalità sono tanti i progetti di implementazione
8
promossi. In conclusione, la trasparenza della Blockchain è la caratteristica più popolare di questa innovazione; con questa proprietà viene garantita la chiarezza e pubblicità dei dati e delle informazioni rappresentando un punto di forza soprattutto per l’applicabilità di questa tecnologia in altri ambiti al di fuori di quello finanziario.
Figura 1.4: Vantaggi di una Blockchain
Numerosi sono i potenziali casi d’uso della Blockchain in diversi settori, per esempio:
- Catene di fornitura: le supply chain, elemento essenziale per molte aziende, si occupano dello spostamento di merci dal produttore al consumatore finale. La coordinazione tra tutti gli operatori della filiera ha spesso dimostrato punti di debolezza. Attraverso la tecnologia Blockchain e database immutabili, l’intero ecosistema logistico potrebbe incrementare livelli di immutabilità e trasparenza.
9
- Settore sanitario: trasparenza e sicurezza rendono la tecnologia Blockchain un ottimo archivio di registri medici e dati privati. Grandi quantità di dati sensibili sono spesso lasciate in posizioni vulnerabili essendo salvati sul server centralizzati. Grazie a questa nuova tecnologia, i pazienti potrebbero mantenere la loro privacy condividendo facilmente informazioni private con qualsiasi istituzione che accede al database condiviso.
- Identità digitali: nel mondo digitale le identità fisiche sono facilmente falsificabili. Un’“identità auto-sovrana” legata ad un registro Blockchain e collegata al suo proprietario, permetterebbe a quest’ultimo di rivelare informazioni in modo esclusivo a terze parti.
- Beneficenza: le organizzazioni no profit sono spesso limitate sui modi in cui possono accettare fondi. Facendo affidamento sulla trasparenza insito nella tecnologia Blockchain si potrebbero ridurre questi limiti, massimizzando l’operatività delle istituzioni benefiche.
- Governance: la Blockchain ha la possibilità di cambiare radicalmente il settore pubblico. Ad esempio, può sburocratizzare e velocizzare aspetti della pubblica amministrazione, oppure ridurre il bisogno di fiducia tra enti governativi e civili.
10
- Settore bancario: numerose banche stanno investendo nella Blockchain perché essa rappresenta una soluzione per abbattere costi ed aumentare sicurezza e velocità delle transazioni.
- Titoli finanziari: i titoli finanziari sotto forma di token legati alla Blockchain, sono considerati un valido progresso per il settore finanziario. La tokenizzazione di asset può migliorare la loro liquidità e consentire lo scambio di beni in modo veloce ed economico, eliminando molte inefficienze dell’attuale sistema finanziario.
- 1Criptovalute: le monete digitali sono un mezzo rivoluzionario per il trasferimento di denaro, evitando elevati costi e tempi di regolamento imposti dal sistema bancario tradizionale. Le criptovalute e la Blockchain eliminando questo ecosistema di intermediari, facilitano le transazioni degli utenti.
1.2 Funzionamento di una Blockchain
Al centro della Blockchain c’è il concetto di registrazione delle transazioni all’interno del ledger, visto che uno degli scopi principali di una Blockchain è quello di salvare informazioni, praticamente di ogni tipo.
L’idea è molto simile a un libro mastro tradizionale (un registro della contabilità in cui sono riuniti i valori che compongono un si-
1 Le criptovalute sono monete virtuali decentralizzate, ovvero non rientrano sotto il controllo di istituti finanziari o governi. Esistono diverse criptovalute e ognuna ha le proprie caratteristiche.
11
stema contabile), con la possibilità di registrare transazioni di ogni categoria di bene, dalle valute alle proprietà immobiliari. Mentre la logica del ledger non è cambiata nel tempo, la tecnologia a supporto di esso si è evoluta, passando da registri cartacei ad archivi digitali.
Il grande cambiamento risiede però, nel fatto che la Blockchain ha permesso di garantire la stessa funzionalità nella gestione dei ledger ma senza dover fare riferimento a una struttura centralizzata, senza cioè che sia necessario che un’autorità centrale verifichi, controlli e autorizzi la legittimità di una transazione o di uno scambio. Mediante il decentramento del ledger, infatti, è possibile rimpiazzare l’unico libro mastro tradizionale in capo all’autorità centrale, creandone di molteplici e accessibili a tutti gli utenti, che attraverso una copia possono controllarlo, visionarlo e modificarlo (a patto che ogni operazione sia autorizzata dalla restante parte degli utenti). Infine, per chi dovesse intendersi di database, ledger e database potrebbero sembrare molto simili, poiché alla base di entrambe le tecnologie c’è infatti l’idea di salvare dei dati. Ma, mentre in un database è possibile inserire, cancellare e modificare i dati, in un ledger è possibile unicamente l’aggiunta di nuove informazioni (Figura 1.5).
Questo è reso possibile da una combinazione di vari fattori, tra i quali il decentramento, la crittografia e altri concetti che garantiscono la formazione di un vero e proprio ecosistema piuttosto che un semplice archivio di informazioni. Un ledger può dunque essere visto come un database nel quale è possibile solamente aggiungere informazioni.[7].
12
Figura 1.5: Struttura a matriosca
Dal punto di vista strutturale, come accennato in precedenza, nel cuore di una Blockchain c’è un ledger digitale. Il ledger digitale è strutturato come una catena di blocchi, ognuno dei quali è responsabile della memorizzazione di informazioni, come per esempio registri di transazioni. I blocchi sono strutture di dati aggiunte alla Blockchain in modo sequenziale, un blocco alla volta. Ognuno di essi contiene una prova matematica, generata mediante l’utilizzo della crittografia, che ne assicura la sequenzialità dal blocco precedente, risultando in una ‘catena di blocchi’ (Figura 1.6). Il primo blocco di ogni Blockchain è chiamato blocco genesi.
Figura 1.6: Blocchi
13
La connessione tra blocchi viene generata mediante una funzione crittografica (la funzione crittografica di hash), la quale crea un collegamento matematico indissolubile tra essi. Tale funzione è utilizzata per mappare dati di dimensioni arbitrarie in dati di dimensioni fisse, e fornisce un modo conveniente per esprimere l’intero stato della Blockchain in una singola stringa di lunghezza definita. Per ogni nuovo blocco generato, l’hash del blocco precedente viene inserito nell’input per generare l’hash del nuovo blocco (Figura 1.7).
In pratica ogni blocco contiene al suo interno delle informazioni, dei dati (per esempio transazioni) e l’hash del blocco precedente; di conseguenza, se qualcuno tentasse di aggiungere, rimuovere o modificare a
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.