Possiamo considerare IOTA la soluzione ad ogni problema e lo strumento ideale per realizzare applicazioni industriali? In parte sì ma in parte no.
Si, perché IOTA permette certamente di realizzare tutte quelle applicazioni che hanno richiesto di utilizzare blockchain private. Realizzate su IOTA sarebbero sicure pur avendo dei costi operativi paragonabili se non inferiori a quelli di una blockchain privata.
IOTA invece non fornisce supporto nativo ad applicazioni che richiedono lo scambio di informazioni affidabili tra soggetti terzi. In realtà questo limite non è specifico di IOTA ma tipico dei registri distribuiti.
Affinché un registro distribuito sia funzionale a gestire dei capitali è necessario tutelare l’identità degli utenti. Alcuni pensano che ciò sia voluto per dare agli utenti della blockchain uno strumento per sottrarsi alle regolamentazioni in materia di finanza pubblica e nascondere il possesso di capitali.
Non è così. Il punto è che in un qualsiasi registro o si rende privato lo storico delle transazioni o, se lo storico è pubblico come nel caso della blockchain, si devono rendere anonimi i proprietari dei conti.
Lo storico di un conto bancario, ad esempio, è riservato e quindi il suo codice identificativo (IBAN) e l’identità dell’intestatario del conto possono essere pubblicati senza particolari rischi.
Dato che la blockchain per funzionare deve invece dare evidenza pubblica delle transazioni occorse, allora è necessario rendere anonimo la relazione tra address e titolari del conto. Se entrambe le informazioni fossero pubbliche la blockchain non servirebbe a nulla perché renderebbe pericoloso usarla per conservare dei capitali esponendo il proprietario a ricatti e malversazioni.
Questo purtroppo è vero anche se si usa il registro per conservare dati e quindi valutare la qualità di un dato diventa complicato perché il sistema non fornisce strumenti per accertare l’identità di chi li ha pubblicati.
Quindi, sfatando alcuni miti, possiamo affermare che:
- Un registro distribuito non certifica l’identità di chi vi inserisce dati. Si limita a conservarli e notarizzare la data di inserimento nel registro.
- Un registro distribuito non può garantire la veridicità dei dati immessi.
- Un registro non è un database, quindi non fornisce strumenti per mettere in relazione dati che contiene.
Identità decentralizzata
Esiste quindi un modo per aggiungere alle funzionalità fornite da un registro distribuito efficiente come IOTA, strumenti utili per creare applicazioni industriai decentralizzate?
La risposta è si ed è fornita da un’altra organizzazione no profit, il Worldwide Web Consortium, o W3C.
Si tratta di uno standard per la creazione di un identità basato sul registro distribuito chiamato DID (o Decentralized Identifier).
Lo standard DID si pone come alternativa funzionalmente equivalente allo standard attualmente in uso per la realizzazione di servizi come la firma digitale e lo SPID, noto come Public Key Infrastructure o PKI.
Nel sistema PKI un certificato contenente una chiave pubblica generata da un utente viene reso accessibile da service provider privati (Poste, Infocert, Telecom Italia, Aruba, ecc.). La validazione di una firma prodotta dall’utente con la chiave privata richiede che il verificatore acceda al service provider e richieda il certificato dell’utente.
E’ facile notare un problema di privacy: il service provider è interpellato ogni qual volta l’utente firma qualcosa o, nel caso di SPID, si collega ad un sito e ottiene informazioni che possono essere usate per profilare l’utente.
Lo standard DID risolve questo problema sostituendo il repository gestito dai service provider privati con un registro distribuito. Il verificatore di una firma di un utente può ottenere dalla rete le informazioni necessarie per validarla senza bisogno identificarsi con una terza parte. I dati equivalenti al certificato PKI sono memorizzati in un messaggio e questo può essere recuperato da qualsiasi nodo della rete, incluso uno attivato dal validatore stesso che quindi è totalmente autonomo.
In ogni caso la richiesta di un messaggio a un nodo non permette al nodo di ottenere informazioni utili alla profilazione dell’utente (ad esempio sito a cui si sta accedendo), perché il richiedente (il sistema di login al sito) non deve dichiarare la propria identità come invece avviene con SPID.
IOTA è il registro ideale per conservare le informazioni necessarie per validare l’identità di un utente, informazioni che nello standard DID sono conservare in formato XML. Questo oggetto viene chiamato DID Document e a differenza del semplice certificato PKI può contenere molteplici informazioni relative all’utente che lo ha creato.
Con questo standard è possibile firmare dati e quindi dimostrare di essere gli autori di un dato inserito nel registro.
Il sistema è così versatile che è possibile assegnare l’identità anche ad oggetti non dotati di capacità computazionale o ad entità logiche come un’organizzazione o un’azienda. In questi casi sarà il “controllore” dell’identità a interagire con un verificatore per certificare l’identità dell’oggetto/entità da lui controllato.
Ovviamente le informazioni contenute nel DID Document devono essere “non sensibili” perché sono pubblicamente reperibili dalla rete, quindi sarebbero incompatibili con le normative sulla privacy (GDPR).
Come è possibile quindi associare un DID a un’identità reale? Senza questo legame l’autore di un dato resta comunque anonimo.
Lo standard DID fornisce una soluzione a questo problema permettendo a una terza parte (Issuer) di assegnare delle credenziali verificabili (VC) a un soggetto dotato di identità decentralizzata (Holder).
Le credenziali sono fornite come oggetto XML e restano private sotto il controllo del destinatario. Saranno fornite a richiesta a un terzo per dimostrare la propria identità o comunque ciò che le credenziali fornite dall’issuer certificano. Per esempio una VC può certificare un titolo di studio, la residenza, il legittimo possesso di un bene, ecc. ecc.
Il verificatore delle credenziali troverà nel documento XML l’identità dell’issuer e potrà verificare che abbia effettivamente firmato l’oggetto XML. L’Holder potrà dimostrare di essere chi si suppone che sia fornendo delle credenziali rilasciate dall’Issuer.
Ad esempio una banca può rilasciare una credenziale che certifica che un soggetto è suo cliente. Il verificatore troverà nella credenziale il DID della banca e potrà ottenere da lei le credenziali rilasciate dalla Banca Centrale che dimostrano che è effettivamente una Banca licenziata.
IOTA fornisce un kit di sviluppo per utilizzare in modo semplificato gli strumenti definiti dallo standard W3C DID ed essendo possibile pubblicare dati in modo molto economico è la rete ideale per creare applicazioni in cui l’identità delle fonti dei dati è certificata.
Per saperne di più su IOTA,
visita il nostro Centro di Competenza IOTA