Wat is Hyperledger Fabric?¶
De Linux Foundation heeft in 2015 het Hyperledger-project opgericht om blockchain-technologieën uit verschillende industrieën te bevorderen. In plaats van een enkele blockchain-standaard uit te roepen, moedigt het een gezamenlijke aanpak aan voor het ontwikkelen van blockchain-technologieën via een community-proces, met intellectuele eigendomsrechten die open ontwikkeling en de goedkeuring van belangrijke standaarden overuren aanmoedigen.
Hyperledger Fabric is een van de blockchainprojecten binnen Hyperledger.Net als andere blockchaintechnologieën heeft het een grootboek, maakt het gebruik van slimme contracten en is het een systeem waarmee deelnemers hun transacties beheren.
Waar Hyperledger Fabric breekt met sommige andere blockchainsystemen is dat het privaat en geautoriseerd is. In plaats van een open toestemmingsloos systeem dat onbekende identiteiten toestaat om deel te nemen aan het netwerk (waarbij protocollen zoals “proof of work” nodig zijn om transacties te valideren en het netwerk te beveiligen), schrijven de leden van een Hyperledger Fabric-netwerk zich in via een vertrouwde Membership Service Provider (MSP).
Hyperledger Fabric biedt ook verschillende pluggable opties. Ledger data kan worden opgeslagen in meerdere formaten, consensus mechanismen kunnen worden in- en uitgewisseld, en verschillende MSP’s worden ondersteund.
Hyperledger Fabric biedt ook de mogelijkheid om kanalen te creëren, waardoor een groep van deelnemers een apart grootboek van transacties kan creëren. Dit is een bijzonder belangrijke optie voor netwerken waar sommige deelnemers concurrenten kunnen zijn en niet elke transactie die ze maken – een speciale prijs die ze aanbieden aan sommige deelnemers en niet aan anderen, bijvoorbeeld – bekend willen maken bij elke deelnemer. Als twee deelnemers een kanaal vormen, dan hebben die deelnemers – en geen anderen – kopieën van het grootboek voor dat kanaal.
Gedeeld grootboek
Hyperledger Fabric heeft een grootboeksubsysteem dat uit twee componenten bestaat: de wereldstaat en het transactielogboek. Elke deelnemer heeft een kopie van het grootboek voor elk Hyperledger Fabric-netwerk waartoe hij behoort.
De wereldstatuscomponent beschrijft de toestand van het grootboek op een bepaald moment in de tijd. Het is de database van het grootboek. De transactie log component registreert alle transacties die hebben geleid tot de huidige waarde van de wereld staat; het is de update geschiedenis voor de wereld staat. Het grootboek is dus een combinatie van de wereldtoestand database en het transactielogboek geschiedenis.
Het grootboek heeft een vervangbare data opslag voor de wereldtoestand. Standaard is dit een LevelDB key-value store database. Het transactielogboek hoeft niet vervangbaar te zijn. Het registreert gewoon de voor en na waarden van het grootboek database wordt gebruikt door de blockchain netwerk.
Smart Contracts
Hyperledger Fabric smart contracts zijn geschreven in chaincode en worden aangeroepen door een applicatie buiten de blockchain wanneer die toepassing moet interageren met het grootboek. In de meeste gevallen heeft chaincode alleen interactie met de databasecomponent van het grootboek, de toestand van de wereld (bijvoorbeeld door deze te bevragen), en niet met het transactielogboek.
Chaincode kan in verschillende programmeertalen worden geïmplementeerd. Momenteel worden Go, Node.js, en Java chaincode ondersteund.
Privacy
Afhankelijk van de behoeften van een netwerk, kunnen deelnemers aan een Business-to-Business (B2B) netwerk extreem gevoelig zijn over hoeveel informatie ze delen.Voor andere netwerken zal privacy geen topprioriteit zijn.
Hyperledger Fabric ondersteunt netwerken waar privacy (met behulp van kanalen) een belangrijke operationele vereiste is, evenals netwerken die relatief open zijn.
Consensus
Transacties moeten in het grootboek worden geschreven in de volgorde waarin ze plaatsvinden, ook al kunnen ze tussen verschillende sets van deelnemers binnen het netwerk zijn. Daartoe moet de volgorde van de transacties worden vastgesteld en moet een methode worden ingevoerd voor het verwerpen van slechte transacties die per vergissing (of kwaadwillig) in het grootboek zijn ingevoerd.
Dit is een grondig onderzocht gebied van de computerwetenschap, en er zijn vele manieren om dit te bereiken, elk met verschillende afwegingen. Zo kan PBFT (Practical Byzantine Fault Tolerance) een mechanisme bieden waarmee bestandsreplica’s met elkaar kunnen communiceren om elke kopie consistent te houden, zelfs in geval van corruptie. Bij Bitcoin gebeurt de ordening via een proces, mining genaamd, waarbij concurrerende computers een race houden om een cryptografische puzzel op te lossen die de volgorde bepaalt waarop alle processen vervolgens voortbouwen.
Hyperledger Fabric is ontworpen om netwerkstarters een consensusmechanisme te laten kiezen dat de relaties tussen de deelnemers het best weergeeft. Zoals met privacy, is er een spectrum van behoeften; van netwerken die zeer gestructureerd zijn in hun relaties tot die die meer peer-to-peer zijn.