Sei sulla pagina 1di 31

ALGOTRACE

Contact Tracing su
Blockchain Algorand

Relatore: Alessandro Mei


Correlatore: Massimo La Morgia
Candidato: Daniele Passacantilli
Introduzione
• Nell’ultimo anno, la popolazione
mondiale è stata scossa dalla
pandemia del Covid-19

• Per rallentare la diffusione del


Covid-19, sono state sviluppate delle
applicazioni di Contact Tracing
Contact tracing
• Processo per ricostruire la serie di
incontri effettuati da un individuo
positivo al virus

• DP3T (Decentralized Privacy-


Preserving Proximity Tracing):
• sfrutta gli smartphone
• trasmissione e ricezione di pseudonimi
tramite la tecnologia BLE (Bluetooth Low
Energy)
dp3t
• Se un proprietario di un device scopre di
essere positivo al Covid-19, allora il suo
telefono pubblica in un database centrale
tutti gli pseudonimi che il device ha
trasmesso negli ultimi 14 giorni

• Ogni telefono scarica periodicamente gli


pseudonimi pubblicati e li confronta con
quelli incontrati
problema

• I cittadini non possono verificare i dati


che vengono loro mostrati

• Nelle app di contact tracing manca una


visione nazionale comune del numero di
incontri ravvicinati avvenuti in un giorno
• In Immuni, è solo il governo ad avere tale
visione
Soluzione

• Utilizzare una blockchain per


memorizzare i dati

• Una blockchain permette a chiunque


di leggere o scrivere dei dati al suo
interno (ma è computazionalmente
difficile alterare i dati già presenti)
blockchain

• Una blockchain permette di


memorizzare i dati relativi alle
transazioni tra i suoi utenti

• Ogni utente 𝑖 possiede una coppia


(𝑝𝑘% , 𝑠𝑘% ) ed è identificato da 𝑝𝑘%
Algotrace

Algotrace è una applicazione di


Contact Tracing che sfrutta la
blockchain Algorand per la
memorizzazione dei dati relativi
agli incontri e agli pseudonimi
degli utenti positivi
Algorand

• Algorand è una blockchain che si distingue


per la velocità con cui vengono approvate
le transazioni

• Un nodo di Algorand è detenuto


dall’università La Sapienza

• Ideata dal premio Turing Silvio Micali


Funzionalità

Algorand Redacted Upload dei Download delle


Account Record Redacted Record Diagnosis Keys
e degli pseudonimi
componenti

Client Mobile OC Website Backend Algorand


Blockchain
Utenti di algotrace

Cittadini Operatori sanitari


(1) trasmissione
~ 1.5 m

𝐻(𝑝𝑘* )

𝐻(𝑝𝑘+ )

A B
(2) Redacted record
• 𝐻 𝑝𝑘+ • 𝐻 𝑝𝑘*
• Timestamp • Timestamp
• Durata • Durata

A B
(3) upload H(RR) RR

• Ogni 24 ore, l’app carica la lista dei


Redacted Records (RR) sul
backend e il rispettivo hash sulla
blockchain

• I dati allegati alle transazioni non


possono superare i 1024 bytes

• L’hash permette di rappresentare


un numero arbitrario di RR Algorand
Backend
Blockchain
problema
• Gli account Algorand appena creati
hanno un bilancio pari a 0 Algo

• Per effettuare una transazione in


Algorand, un account deve possedere
almeno 0.1 Algo

• Agli account serve un prestito, altrimenti


non possono effettuare transazioni
Soluzione

+ A

Smart Contract Atomic Transfer


Smart contract
• Programmi che permettono di imporre
regole e logiche personalizzate alle
transazioni

• Prima di una transazione, questi


programmi vengono eseguiti e verificano
che la transazione rispetti le condizioni
imposte dal programmatore, altrimenti
essa viene rifiutata
Smart contract
• Tramite la compilazione di uno Smart
Contract è possibile ottenere una chiave
pubblica a 32 byte, che va a costituire un
Contract Account

• Esso può essere usato nella blockchain


