La Governance con Hyperledger Fabric : Un Male Necessario
Consigli su come gestire un network aziendale basato su una blockchain permissioned
Come abbiamo avuto modo di dire più volte negli articoli di questa serie dedicata ad Hyperledger Fabric, la sua blockchain è permissioned, il che significa che le parti che si uniscono al network sono autenticate e autorizzate a partecipare alla rete stessa.
L’obiettivo principale di Hyperledger è quello di creare un framework di livello enterprise, open source, il cui scopo è supportare i casi d’uso in ambito aziendale.
“Se si dispone di una grande rete blockchain e si desidera condividere i dati solo con determinate parti, è possibile creare un canale privato con solo quei partecipanti. È la cosa più distintiva di Fabric in questo momento . “
- Brian Behlendorf, direttore esecutivo di Hyperledger
Tutti quelli che sono coinvolti nella produzione di un bene non usano le stesse infrastrutture, è quindi più difficile seguire con chiarezza l’evoluzione di un prodotto.
Usando la blockchain possiamo creare una realtà condivisa fra soggetti che non si fidano l’uno dell’altro.
Con questo si intende che i nodi della rete non devono necessariamente conoscersi o fidarsi l’uno dell’altro, perché ognuno ha la possibilità di monitorare e convalidare la filiera.
Questa fiducia possiamo crearla con la blockchain , possiamo creare un database decentralizzato efficiente come una struttura centralizzata, senza altresì ricreare quell’autorità centrale.
Per i consumatori vuol dire avere più trasparenza. Mentre un oggetto reale viaggia, possiamo vederne il certificato digitale o il token muoversi lungo la blockchain , aggiungendo valore man mano che va avanti.
Nelle blockchain permissionless non è richiesta, per la gestione dei dati, alcuna autorità centrale o amministrazione , mentre nelle blockchain permissioned, come Hyperledger Fabric, che sono composte, come vedremo più avanti, da consorzi o community, è necessario definire una governance per l’autenticazione ed il controllo dei partecipanti alla bockchain.
Per definire la governance è opportuno porsi alcune domande, come ad esempio:
- Quanti partecipanti ci sono nel tuo sistema?
- Qual è la loro distribuzione geografica?
- Che tipo di requisiti di prestazione necessita il network?
- Qual’è la procedura per l’inserimento di nuovi partecipanti (on-boarding)?
- E quale procedura nel caso di uscita dal network?
La definizione delle regole, dei rischi e delle responsabilità di ciascuna parte nel proprio sistema blockchain è utile, se non indispensabile, in un ambiente decentralizzato.
Quindi in Hyperledger Fabric solo i partecipanti che sono stati approvati possono accedere alla rete.
Per gestire l’appartenenza e l’identità della rete, ci sono dei servizi chiamati Membership Service Provider (MSP) che gestiscono gli ID utente e autenticano tutti i partecipanti alla rete.
Una rete blockchain di Hyperledger Fabric può essere governata da uno o più di questi Membership Service Provider (MSP).
Questo fornisce la modularità delle operazioni e l’interoperabilità tra diversi standard e architetture di appartenenza.
Ogni membro del network conosce l’un l’altro e la loro identità. I canali forniscono invece la privacy e la riservatezza delle transazioni.
Ad esempio, se si scopre che un membro del network sta operando in modo non conforme o fraudolento, la sua iscrizione può essere revocata, senza compromettere il resto della rete.
Questa funzione è fondamentale, specialmente per le applicazioni aziendali, in cui i rapporti commerciali cambiano nel tempo.
E’ sostanzialmente un modello di business composto da svariati stakeholder, che nel contempo possono essere in competizione o anche in collaborazione fra loro. Quindi è possibile che in un contesto del genere si possano verificare condizioni di conflitto dovute ad interessi o punti di vista differenti fra le parti.
Avere una idea di come gestire una governance in questo contesto è importante per il successo del progetto, tanto quanto lo è l’infrastruttura tecnologica.
Decentralizzazione e governance
Durante la vita di un network di tipo enterprise basato su blockchain è necessario prendere molte decisioni.
Anche le reti permissionless devono fare i conti con decisioni importanti e difficili.
Pensiamo a bitcoin. All’inizio della sua storia le dimensioni del blocco erano di 1 MB, ma con il passare del tempo questa dimensione stava diventando un limite problematico. La community emise numerose proposte, ma raggiungere il consenso è stata una operazione ardua.
La discussione è iniziata nel 2015, ma si è dovuto aspettare fino a febbraio 2018 per una parziale soluzione denominata SegWit (Segregate Witness).
Consideriamo che i network aziendali hanno lo scopo di creare fiducia in un ambiente in cui non tutti i partecipanti si fidano pienamente l’uno dell’altro.
Essendo umani sappiamo fin dall’inizio che ci saranno conflitti e opinioni diverse, quindi abbiamo bisogno di un processo che coinvolga i decisori di ciascuna organizzazione. Deve esserci un accordo di base sul quale i partecipanti devono basare le loro relazioni.
Abbiamo bisogno di un modo per governare la rete — abbiamo bisogno di una governance.
La governance consiste nel fornire delle linee guida al processo decisionale e lo fa fornendo una chiara definizione dei ruoli e delle responsabilità, assicurando che ci siano processi concordati per raggiungere e comunicare le decisioni.
Abbiamo parlato di decisioni in modo generico, ma che tipo di decisioni devono essere gestite nel processo di governance?
Sicuramente determinare Ruoli e Permessi è fondamentale, e ne parleremo più avanti, ma tutto quello che riguarda il finanziamento del network, la roadmap delle nuove funzionalità, gli aggiornamenti del sistema e l’espansione della rete, sono altrettanto argomenti chiave che dovrebbero essere coperti da un processo di governance.
Alcuni modelli di business network
Ci possono essere modelli diversi di network fra questi:
- Consorzio
- Community
Consorzio
Un consorzio è un gruppo costituito da due o più organizzazioni con un obbiettivo di business comune.
Queste organizzazioni apparteranno alla stessa tipologia merceologica o comunque in relazione con essa.
La caratteristica chiave di un consorzio è l’aver sottoscritto un accordo legale che guiderà le attività e gli investimenti per raggiungere l’obbiettivo prefissato.
In questa tipologia ci possono essere membri con livelli diversi di appartenenza, come ad esempio i Fondatori, o membri che sono entrati successivamente e che all’interno della filiera hanno un importanza diversa ed anche il loro contributo economico può essere diverso e/o variabile.
Tutto questo a livello di governance può avere un impatto.
Community
La rete basata sulla community è, in sostanza, un consorzio più informale costituito da organizzazioni che sono affini ed insieme formano un ecosistema aziendale che mira a favorire la collaborazione tra diversi settori per creare nuove opportunità di business.
La potenza di questo modello deriva dalla sua struttura implicitamente libera all’interno della quale la migliore idea è quella che potenzialmente ha più possibilità di emergere. Questo è idealmente il miglior modello per supportare naturalmente il concetto di rete decentralizzata e di governance.
Il ruolo della governance in un network aziendale
Dopo aver esposto alcuni dei modelli possibili di business, possiamo vedere che il controllo di ciascun partecipante varierà in base a quel modello. Comprendendo correttamente il modello e gli interessi di ciascuna parte, possiamo creare un processo decisionale che abbia senso per tutti.
Quindi, mentre comprendiamo che la governance riguarda il processo per raggiungere una decisione, la domanda che ci poniamo è se ogni singola decisione aziendale, operativa e tecnica dovrebbe essere gestita e monitorata da un processo di governance.
Alcuni sostengono che dovrebbero essere trattati solo argomenti importanti all’interno di un processo di governance. Ma quali sono questi argomenti importanti?
Questo è il ruolo di un modello di governance: la definizione di ogni dominio decisionale ed assicurarsi che tutti ne comprendano i significati a livello di formalismi e dei singoli processi per ogni categoria di decisione.
Ad esempio : una correzione di bug in uno smart contract potrebbe non richiedere molta attenzione, ma un aggiornamento alla blockchain potrebbe richiedere un maggiore grado di concentrazione.
Indipendentemente dalla complessità del processo, un’altra considerazione che dovrà essere indirizzata sarà la centralizzazione contro il decentramento del processo decisionale.
La distribuzione del potere decisionale potrebbe rendere il processo equo, ridurre il rischio di indebito controllo e incoraggiare il libero pensiero, ma così facendo può creare ritardi nel raggiungimento di un consenso.
In alternativa il tentativo di centralizzare la governance probabilmente comprometterebbe la sua stessa esistenza ed i membri della community rifiuterebbero il controllo.
Cosa diversa se il nostro modello è un consorzio che per loro natura sono modelli organizzativi che tendono ad essere variabili e dipendono molto dal loro scopo ultimo.
Un’industria altamente regolamentata può richiedere un grado elevato di centralizzazione in modo tale da assicurare che tutte le parti aderiscano agli standard stabiliti.
Altresì, un altro tipo di consorzio potrebbe raggiungere una governance di tipo decentralizzata imponendo regole o adottando un meccanismo di consenso per il processo decisionale, sostanzialmente diverse dal precedente.
Esempio di una gestione di un processo di on boarding
Non tutte le decisioni devono essere vincolate da un processo formale, ma in genere farlo evita brutte sorprese lungo la strada.
Come sappiamo, una rete blockchain è pensata per essere completamente decentralizzata. Quindi, l’ingresso di nuovi partecipanti è una cosa normale ed è ciò che ci aspetteremmo di vedere in un network che funziona al meglio.
Tuttavia, poiché siamo sempre nell’ambito di network aziendali, quindi soggetti a regole e regolamenti, ci sono cose che devono essere stabilite in anticipo, in genere nel momento della creazione del network e l’on-boarding di nuovi partecipanti è uno di questi.
Per quanto riguarda l’accettazione di nuovi partecipanti al network è probabile che debba essere presente un canale dove vengono inserite le richieste, ed un gruppo dovrà effettuare delle valutazioni a riguardo, come ad esempio informare il candidato sui requisiti minimi di sicurezza per poter entrare nel network in modo che possa capire eventuali investimenti da sostenere per adeguarsi.
Attraverso il processo di on-boarding, un’organizzazione dovrà implementare la propria infrastruttura, integrare le transazioni che la riguardano nel proprio sistema aziendale ed effettuare tutte le fasi di test necessarie prima di iniziare la fase di produzione.
Durante la loro vita in rete, l’organo decisionale, che si è configurato al momento della costituzione del network, può stabilire che vengano effettuati alcuni audit su i partecipanti per dimostrare l’aderenza ai termini e alle condizioni.
Allo stesso livello del processo in ingresso di nuovi partecipanti, non va trascurato anche quello di una eventuale uscita degli stessi.
Al di là delle ragioni che determinano l’evento di uscita, dovranno essere adottate delle azioni ad esempio sulla proprietà dei dati, pertanto se non ci sono delle disposizioni precise si possono verificare situazioni di contrasto.
Aspetti economici
La rete non funzionerà da sola. Ci sono smart contract da sviluppare, infrastrutture da implementare, accordi legali da scrivere e così via.
Il modello economico che verrà adottato varierà ampiamente a seconda del modello di business scelto.
Un network guidato da uno o più fondatori, come ad esempio un Consorzio, potrebbe sostenere tutti i costi di finanziamento, ed a sua volta addebitare delle fee che non solo andranno a coprire i costi, ma potrebbero generare anche un profitto.
Invece una rete basata su una Community può scegliere che i partecipanti coprano in parti uguali i costi di mantenimento.
Regolamenti
Quest’area dipenderà in gran parte dall’industria e dalla geografia in cui si trova ad operare il network.
Un buon esempio è il regolamento generale sulla protezione dei dati (GDPR), che è recentemente è entrato in vigore.
Il GDPR è un regolamento proposto dalla Commissione europea per rafforzare le regole sulla privacy dei dati.
Secondo la nuova legge, gli utenti possono richiedere la cancellazione dei loro dati personali permanentemente da qualsiasi organizzazione.
Ovviamente una delle caratteristiche alla base della blockchain è la sua immutabilità, il che significa che i dati in essa memorizzati non possono essere cancellati.
Sappiamo che su questo spinoso argomento il dibattito nei paesi UE, e non solo, è all’ordine del giorno e che la soluzione più pratica è senz’altro l’adeguamento della legislazione alla tecnologia blockchain, piuttosto che il contrario.
In ogni caso per quanto riguarda Hyperledger Fabric dalla versione 1.2 che ha introdotto i canali privati è possibile, avendo codificato adeguatamente gli smart contract (o meglio chaincode come sono stati rinominati in Fabric) e settando dei flag all’interno di una console di back-end, rendere “non visibile e non disponibili” alcune informazioni presenti sulla blockchain,
Si tratta sicuramente di un work-around in attesa di una soluzione definitiva.
Struttura della Governance
Vediamo ora a grandi linee i pro ed i contro di una governance centralizzata verso una decentralizzata.
In generale possiamo pensare ad una netta distinzione fra i due modelli, in realtà non si tratta di bianco o nero, ma nelle applicazioni reali ci sono sfumature di grigio, dove alcune funzioni svolgono meglio il loro compito se centralizzate ed altre se decentralizzate.
Ancora una volta, molto di questo avrà a che fare con il modello di business che sta alla base del network.
Governance Centralizzata
In un modello centralizzato, le decisioni tendono a scorrere dall’alto verso il basso e solo se ci sono situazione irrisolte si può assistere ad un flusso contrario.
Questo crea una struttura dove c’è un processo ben definito per affrontare problemi e per mantenere la visione, ma che lascia poco spazio per cambiamenti nella struttura.
In questo modello, di solito vediamo tre livelli principali di governance:
- Governance strategica
- Governance operativa
- Governance tattica
Governance strategica
La governance strategica rappresenta il vertice della piramide decisionale. Questo livello di governance richiede la sponsorizzazione esecutiva da parte delle varie organizzazioni che compongono il network, e si deve assicurare che la visione e la strategia siano in linea con gli obiettivi del network.
La governance strategica si concentrerà su :
- Creare una visione aziendale comune
- Definire un chiaro mandato e una struttura di governance (guidata dagli stakeholder)
- Impostazione dell’ordine del giorno in merito alle priorità del network
- Garantire che gli obiettivi del network siano soddisfatti
- Sviluppo e evoluzione delle competenze del network
Governance Operativa
La governance operativa si concentra sulla conversione della visione in un programma con precise milestones che soddisfano i requisiti del network.
Questo normalmente coinvolgerà più figure come gli Excutive, IT Architect, consulenti legali e così via.
Quindi l’attenzione sarà concentrata su :
- Definire la proprietà
- Sviluppare e mantenere standard, requisiti di privacy e regolamentazione
- Creare un approccio comune per i servizi e gli smart contract (chaincode)
- Gestione di un approccio comune per la definizione dei requisiti aziendali e tecnici
- Infrastruttura tecnologica comune
Governance Tattica
La governance tattica si concentra sulle attività quotidiane incentrate sul funzionamento della rete.
A questo livello, l’attenzione si concentrerà su aspetti intorno alla progettazione, costruzione e funzionamento della rete.
Comprenderà vari soggetti interessati da team aziendali, legali e tecnici.
Le attività includeranno elementi come i seguenti:
- Far rispettare gli standard
- Verifica del codice degli smart contract
- Pianificazione delle fasi di deployment degli smart contract
- Organizzare l’ingresso di nuovi partecipanti nel network
- Audit di sicurezza
- Reporting
Governance Decentralizzata
Questo tipo di governance è un modo per portare trasparenza e correttezza al processo decisionale.
Ora teniamo presente che ogni organizzazione ha comunque la propria struttura interna di governance (i tre livelli di cui sopra) e che tali organi di governo devono giungere ad un accordo.
In una governance decentralizzata sono mantenuti gli stessi livelli di governance (strategica, operativa e tattica) esattamente come in un network centralizzato, ma tutto sarà fatto in un modello aperto in cui tutti gli argomenti sono discussi all’interno di eventi comunitari.
In tale modello, la documentazione delle decisioni è ancora più importante per assicurare il giusto livello di trasparenza. Senza un controllo pubblico è praticamente impossibile sapere se il processo decisionale è stato equo.
Va notato che mentre il modello decentralizzato potrebbe essere più leggero/agile ciò non significa che il tutto è più facile.
In effetti, la governance decentralizzata è più strettamente allineata alla natura stessa della blockchain, ma altresì introduce alcune sfide interessanti.
Ad esempio, poiché non esiste un organo centrale che controlla la decisione strategica, come può l’intero network rispettare il raggiungimento dell’obiettivo comune?
Un tale modello funzionerà bene se gli obiettivi aziendali sono ben allineati, quindi è importante porre attenzione alla comunicazione fra tutte le parti interessate, questo evita che si generino tensioni, dispute ed inutili ritardi.
Conclusione
In un certo senso, la governance è il lato umano di una rete aziendale.
Si tratta di come le persone si incontrano e strutturano il processo decisionale per garantire che tutte le parti interessate siano opportunamente consultate e di conseguenza abbiano un ruolo nelle decisioni.
La governance deve coprire un ampio spettro di argomenti.
I tecnologi potrebbero essere meno entusiasti di questo argomento rispetto ad altri, ma avere una visione di base di ciò che comporta è utile per capire l’ambiente di lavoro nel suo complesso.
Usando questi modelli, abbiamo esaminato come possono derivare strutture che soddisfano le esigenze aziendali affrontando i processi aziendali chiave.
Abbiamo visto come le organizzazioni hanno bisogno di considerare l’approccio di un modello di governance centralizzato piuttosto che decentralizzato.
E’ necessario che la governance supporti le soluzioni IT, ma a loro volta, le soluzioni IT devono supportare il processo di governance.
Un ultimo punto da tenere a mente è che i modelli di business possono essere fluidi.
Un’iniziativa potrebbe nascere come una rete guidata da un fondatore, per poi evolvere in un consorzio o in una community.
Questo è importante da notare, perché abbiamo esaminato ogni modello singolarmente, ma la realtà è che sono destinati ad evolversi nel tempo, ed in ogni caso devono sempre rimanere allineati alla visione (quindi alla generazione di valore) che ha portato alla nascita del network stesso.
Block#3 delivered.
Credits:
- Corso EdX: Blockchain for Business — An Introduction to Hyperledger Technologies — Linux Foundation
- Hands-On Blockchain with Hyperledger — Gaur, Desrosiers, Ramakrishna, Baset, O’Dowd