Close

26 luglio 2019

Blockchain con Hyperledger

blockchain

Blockchain

La blockchain è un Libro Mastro (Ledger) decentralizzato su reti peer to peer, che combina l’uso di crittografia e funzioni hash per garantire la sicurezza dei dati in esso salvati (solitamente nominati transazioni) e rappresentabile come una lista in continua crescita di blocchi collegati tra loro. Ad un blocco possono essere associate più transazioni e ogni blocco contiene un puntatore hash al blocco precedente e un timestamp.

sustainability-10-04422-g003

Esistono due tipi di blockchain:

  • permissionless blockchain;
  • permissioned blockchain.

L’esempio più famoso di permissionless ledger è rappresentato dalla Blockchain (notare la “B” maiuscola) bitcoin ed è chiamata anche “pubblica”, dato che chiunque può far parte della rete, non esiste nessun attore pre-selezionato che fa da validatore, ma chiunque nel sistema è un validatore e dispone, in qualità di partecipante, di tutte le copie immutabili di ogni operazione. Nessun utente della rete ha privilegi sugli altri, nessuno può controllare le informazioni che vengono memorizzate su di essa, modificarle o eliminarle e nessuno può alterare il protocollo che determina il funzionamento di questa tecnologia.

Nella permissioned blockchain esistono uno o più attori pre-selezionati che svolgono la funzione di validatore nel network. Se il validatore è un solo agente viene definita come Dlt (Distribuited ledger technology) privato, mentre se il validatore è più di uno viene definito come DLT consortium.

Esempi di questo tipo di blockchain sono:

  • Hyperledger Fabric e Hyperledger Sawtooth: Hyperledger è un progetto open source per lo sviluppo collaborativo di blockchain nato all’interno della Linux Foundation. Alla fine del 2015, l’Hyperledger Technical Steering Committee (comitato tecnico e direttivo di Hyperledger) ha deciso di incubare due progetti specifici: Hyperledger Fabric, promosso da IBM e Digital Asset, e Hyperledger Sawtooth, promosso da Intel. A questi se ne sono poi aggiunti altri e ad oggi se ne contano complessivamente 8 che, essendo sviluppati sotto l’ombrello Hyperledger, hanno la caratteristica di essere interoperabili tra loro.
  • Corda: è una piattaforma open source di Dlt dedicata all’ambito finanziario, capace di semplificare i processi relativi a transazioni commerciali permettendo alle varie istituzioni di operare direttamente attraverso l’uso di smart contract e garantendo così al tempo stesso i più elevati livelli di privacy e sicurezza.

 

Quando usare una blockchain?

La blockchain è adatta ad applicazioni business quando sono soddisfatte una o più di queste condizioni:

  • c’è la necessità di un database comune condiviso;
  • le parti coinvolte hanno interessi contrapposti oppure non c’è fiducia tra le parti;
  • più entità possono scrivere su un database;
  • per facilitare le interazioni tra due o più parti e c’è bisogno di un ente terzo fidato;
  • si sta usando la crittografia o è in progetto l’uso di crittografia per garantire la confidenzialità e l’integrità dei dati e per l’autenticazione;
  • ci sono regole uniformi tra i partecipanti al sistema.

 

Blockchain applicato alla supply chain