come un qualsiasi account di Algorand
per ricevere e inviare transazioni
Atomic transfer
• Meccanismo che consente di effettuare un gruppo di
transazioni atomicamente
• o vengono tutte accettate, oppure vengono tutte rifiutate

B
• Esempio di Atomic Transfer: 20
Alice effettua un pagamento verso Bob
sse Bob effettua un pagamento verso Claire A 10
sse Claire effettua un pagamento verso Alice
10 C
(3) Upload Tx1:

• Per effettuare l’upload, viene


usato uno Smart Contract 𝑋
𝒑𝒌𝒄 𝒑𝒌𝒙
• 𝑋 è programmato per atomic
accettare solamente degli Tx2:
Atomic Transfer

• 𝑋 viene invocato dal client 𝐶 • 𝐻 𝑅𝑅


per ricevere un prestito di 0.1
𝒑𝒌𝒄 • 𝑠𝑖𝑔𝑛567 (Tx2) 𝒑𝒌𝒙
Algo
(4) Dichiarazione
• Ogni utente di Algotrace può effettuare una
dichiarazione di positività al virus

• Per validare una dichiarazione, è necessaria sia


l’autorizzazione di un operatore sanitario sia
quella dell’utente che si dichiara positivo

• Per implementare il meccanismo di


autorizzazione sono stati utilizzati i
Multisignature Account
Multisig Account
• Rappresentazione logica di un insieme
ordinato di account, associato ad un
threshold t

• Una transazione che coinvolge un


Multisignature Account msig viene
validata solamente se è stata firmata da
almeno t account che compongono msig
(4) Dichiarazione
L’applicazione crea un C 𝒑𝒌𝟏 , … , 𝒑𝒌𝟏𝟒
Multisig Account 𝑚𝑠𝑖𝑔
con le chiavi 𝑝𝑘9 , … , 𝑝𝑘9;
dell’utente C e la chiave
𝑝𝑘= dell’ente sanitario

𝒑𝒌𝒉 msig
(4) dichiarazione
Tx: • 𝑝𝑘9 , … , 𝑝𝑘9;
• 𝑠𝑖𝑔𝑛56E (Tx)
• C crea una transazione verso for 1 ≤ 𝑖 ≤ 14
𝑝𝑘= , allegando le chiavi usate
negli ultimi 14 giorni

• C firma la transazione con 𝒑𝒌𝒎𝒔𝒊𝒈 𝒑𝒌𝒉


tutti i suoi account
• Tx
• C invia la transazione e un • token
token al backend
C Backend
(5) download
• Ogni 24 ore, il client C scarica le
Diagnosis Keys dalla blockchain C Blockchain

• C verifica che che le


dichiarazioni contenenti le
Diagnosis Keys siano state
approvate dall’ente sanitario

• Per farlo, C ricostruisce msig


msig
(6) notifica

Se una delle Diagnosis Keys è


presente tra i RR del dispositivo,
allora l’utente è notificato
dell’esposizione al virus
L’applicazione
Conclusioni
• Lo sviluppo di Algotrace è stato completato

• È stato possibile utilizzare la blockchain Algorand al posto di un


database centrale per la memorizzazione dei dati

• Algotrace emula tutte le funzionalità delle altre applicazioni di Contact


Tracing, permettendo a chiunque di verificare i dati memorizzati nella
blockchain e offrendo una visione nazionale comune del numero di
incontri ravvicinati che avviene in un determinato giorno
Sviluppi futuri
• Modifica alla generazione degli Algorand Account, con introduzione di
una Master Derivation Key per la generazione di diversi account collegati

• Affrontare la vulnerabilità a livello di privacy tipica dei sistemi di Contact


Tracing messa in evidenza nello studio* di Avitabile et al.
• attraverso l’uso combinato di sistemi di videosorveglianza e di antenne per la
ricezione del segnale Bluetooth, è possibile associare uno pseudonimo alla
persona reale che lo trasmette

* Towards Defeating Mass Surveillance and SARS-CoV-2: The Pronto-C2 Fully Decentralized Automatic
Contact Tracing System
Grazie per l’attenzione.