Che cos’è Hyperledger Fabric?
La Linux Foundation ha fondato il progetto Hyperledger nel 2015 per far progredire le tecnologie blockchain tra i vari settori. Piuttosto che dichiarare un singolo standard blockchain, incoraggia un approccio collaborativo allo sviluppo di tecnologie blockchain attraverso un processo comunitario, con diritti di proprietà intellettuale che incoraggiano lo sviluppo aperto e l’adozione di standard chiave nel tempo.
Hyperledger Fabric è uno dei progetti blockchain all’interno di Hyperledger.Come altre tecnologie blockchain, ha un libro mastro, usa contratti intelligenti ed è un sistema con cui i partecipanti gestiscono le loro transazioni.
Ciò che distingue Hyperledger Fabric da altri sistemi blockchain è che è privato e autorizzato. Piuttosto che un sistema aperto senza permessi che permette a identità sconosciute di partecipare alla rete (richiedendo protocolli come la “prova del lavoro” per convalidare le transazioni e proteggere la rete), i membri di una rete Hyperledger Fabric si iscrivono attraverso un Membership Service Provider (MSP) di fiducia.
Hyperledger Fabric offre anche diverse opzioni collegabili. I dati del libro mastro possono essere archiviati in formati multipli, i meccanismi di consenso possono essere scambiati dentro e fuori, e sono supportati diversi MSP.
Hyperledger Fabric offre anche la possibilità di creare canali, permettendo a un gruppo di partecipanti di creare un libro mastro separato delle transazioni. Questa è un’opzione particolarmente importante per le reti in cui alcuni partecipanti potrebbero essere concorrenti e non vogliono che ogni transazione che fanno – un prezzo speciale che stanno offrendo ad alcuni partecipanti e non ad altri, per esempio – sia nota ad ogni partecipante. Se due partecipanti formano un canale, allora quei partecipanti – e nessun altro – hanno copie del libro mastro per quel canale.
Shared Ledger
Hyperledger Fabric ha un sottosistema libro mastro che comprende due componenti: il worldstate e il log delle transazioni. Ogni partecipante ha una copia del libro mastro per ogni rete Hyperledger Fabric a cui appartiene.
Il componente worldstate descrive lo stato del libro mastro in un dato momento. È il database del libro mastro. Il componente del registro delle transazioni registra tutte le transazioni che hanno portato al valore corrente dello stato del mondo; è la storia degli aggiornamenti dello stato del mondo. Il libro mastro, quindi, è una combinazione del database dello stato mondiale e della cronologia del registro delle transazioni.
Il libro mastro ha un archivio dati sostituibile per lo stato mondiale. Per impostazione predefinita, questo è un database LevelDB key-value store. Il registro delle transazioni non ha bisogno di essere sostituibile. Registra semplicemente i valori prima e dopo il database del libro mastro utilizzato dalla rete blockchain.
Contratti intelligenti
I contratti intelligenti di Hyperledger Fabric sono scritti in chaincode e sono invocati da un’applicazione esterna alla blockchain quando tale applicazione deve interagire con il libro mastro. Nella maggior parte dei casi, chaincode interagisce solo con il componente database del libro mastro, lo stato del mondo (interrogandolo, per esempio), e non con il registro delle transazioni.
Chaincode può essere implementato in diversi linguaggi di programmazione. Attualmente, Go, Node.js, e Java chaincode sono supportati.
Privacy
A seconda dei bisogni di una rete, i partecipanti in una rete Business-to-Business(B2B) potrebbero essere estremamente sensibili su quante informazioni condividono.Per altre reti, la privacy non sarà una preoccupazione primaria.
Hyperledger Fabric supporta le reti in cui la privacy (usando i canali) è un requisito operativo chiave così come le reti che sono relativamente aperte.
Consenso
Le transazioni devono essere scritte nel libro mastro nell’ordine in cui avvengono, anche se potrebbero essere tra diversi gruppi di partecipanti all’interno della rete. Perché questo accada, l’ordine delle transazioni deve essere stabilito e deve essere messo in atto un metodo per respingere le cattive transazioni che sono state inserite nel libro mastro per errore (o maliziosamente).
Questa è un’area molto studiata dell’informatica, e ci sono molti modi per raggiungerla, ognuno con diversi compromessi. Per esempio, PBFT (PracticalByzantine Fault Tolerance) può fornire un meccanismo per le repliche di file per comunicare tra loro e mantenere ogni copia coerente, anche in caso di corruzione. In alternativa, in Bitcoin, l’ordinamento avviene attraverso un processo chiamato mining in cui i computer in competizione gareggiano per risolvere un puzzle crittografico che definisce l’ordine su cui tutti i processi si basano successivamente.
Hyperledger Fabric è stato progettato per permettere agli starter della rete di scegliere un meccanismo di consenso che rappresenti al meglio le relazioni che esistono tra i partecipanti. Come per la privacy, c’è uno spettro di esigenze; dalle reti che sono altamente strutturate nelle loro relazioni a quelle che sono più peer-to-peer.