• Non ci sono risultati.

Blockchain pubbliche e permissioned

Nel documento federalismi.it Fascicolo n. 2/2021 (pagine 168-171)

Professore ordinario di Informatica Università degli Studi di Cagliari

4. Blockchain pubbliche e permissioned

Le blockchain sinora citate sono pubbliche, cioè aperte a chiunque voglia partecipare e inviare transazioni, e senza un'autorità centrale. Come esposto sopra, la blockchain pubblica più usata per gli SC è Ethereum, anche se negli ultimi anni sono state introdotte varie altre blockchain progettate per la gestione di SC, come Wawes, EOS, Qtum, Cardano e tante altre.

I vantaggi dell'uso di una blockchain pubblica sono che l’infrastruttura è immediatamente disponibile, ed essendo usata a livello mondiale ha un'autorevolezza indiscutibile. Uno svantaggio è il costo da pagare (in valuta digitale, ottenibile in cambio di Euro) per installarvi SC, registrare dati e inviare transazioni. Soprattutto, c’è un rischio di forte volatilità dei costi: ad esempio, il costo minimo per inviare una transazione Ethereum, che per tutto il 2019 è stato intorno ai 5-6 centesimi di Euro, è a settembre 2020 intorno agli 1-2 Euro, con un aumento di 20-40 volte. Altri svantaggi sono possibili problemi di scalabilità, poiché un'unica blockchain è usata a livello mondiale, e i tempi di risposta tipicamente elevati (almeno qualche secondo, ma di solito oltre i 10''). Le informazioni registrate sulla blockchain, dati e transazioni, sono sempre accessibile a tutti e non cancellabili, e questo può dare problemi con il reg. UE 2016/679 (GDPR), anche se di solito sulla blockchain non si registrano dati in chiaro, ma le loro impronte hash. Tipicamente, i sistemi che usano SC non memorizzano direttamente dati sulla blockchain, ma hanno associato un database o un DMS (Document Management System) che contiene e gestisce i dati massivi. Tali dati sono certificati tramite un'impronta hash, la quale è registrata nella blockchain, insieme al link informatico per reperire il dato stesso. In tal modo, la blockchain garantisce al dato l'inalterabilità (se questo fosse alterato, l'impronta hash nella blockchain non corrisponderebbe) e la data di esistenza (la data e ora della sua registrazione nella blockchain), senza violare il GDPR.

Si noti infine che, anche se la gestione complessiva di una blockchain pubblica (esecuzione e registrazione delle transazioni) è decentralizzata, gli specifici SC su di essa installati possono avere un indirizzo abilitato a eseguire azioni di controllo, che ovviamente devono essere predefinite quando si scrive il codice informatico dello SC. Con un meccanismo simile, uno SC può anche accettare transazioni solo da specifici indirizzi, realizzando quindi un controllo di chi può eseguire determinate azioni e chi no.

Una blockchain permissioned è una blockchain gestita da un certo numero di nodi computazionali e aperta solo a partecipanti che ne ottengano il permesso. Essa ha regole per inserire nuovi nodi e per l'accesso ai suoi servizi. In pratica, fornisce alcune delle proprietà della blockchain, ma è controllata da specifiche organizzazioni e non decentralizzata. Alcuni contestano l'utilità delle blockchain permissioned, sostenendo che un sistema informatico tradizionale, eventualmente dotato di un database facente uso di tecniche crittografiche per dare certezza di immutabilità ai dati, potrebbe fornire gli stessi servizi, con una maggiore efficienza.

Le blockchain permissioned si implementano usando software preso da blockchain pubbliche (di solito Ethereum, il cui codice informatico è a libero accesso), o con software open source creato per gestire registri distribuiti, quali Hyperledger, Corda, e altri. Ha senso utilizzare una blockchain permissioned quando il sistema di interesse coinvolge più organizzazioni, ma nessuna di queste, e nessuna organizzazione esterna, può prendersi carico della sua gestione. Ciò può avvenire perché nessuno vuole o può gestire il sistema, perché alcuni

partecipanti non vogliono dare la gestione a uno di essi, o per problemi di costo legati all'uso di una

blockchain pubblica o di un provider esterno.

Per essere credibile e sostenibile nel tempo, lo scrivente ritiene che la blockchain permissioned debba avere almeno 7-10 nodi indipendenti, in modo che sia improbabile che possa essere “sequestrata” da qualcuno dei gestori, o da amministratori informatici infedeli degli stessi. Si noti che gestire un nodo è molto semplice e poco costoso. La blockchain permissioned richiede uno o più amministratori, che gestiscano i nodi, i permessi e livelli di accesso al sistema, la creazione degli SC, il livello dei controlli di esecuzione sugli SC stessi. Essa può avere livelli di accesso graduabili e può mantenere la riservatezza dei dati, oltre che gestire la loro eventuale cancellazione in conformità al GDPR.

Una blockchain permissioned, per avere i vantaggi di una blockchain pubblica senza averne gli svantaggi, do-vrebbe avere le seguenti caratteristiche:

• preliminarmente, è necessario un contratto chiaro per determinare obblighi e diritti dei partecipanti, inclusi tempi e procedure per ritirarsi; procedure per la gestione dei nodi, dei permessi di accesso a vari livelli, e per l'aggiunta e la cancellazione di nuovi nodi;

• un sistema di gestione della blockchain open source, di provato buon funzionamento e diffuso, in modo da trovare facilmente competenze e programmatori;

• almeno alcuni nodi devono essere pubblicamente accessibili da Internet, per offrire i servizi della

blockchain, eventualmente previa autenticazione;

• i tempi di validazione delle transazioni devono essere rapidi (dell'ordine di 1-2'' o meno): ciò si ottiene usando algoritmi di consenso diversi dalla Proof of Work;

• l'identificatore hash dell'ultimo blocco validato sulla blockchain permissioned viene scritto perio-dicamente (ad es. ogni 24 ore) entro una blockchain pubblica: in tal modo, si rendono inalterabili tutte le transazioni effettuate, con la stessa forza della blockchain pubblica usata;

• uno o più nodi della blockchain permissioned fanno girare sulla stessa blockchain un explorer, programma che consente a chiunque (eventualmente previa autorizzazione) di esaminarne il contenuto, esattamente come avviene per le blockchain pubbliche: in tal modo il livello di trasparenza della nostra blockchain diviene uguale a quello di una blockchain pubblica.

Seguendo questi criteri, la blockchain permissioned avrebbe quasi lo stesso livello di affidabilità e trasparenza di una blockchain pubblica, senza averne i difetti relativi ai costi, alle scarse prestazioni, e a possibili problemi di privacy. Sarebbe un sistema di cui si può avere fiducia molto più che con un tradizionale sistema informatico, in cui trasparenza e immutabilità dei programmi e dei dati sono rimessi all'onestà dell'organizzazione che lo gestisce, e dei suoi sistemisti. Si noti che non solo il codice degli SC è

trasparente e accessibile, ma gli utenti hanno anche la garanzia della sua immutabilità. L'assenza di eventuali “trabocchetti” messi in tale codice può essere verificata da un esperto, e si può essere certi che non ne possano essere inseriti in un secondo tempo. Questa è una novità assoluta nel campo dell'informatica: nei sistemi tradizionali è quasi impossibile verificare il codice, ed essere certi che esso non venga alterato in un secondo momento.

Nel documento federalismi.it Fascicolo n. 2/2021 (pagine 168-171)

Documenti correlati