Rispetto ad altre soluzioni, la blockchain porterebbe molti vantaggi alla supply chain, tra cui:

  • immutabilità: si ha a che fare con una struttura dati in cui è solo possibile aggiungere gli stessi, ma non cambiarli e/o cancellarli;
  • sicurezza e ridondanza: i dati sono crittografati e decentralizzati, con copie consistenti e consolidate possedute da più parti;
  • minor tasso di errori: riduzione di errori dovuti all’inserimento manuale di dati, in particolare se combinato con IoT e altri processi automatizzati;
  • sicurezza delle transazioni: poichè il registro è immutabile, i tentativi di manomissione sono facilmente rilevabili;
  • tracciamento migliorato: il Ledger è facile da analizzare e restituisce risultati in modo veloce, rendendo possibile conoscere in qualsiasi momento lo stato di qualsiasi ordine o bene. Allo stesso tempo, qualsiasi errore, accidentale o causato di proposito, è facilmente rintracciabile;
  • fidelizzazione del cliente: la blockchain può consentire agli utenti di verificare la provenienza dei prodotti e dunque di sviluppare un rapporto di fiducia con i fornitori;
  • scalabilità: aggiungere un nodo, per esempio un fornitore, ad una blockchain esistente è un’operazione di costo minore rispetto alle soluzioni attualmente usate per integrare un nuovo soggetto nella filiera aziendale;
  • riduzione dei costi e aumento dell’efficienza: diminuisce la necessità di affidarsi a terze parti (oppure queste vengono abilitate a partecipare alla blockchain), le transazioni e i pagamenti risultano più veloci e molti passaggi (controlli, misurazioni ecc.) possono essere effettuati, memorizzati e resi disponibili a tutte le parti in causa in maniera automatica.

Tra le soluzioni sopra illustrate Hyperledger Fabric è la più adatta al caso d’uso preso in esame, consente un controllo preciso sul consenso e l’accesso limitato alle transazioni, il che si traduce in una migliore scalabilità delle prestazioni e privacy.

 

Hyperledger

Hyperledger Fabric presenta un’architettura modulare e permette una divisione dei ruoli tra i nodi dell’infrastruttura, l’esecuzione di Smart Contracts (“chaincode” in Fabric) e la possibilità di configurare il consenso ed i servizi di appartenenza (Membership Services). Una rete Fabric comprende:

  • Client, applicazione che permette di invocare transazioni; Invia le transazioni approvate dai peer ai nodi ordinatori
  • Nodi Ordinatori, (orderer) che assicurano la coerenza della blockchain e consegnano le transazioni approvate ai peer committing della rete.
  • Nodi Peer endorsing, ricevono richieste di transazioni dal client, validano le transazioni e simulano l’esecuzione chaincode e restituiscono al client il responso di endorsment
  • Nodi peer committing, ricevono le transazioni dall’ orderer e le scrivono nel ledger
  • Servizi Membership Service Provider (MSP), generalmente implementati come Autorità di Certificazione, gestiscono i certificati utilizzati per autenticare l’identità ed i ruoli dei membri.

trasnsction flow hyperledger fabric

Lo scopo di Fabric è di essere integrato in progetti in cui è richiesta una Distributed Ledger Technology (DLT), offre un SDK per Node.js, Java e Golang. Fabric supporta chaincode scritto in Golang, Javascript e Java, per questo risulta più flessibile rispetto ad altri framework che utilizzano linguaggi proprietari per la scrittura degli Smart Contracts. I membri di una rete Hyperledger Fabric possono essere ammessi attraverso un Membership Service Provider (MSP), il quale gestirà le identità dei partecipanti. Essendo i membri della rete tutti conosciuti, saranno superflui protocolli come il Proof-of-Work per garantire la sicurezza della rete e scoraggiare utenti non onesti. Hyperledger Fabric permette diverse personalizzazioni. Ad esempio i dati nel registro possono essere memorizzati in più formati, i meccanismi di consenso possono essere attivati o disattivati e sono supportati diversi Membership Service Provider. Fabric offre anche la possibilità di creare canali, consentendo a un gruppo di partecipanti di creare un registro separato per le loro transazioni. Questa è un’opzione particolarmente importante per le reti in cui alcuni partecipanti potrebbero essere concorrenti e non vogliono che ogni transazione eseguita sia visibile agli altri partecipanti. Se due partecipanti formano un canale, allora solamente loro avranno copie del registro di quel canale.

 

Domande/osservazioni/commenti a a.primavera |at| quidinfo.it

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *