Blockchain pubbliche e blockchain private

Affrontiamo in questo post il tanto dibattuto e variegato argomento che riguarda le differenze tra blockchain pubbliche e blockchain private.

Premetto che l’argomento è ‘spinoso’, vi basterà fare un po’ di ricerche in rete e troverete di tutto e di più, con accaniti sostenitori delle blockchain pubbliche ed altrettanti convinti sostenitori di quelle private.

Prima però di entrare nel dettaglio è bene chiarire i contorni e gli ambiti di questa diatriba, in modo da consentirvi, se già non siete formati ed informati su questi argomenti, di avere gli elementi basilari per permettervi poi di avere un’opinione in proposito.

Cercherò quindi di essere il più schematico possibile per rendere la cosa più lineare e di facile comprensione (so già che è un proposito difficilmente rispettabile).

Partiamo con un po’ di storia e di evoluzione dei concetti che hanno poi portato alla creazione della tecnologia blockchain.

All’inizio erano i ledger (registri) che nacquero, come è naturale immaginare, centralizzati in cui tutto è raccolto e gestito da un’unica entità/organizzazione che diventa quindi il ‘custode’ ed unico responsabile del registro, dovrò quindi porre la mia fiducia su questa organizzazione (immaginiamo una banca) e sul fatto che gestisca correttamente tutte le informazioni del registro.

Successivamente sono arrivati i ‘decentralized ledeger’ (registri decentralizzati) che in pratica replicavano la struttura centralizzata in tanti nodi più piccoli che comunque sono sempre generalmente gestiti ed organizzati da una entità/organizzazione centrale, questa soluzione aumenta il grado di resilienza e sicurezza (intesa come maggiore difficoltà di perdere il registro) ma non cambia sostanzialmente nulla dal punto di vista della mia fiducia verso l’organizzazione centrale (immaginiamo, per esempio,un consorzio od un gruppo di banche)

Infine sono arrivati i ‘distributed ledger’ (registri distribuiti) e qui le cose hanno iniziato a cambiare (e complicarsi) in modo importante. Infatti i distributed ledger hanno eliminato l’esigenza di un elemento centrale responsabile del funzionamento e dell’aggiornamento del registro.

Ma come è possibile garantire che il registro sia sempre correttamente aggiornato? Di chi mi devo fidare in questo caso?

E’ proprio quest’ultima domanda (di chi fidarsi?) che fa emergere la caratteristica più dirompente delle DLT (Distributed Ledger Tecnoligies) e della blockchain in particolare (che è un sottoinsieme della categoria DLT)

La risposta alla domanda di chi fidarsi è: di nessuno!

Infatti con i le DTL non esiste più nessun centro a cui riferirsi e le regole per gestire e mantenere il registro distribuito (la famosa governance) vengono definite introducendo il concetto di ‘consenso’.

Il concetto di consenso non è semplice da spiegare, e nel tempo sono nate tante varianti di consenso, detto in modo molto semplicistico è una sorta di ‘quorum’ che bisogna raggiungere tra tutti i partecipanti al rete (quindi da tutti i nodi distribuiti del network) che determina il fatto che una modifica al registro è accettata o meno.

Ma arriviamo finalmente alla blockchain che, come abbiamo detto, è una categoria specifica delle DLT; quali sono le peculiarità della blockchain che le differenziano dalle altre DLT?

E qui cominciano le scuole di pensiero, che poi ci riportano all’argomento di questo post, perché, in funzione di quello che si fa rientrare nella definizione di blockchain, la distinzione tra permissionless, permissioned, pubblica e privata assume sfumature e contorni diversi.

Una blockchain, come dice il nome, porta in dote 2 concetti:

· Il concetto di blocco: cioè un insieme di transazioni accorpate in un unico blocco; già questo è un elemento differenziante dalle DLT che inizialmente trattavano le singole transazioni;

· Il concetto di catena: cioè i blocchi sono legati l’uno all’altro in modo ‘indissolubile’ (il blocco che viene aggiunto alla fine della catena ha al suo interno il valore hash del blocco che lo precede) così che la modifica di un blocco che si volesse fare in un certo punto della catena costringe anche a modificare tutti i blocchi successivi.

Questi due concetti messi insieme portano quindi all’immutabilità del dato una volta scritto nella blockchain, e tanto più ‘in alto’ sta il blocco nella sequenza della catena tanto più sarà difficile cambiare una transazione scritta all’interno di quel blocco.

La sostanziale differenza quindi tra le blockchain (pubbliche, private, permissionless e permissioned) sta proprio nell’aggettivo che segue la parola blockchain.

Uno schema per chiarire meglio:

Ora è evidente che in funzione di quello che si deve realizzare un tipo di blockchain è più indicata rispetto ad un’altra.

Il caso più famoso di utilizzo di blackchain pubbliche è per la creazione e gestione delle crypto valute (Bitcoin in primis) e per questa tipologia di necessità è sicuramente imprescindibile l’utilizzo di una blockchain pubblica.

