La blockchain è, essenzialmente, un database condiviso e sincronizzato tra più entità attraverso una rete telematica accessibile da più persone. Le informazioni memorizzate in tale database sono immodificabili e non cancellabili.
Poiché il GDPR, e più in generale i principi di protezione dei dati, sono stati pensati per un ecosistema in cui la governance dei dati è centralizzata e centrata sul titolare, è agevole comprendere come la blockchain non sia probabilmente la tecnologia più adatta a tutte le tipologie di trattamenti di dati personali e come possa anche essere una fonte di difficoltà per i titolari del trattamento in termini di rispetto degli obblighi previsti dal GDPR.
Trattandosi comunque di una tecnologia sempre più diffusa nel mondo, vediamo allora cos’è una blockchain, come funziona e come può essere utilizzata responsabilmente anche nel contesto della Data Protection.
Indice degli argomenti
Cos’è una blockchain
Una blockchain è un’infrastruttura composta da una rete di computer chiamati nodi che, insieme, gestiscono un database i.e. un particolare archivio di dati, strutturato in spazi digitali chiamati blocchi.
Ogni blocco può contenere una determinata quantità di informazioni e, quando risulta colmo, viene chiuso e collegato al blocco precedente tramite le funzioni di HASH descritte nel box sottostante, andando così a formare una catena di blocchi, una blockchain, appunto.
Attenzione: ogni blocco contiene una propria impronta HASH, insieme all’HASH del blocco precedente e a una “timestamp”, una marca temporale. Così, se le informazioni contenute in un blocco vengono modificate, in qualsiasi modo, anche minimamente, cambia completamente anche il relativo HASH che non sarebbe più corrispondente all’HASH originale riportato nel blocco successivo. La blockchain è quindi sicura “by design”.
Le informazioni registrate nei blocchi si chiamano transazioni o record e possono riferirsi al trasferimento di criptovalute o all’esecuzione di un contratto. Tali transazioni sono:
- di fatto immodificabili, cristallizzate in modo permanente poiché registrate con il loro HASH[1];
- visibili a chiunque.
Ogni blocco può quindi essere paragonato a una pagina immodificabile di un libro mastro, i.e. di un registro di contabilità che è condiviso, gestito e garantito dalla rete dei nodi.
In pratica, ogni nodo ha in tempo reale una versione/copia aggiornata della blockchain. Per questo motivo si dice che la blockchain è una sorta di libro contabile decentrato e distribuito. (DLT, Distributed Ledger Technology).
Tutti i dati registrati nei blocchi sono fedeli e, se qualche entità malevola altera l’integrità di qualche transazione su un nodo, tutti gli altri nodi, incrociandosi, individuano facilmente il nodo che ha la copia della blockchain contenente i record errati o modificati. È infatti molto agevole verificare che una copia della blockchain non è allineata con la copia di tutti gli altri nodi.
Un concetto preliminare: la funzione di hash
La funzione di HASH è una funzione crittografica che trasforma un input composto da una stringa/un messaggio di lunghezza arbitraria (i.e. di una qualsiasi lunghezza) in un output di lunghezza fissa. Tale output chiamato message digest o semplicemente digest è, quindi, un “riassunto” del messaggio iniziale o meglio un’impronta costituita da una sorta di “codice fiscale”, composto da una sequenza di lettere e numeri avente una lunghezza fissa e sempre uguale.
Le funzioni HASH più diffuse sono MD5 (Message Digest 5), e SHA 256 (Secure HASH Algorithm).
SHA 256, che è la funzione di HASH mediamente più usata, rilascia un message digest o impronta di 256 bit, rappresentati in una sequenza di 64 caratteri (numeri e lettere) con utilizzo del sistema esadecimale i.e. un sistema di linguaggio informatico con base 16: vi sono 16 cifre, dallo 0 al 9 e dalla “a” alla “f” (queste lettere corrispondono ai numeri compresi tra 10 e 15).
Come esempio, nella tabella seguente è riportata l’impronta HASH – SHA 256 – di una copia del GDPR in italiano, versione PDF, scaricata dal sito dell’Unione Europea e composta da 88 pagine e avente la dimensione di 999 Kilobyte.
Una funzione crittografica di HASH sicura deve avere alcune proprietà fondamentali.
Una prima proprietà è l’unidirezionalità. Una funzione di HASH sicura non può essere invertita poiché è progettata per essere unidirezionale (one-way). Vale a dire che, se da un lato è molto facile ed immediato calcolare il digest di un messaggio, dall’altro è arduo (i.e. quasi impossibile, poiché computazionalmente complicato) calcolare il messaggio iniziale partendo dal digest.
Si può solo eseguire una ricerca denominata “a forza bruta” provando tutti i messaggi possibili.
Un’altra proprietà è il determinismo e l’assenza di collisioni i.e. lo stesso messaggio deve produrre sempre e comunque lo stesso digest e non deve essere possibile che 2 messaggi differenti tra loro, seppur molto simili, generino lo stesso digest. Se ciò avvenisse si verificherebbe il fenomeno della c.d “collisione” e la funzione HASH non sarebbe più sicura.
Quindi, applicando una funzione HASH sicura, anche se l’elemento di differenza tra 2 messaggi è un solo carattere alfanumerico, le rispettive impronte HASH saranno completamente differenti (è il c.d. effetto valanga).
Un esempio è riportato nella tabella seguente, ove, all’interno di una frase, il cambio di una sola lettera, da maiuscola a minuscola, determina il radicale cambiamento dell’impronta HASH.
Pertanto, se due messaggi hanno la stessa impronta HASH, si può essere confidenti che siano identici.
Grazie a queste caratteristiche le funzioni di HASH sono ampiamente utilizzate in vari ambiti della sicurezza informatica, nelle firme digitali, per eseguire controlli di integrità di files, per verificare le password e nella blockchain.
Come funziona una Blockchain
Ogni persona può utilizzare la blockchain. Per farlo deve creare un wallet (portafoglio) che può essere utilizzato per eseguire o ricevere pagamenti in criptovalute. Per tal fine è necessario scaricare un’apposita App dallo Store e quindi selezionare il metodo di creazione.
Le App ed i software necessari sono agevolmente reperibili su internet.
Una volta aperto il wallet si entra in possesso di un indirizzo collegato ad una password e ad un QR CODE. Sono le credenziali della chiave privata che consente di eseguire transazioni sulla blockchain.
La chiave privata che deve essere conosciuta esclusivamente dal legittimo detentore è collegata ad una chiave pubblica che tutti possono e devono conoscere. In pratica è un sistema di crittografia asimmetrica a doppia chiave, pubblica e privata, come quello usato nella firma digitale.
Attenzione: il portafoglio contiene la chiave privata ma non contiene criptovalute che restano sempre all’interno della blockchain. Quindi se un’entità perde la password o il QR CODE non sarà più possibile entrare in possesso della criptovaluta di proprietà.
Se una persona vuole trasferire una quantità di una criptovaluta ad un’altra persona deve conoscere il suo indirizzo blockchain collegato alla di lui chiave privata (ha la stessa funzione dell’IBAN nell’esecuzione dei bonifici bancari). Per effettuare il trasferimento di criptovaluta occorrerà chiedere la registrazione della transazione in un blocco della blockchain, pagando una “transaction fee”, o “commissione di transazione” che è il costo del servizio che bisogna pagare, per l’utilizzo della potenza computazionale, ai nodi della blockchain che svolgono il ruolo di “MINER”.
Ma chi sono questi Miner (minatori)? Per capirlo, bisogna ritornare al concetto di “blocco”.
Si è detto che un blocco è uno “spazio digitale” che ha una capienza limitata e contiene:
- il numero del blocco;
- i dati delle transazioni degli utenti che emettono e ricevono pagamenti in criptovalute con impronta HASH;
- l’impronta HASH del blocco precedente;
- la marca temporale o Timestamp;
- il nonce.
Il nonce (number used once: numero utilizzato una sola volta) è un numero che uno dei nodi della blockchain deve indovinare, risolvendo un puzzle crittografico i.e. un problema matematico per la cui risoluzione occorre un’enorme potenza di calcolo.
Non è possibile quindi farlo con singoli PC, seppur potenti.
Il nodo che risolve il problema matematico e che quindi indovina il nonce, assume il ruolo di “MINER” (Minatore) e riceve come ricompensa, un’unità di criptovaluta (e.g. un Bitcoin o un Ether a seconda della blockchain) generando il blocco successivo. Il Miner, quindi, guadagna sia ricevendo la criptovaluta come ricompensa del lavoro svolto, sia percependo le citate “transaction fee”. A fronte di questi guadagni vi sono però costi molto elevati soprattutto per l’ambiente.
L’attività di mining infatti è ritenuta una delle attività più inquinanti poiché lo sviluppo della enorme potenza computazionale richiede l’impiego di tantissima energia elettrica. Per avere un’idea di quanto l’attività dei Miner impatti sull’ecosistema naturale, è sufficiente eseguire una ricerca di immagini su internet digitando “Mining Farm”.
Per dimostrare di aver risolto il puzzle crittografico il Miner deve presentare la c.d. Prova di Lavoro o Proof of Work alla rete di nodi, i quali verificano e convalidano velocemente la correttezza della soluzione.
Le impronte di HASH sui blocchi e la Proof of Work rendono di fatto la blockchain inattaccabile, poiché è stato calcolato che per poter assumere il controllo dell’intera infrastruttura, un eventuale attaccante dovrebbe prendere il controllo del 51% della potenza di hashing; si tratta di un’impresa che con le tecnologie attuali risulta quasi impossibile.
Le criptovalute minate (Bitcoin, Ether etc.) possono essere utilizzate nella blockchain o convertite in valuta tradizionale (c.d. FIAT) rivolgendosi a degli intermediari denominati Exchange che offrono servizi di conversione dietro pagamento di commissioni, sulla base del relativo tasso di cambio.
La storia della blockchain
La prima blockchain è stata costituita nel 2009 con la predisposizione del protocollo della criptovaluta BITCOIN dopo la pubblicazione del white paper a firma di un tale Satoshi Nakamoto pseudonimo di una persona o più persone rimaste tuttora sconosciute. Tale white paper dal titolo “Bitcoin: A Peer-to-Peer Electronic Cash System” dava puntuali indicazioni su come costruire un sistema di pagamento elettronico peer-to-peer che consentisse di emettere e ricevere pagamenti online immediati, senza passare per un’istituzione centralizzata.
Dopo Bitcoin nel 2015 è stata rilasciata un’altra blockchain chiamata Ethereum cha ha come criptovaluta nativa l’Ether. Ad oggi si contano nel mondo centinaia di progetti di sviluppo della tecnologia blockchain curati da organismi privati e pubblici.
Gli smart contract e gli NFT
Nella blockchain Ethereum le funzionalità sono state estese anche all’esecuzione degli smart contract, contratti intelligenti o contratti automatici.
Secondo la definizione dell’autore di Ethereum, Vitalik Buterin, “smart contract” sta ad indicare un software, un codice che può essere eseguito senza il controllo da parte di una persona. Le differenze sostanziali tra un contratto tradizionale e uno smart contract vanno individuate nel fatto che quest’ultimo consiste nell’esecuzione di un codice da parte di un computer.
Si tratta, quindi, di contratti digitali che restano archiviati su una blockchain e vengono eseguiti automaticamente, quando si realizzano termini e condizioni predeterminati secondo il paradigma “se/allora” (If/then).
Quindi, i nodi della blockchain oltre a gestire il registro delle transazioni eseguono anche gli smart contract.
Lo smart contract, una volta inserito nella blockchain vi rimane per sempre. Per attivarlo, i.e. per dargli esecuzione, è necessario pagare delle commissioni definite gas.
Per comprenderne il funzionamento si può far riferimento ad una nota polizza assicurativa venduta da una grande Compagnia di assicurazioni e basata su uno smart contract che, automaticamente, esegue rimborsi automatici agli assicurati, sulla loro carta di credito, quando sulla blockchain venga registrato un ritardo di un volo aereo superiore a 2 ore. (paradigma If/Then: se si verifica il ritardo, allora sarà emesso il rimborso).
Gli smart contract possono essere utilizzati anche per creare degli oggetti digitali chiamati “token” (gettoni) che attribuiscono alcuni diritti all’entità che li acquista e che hanno un valore all’interno di un contesto ben definito (e.g. nella blockchain o in un Metaverso).
L’Osservatorio Digital Innovation del Politecnico di Milano ha definito il token come “un’informazione digitale, registrata su un registro distribuito, univocamente associata a uno e un solo specifico utente del sistema e rappresentativa di una qualche forma di diritto: la proprietà di un asset, l’accesso a un servizio, la ricezione di un pagamento, e così via”.
La possibilità di “tokenizzare” asset, prodotti e servizi ha determinato la possibilità di ottenere token utilizzabili come criptovalute (e quindi fungibili) ed anche token non fungibili: i cc.dd. NFT: Non Fungible Token che rappresentano qualsiasi tipologia di asset, sia digitale che fisico e che consentono a chi li usa di esserne il vero proprietario.
Gli NFT possono essere negoziati in specifici marketplace ove incorporano valori molto elevati. Valga come esempio per tutti, la messa all’asta per 48 milioni di dollari, nello scorso mese di aprile, del NFT del “primo tweet”, il primo messaggio di twitter che, appena un anno prima, nel marzo 2021, era stato acquistato, la prima volta, dall’imprenditore iraniano Sina Estavi per l’equivalente in Ether di 2,9 milioni di dollari. E’ un’operazione commerciale che dà il senso e la misura di quanto rilevante sia diventata la blockchain e che non determina stupore se solo si pensa all’acquisto, nel 1994, da parte di Bill Gates, del manoscritto di Leonardo Da Vinci noto come Codice Leicester per 30,8 milioni di dollari.
L’uso della blockchain nel contesto della data protection
Una blockchain, per come è strutturata, probabilmente, non è la tecnologia più adatta per eseguire tutte le attività di trattamento previste dal GDPR.
Infatti l’immodificabilità e la persistenza delle informazioni registrate nei blocchi non sono evidentemente compatibili con l’esercizio dei diritti privacy volti alla rettifica e alla cancellazione (oblio) del dato personale.
Nonostante questi problemi, per consentire un uso responsabile della blockchain nel contesto della data protection, la CNIL, Autorità di Controllo Francese, ha pubblicato un parere che offre utili indicazioni a chi volesse far ricorso a questa particolare tecnologia per trattare dati personali.
Il primo problema affrontato dalla CNIL è quello attinente i ruoli privacy delle entità che a vario titolo utilizzano la blockchain.
In particolare, la CNIL ritiene che l’entità che gestisce un nodo riveste il ruolo di titolare del trattamento:
- quando sia una persona fisica e il trattamento dei dati personali che esegue è connesso ad un’attività professionale o commerciale (ossia quando l’attività non è strettamente personale);
- ovvero quando sia una persona giuridica che registra i dati personali in una blockchain.
Così, e.g., sono titolari del trattamento:
- un notaio che registra l’atto di proprietà del suo cliente sulla blockchain;
- una banca che inserisce i dati dei clienti su una blockchain, come parte della gestione dei dati dei clienti stessi.
Ma non tutti gli attori coinvolti in una blockchain sono titolari del trattamento. Infatti i Miner che si limitano a convalidare le transazioni inviate dai partecipanti e che non sono coinvolti in tali operazioni, non definiscono le finalità e i mezzi del trattamento e possono quindi rivestire il ruolo di responsabili del trattamento. Dovrebbero quindi stipulare un contratto, ai sensi dell’art. 28/3 GDPR con le entità partecipanti che agiscono in qualità di titolare del trattamento.
Inoltre, non sono titolari del trattamento le persone fisiche che inseriscono sulla blockchain dati personali, che però non si riferiscono ad un’attività professionale o commerciale: Infatti le attività personali o familiari sono escluse dall’ambito di applicazione materiale del GDPR. Così, e.g., una persona fisica che acquista o vende Bitcoin, da sola e per suo conto, non è un titolare del trattamento. Tuttavia, detta persona può essere considerata titolare del trattamento se tali operazioni sono effettuate nell’ambito di un’attività professionale o commerciale.
Il CNIL ha fornito anche alcuni chiarimenti circa la compatibilità dei diritti privacy con una blockchain.
Del tutto compatibile risulta il diritto all’informazione degli interessati: il titolare del trattamento dovrebbe fornire informazioni concise, facilmente accessibili e formulate in modo chiaro per l’interessato prima di inviare i dati personali ai Miner per la convalida.
Altrettanto compatibili risultano il diritto di accesso e il diritto alla portabilità. Per consentire l’esercizio dei diritti di rettifica e di cancellazione, invece, bisognerebbe trovare adeguate soluzioni tecniche.
Conclusioni
Come si è visto, l’uso responsabile della blockchain nel contesto della protezione dei dati è quindi possibile ma necessita di una riflessione a livello Europeo al fine di garantire il pieno rispetto del GDPR e con questo i diritti e le libertà fondamentali delle persone fisiche.
NOTE
Invero, per archiviare, gestire e trasferire tra i nodi i record contenuti nei blocchi si utilizza il c.d. Albero di Merkle in cui le foglie sono HASH di blocchi di informazioni. ↑