Qu’est-ce que Hyperledger Fabric?¶
La Linux Foundation a fondé le projet Hyperledger en 2015 pour faire avancer les technologies blockchain inter-industries. Plutôt que de déclarer une norme unique de blockchain, elle encourage une approche collaborative pour développer les technologies de blockchain via un processus communautaire, avec des droits de propriété intellectuelle qui encouragent le développement ouvert et l’adoption de normes clés en temps supplémentaire.
Hyperledger Fabric est l’un des projets blockchain au sein d’Hyperledger.Comme d’autres technologies blockchain, il dispose d’un grand livre, utilise des contrats intelligents, et est un système par lequel les participants gèrent leurs transactions.
Là où Hyperledger Fabric se distingue de certains autres systèmes blockchain, c’est qu’il est privé et autorisé. Plutôt qu’un système ouvert sans autorisation qui permet à des identités inconnues de participer au réseau (nécessitant des protocoles comme la « preuve de travail » pour valider les transactions et sécuriser le réseau), les membres d’un réseau Hyperledger Fabric s’inscrivent par l’intermédiaire d’un fournisseur de services aux membres (MSP) de confiance.
Hyperledger Fabric offre également plusieurs options enfichables. Les données du grand livre peuvent être stockées dans plusieurs formats, les mécanismes de consensus peuvent être échangés, et différents MSP sont pris en charge.
Hyperledger Fabric offre également la possibilité de créer des canaux, permettant à un groupe de participants de créer un grand livre de transactions distinct. Il s’agit d’une option particulièrement importante pour les réseaux où certains participants peuvent être des concurrents et ne pas vouloir que chaque transaction qu’ils effectuent – un prix spécial qu’ils offrent à certains participants et pas à d’autres, par exemple – soit connue de tous les participants. Si deux participants forment un canal, alors ces participants – et aucun autre – ont des copies du grand livre pour ce canal.
Le grand livre partagé
Hyperledger Fabric possède un sous-système de grand livre comprenant deux composants : l’état mondial et le journal des transactions. Chaque participant dispose d’une copie du ledger pour chaque réseau Hyperledger Fabric auquel il appartient.
Le composant world state décrit l’état du ledger à un moment donné. C’est la base de données du ledger. Le composant journal des transactions enregistre toutes les transactions qui ont abouti à la valeur actuelle de l’état du monde ; c’est l’historique des mises à jour de l’état du monde. Le ledger est donc une combinaison de la base de données de l’état du monde et de l’historique du journal des transactions.
Le ledger possède un magasin de données remplaçable pour l’état du monde. Par défaut, il s’agit d’une base de données LevelDB key-value store. Le journal des transactions n’a pas besoin d’être remplaçable. Il enregistre simplement les valeurs avant et après que la base de données du ledger soit utilisée par le réseau blockchain.
Contrats intelligents
Les contrats intelligents de Hyperledger Fabric sont écrits en chaincode et sont invoqués par une application externe à la blockchain lorsque cette application a besoin d’interagir avec le ledger. Dans la plupart des cas, chaincode n’interagit qu’avec le composant base de données du grand livre, l’état mondial (en l’interrogeant, par exemple), et pas avec le journal des transactions.
Chaincode peut être implémenté dans plusieurs langages de programmation. Actuellement, Go, Node.js et Java chaincode sont supportés.
Privacy
Selon les besoins d’un réseau, les participants à un réseau Business-to-Business(B2B) pourraient être extrêmement sensibles à la quantité d’informations qu’ils partagent.Pour d’autres réseaux, la vie privée ne sera pas une préoccupation majeure.
Hyperledger Fabric prend en charge les réseaux où la confidentialité (en utilisant des canaux) est une exigence opérationnelle clé ainsi que les réseaux qui sont comparativement ouverts.
Consensus
Les transactions doivent être écrites dans le grand livre dans l’ordre dans lequel elles se produisent,même si elles peuvent être entre différents ensembles de participants au sein de thenetwork. Pour cela, l’ordre des transactions doit être établi et une méthode pour rejeter les mauvaises transactions qui ont été insérées dans le grand livre par erreur (ou par malveillance) doit être mise en place.
C’est un domaine de l’informatique qui a fait l’objet de recherches approfondies, et il existe de nombreuses façons d’y parvenir, chacune avec des compromis différents. Par exemple, le PBFT (PracticalByzantine Fault Tolerance) peut fournir un mécanisme permettant aux répliques de fichiers de communiquer entre elles pour que chaque copie reste cohérente, même en cas de corruption. Par ailleurs, dans le cas du bitcoin, la mise en ordre s’effectue par le biais d’un processus appelé minage, dans lequel des ordinateurs concurrents s’affrontent pour résoudre une énigme cryptographique qui définit l’ordre sur lequel tous les processus s’appuient par la suite.
Hyperledger Fabric a été conçue pour permettre aux initiateurs de réseaux de choisir le mécanisme de consensus qui représente le mieux les relations qui existent entre les participants. Comme pour la protection de la vie privée, il existe un spectre de besoins ; des réseaux très structurés dans leurs relations à ceux qui sont davantage de pair à pair.