In altri frangenti invece, tipicamente in situazioni di tipo enterprise o meglio ancora consorzi di più aziende, risulta più indicato l’utilizzo di blockchain di tipo privato dove il numero dei partecipanti al network è un numero inferiore rispetto alle blockchain pubbliche e magari non è detto che tutti i nodi che partecipano al network debbano avere gli stessi ruoli e le stesse possibilità di lettura/scrittura delle transazioni nei blocchi.

Chiaramente più il numero dei nodi che compone una blockchain privata è alto e variegato nelle componenti (cioè attori diversi con interessi diversi) e maggiore è la garanzia del rispetto della regola del consenso.

Dallo schema precedente si evince (rettangolo in alto a destra vuoto) che non può esistere una blockchain pubblica (aperta) permissioned (con controllo centralizzato).

In verità questo non è completamente esatto, c’è la percezione diffusa che una blockchain pubblica come Ethereum non possa essere usata per rispondere alle esigenze di uno scenario in cui i permessi debbano essere gestiti. La verità è che invece questo è possibile, solo che non ci sono gli strumenti già pronti all’uso (come invece esistono nelle blockchain private), e bisogna quindi implementare con le proprie capacità e a proprie spese questo modello autorizzativo (ed il relativo software), in pratica devi implementare una sorta di gestione dell’identità.

Quindi uno schema più completo potrebbe essere questo (con alcuni casi d’uso indicati)

Quindi l’elemento discriminante tra una blockchain permissioned ed una blockchain permissionless è che nel primo caso l’utilizzatore è anonimo, mentre nel secondo deve essere ben definito ed individuabile.

Blockchain pubbliche (Bitocin, Ethereum etc..) fanno dell’anonimato il loro punto di forza quindi non è pensabile di poter utilizzare queste blockchain “as is” in un contesto dove invece è fondamentale poter identificare esattamente ogni partecipante.

Parlando quindi di blockchain private emerge la necessità di poter controllare chi può scrivere nella blockchain e chi può leggere; il primo punto da smarcare è dunque l’identificazione del nodo, senza la quale, è impossibile garantire l’applicazione delle regole (governance) di lettura/scrittura.

Per questo le blockchain private vengo fornite con tutta una serie di tools per la gestione dell’identità e dei ruoli e permessi, tutto deve iniziare dall’identificazione di un utente ed in base all’identificazione vengo determinate le regole ed i permessi per l’utente.

Nelle blockchain pubbliche, non conoscendo l’identità dell’utente, dobbiamo ricorrere ad incentivi di tipo economico ed alle teorie dei giochi per garantire che tutti rispettino le regole della blockchain. Viene quindi utilizzato il meccanismo del consenso, attraverso il quale i partecipanti vengono remunerati, ed attraverso il quale (con i costi o con il lavoro) si disincentiva l’utilizzo fraudolento della blockchain.

In una blockchain privata invece abbiamo visto che conosciamo perfettamente l’identità dell’utente.

Quindi in uno scenario di tipo aziendale (supply chain per esempio) possiamo derogare dai meccanismi del consenso e della teoria dei giochi in quanto il fatto di essere esattamente identificati è già di per se un disincentivo al non rispettare le regole della governance (l’utilizzatore fraudolento sarà infatti facilmente individuabile e potrà subire le conseguenze del suo operato).

Riassumendo blockchain pubbliche e private hanno una struttura diversa che risponde ad esigenze diverse, contrariamente a quanto si crede non competono per lo stesso tipo di mercato in quanto offrono soluzioni diverse.

Le Blockchain Private si distinguono per :

· Gestione dell’identità, Sicurezza (identificazione dei partecipanti)

· Consenso più efficiente (ci sono meno nodi)

· Maggior rispetto della compliance

· Privacy

· Scalabilità/performance

· Possono essere open sourced o sviluppate privatamente, le più famose/diffuse sono Hyperledger, R3 Corda, Quorum

· Le transazioni sono processate da nodi selezionati

Le blockchain Pubbliche si distinguono per:

· Anonimato

· Chiunque può parteciparvi in lettura e scrittura

· Maggiore distribuzione della blockchain

· Immutabilità (più garantita rispetto alle private attraverso il consenso)

· Sono open sourced, le più famose sono Bitcoin ed Ethereum (ma ce sono tantissime altre)

Chiaramente la quadratura del cerchio sarebbe poter unire i pregi di entrambe le tipologie di blockchain e, sulla falsa riga di quanto già accaduto in altri ambiti (tipo servizi cloud e auto elettriche), far emergere il modello vincente ibrido.

Infatti già ci sono stati esperimenti e tentativi (anche qualcosa di più di tentativi) per far affermare il concetto di blockchain ibrida:

https://hackernoon.com/hybrid-blockchain-the-best-of-both-chains-78518507449a

Block#2 delivered.

Block#1 link