Mi a Hyperledger Fabric?¶
A Linux Foundation 2015-ben alapította a Hyperledger projektet, hogy előmozdítsa az iparágközi blokklánc technológiákat. Ahelyett, hogy egyetlen blokklánc-szabványt hirdetne ki, inkább a blokklánc-technológiák fejlesztésének közösségi folyamaton keresztüli, együttműködésen alapuló megközelítését ösztönzi, olyan szellemi tulajdonjogokkal, amelyek nyílt fejlesztést és a kulcsfontosságú szabványok nyitva tartását ösztönzik.
A Hyperledger Fabric a Hyperledgeren belüli egyik blokkláncprojekt.
A többi blokklánc technológiához hasonlóan rendelkezik főkönyvvel, intelligens szerződéseket használ,és egy olyan rendszer, amellyel a résztvevők kezelik tranzakcióikat.
A Hyperledger Fabric abban különbözik néhány más blokkláncrendszertől, hogy privát és engedélyköteles. A nyílt, engedély nélküli rendszer helyett, amely lehetővé teszi, hogy ismeretlen identitások is részt vegyenek a hálózatban (ami olyan protokollokat igényel, mint a “proof of work” a tranzakciók hitelesítéséhez és a hálózat biztonságához), a Hyperledger Fabric hálózat tagjai egy megbízható tagsági szolgáltató (Membership Service Provider, MSP) segítségével jelentkeznek be.
A Hyperledger Fabric számos csatlakoztatható opciót is kínál. A főkönyvi adatok többféle formátumban is tárolhatók, a konszenzusmechanizmusok ki- és becserélhetők, és különböző MSP-k támogatottak.
A Hyperledger Fabric lehetőséget kínál csatornák létrehozására is, lehetővé téve a résztvevők egy csoportjának, hogy külön tranzakciós főkönyvet hozzanak létre. Ez különösen fontos lehetőség olyan hálózatok esetében, ahol egyes résztvevők versenytársak lehetnek, és nem akarják, hogy minden tranzakciójuk – például egy különleges ár, amelyet egyes résztvevőknek kínálnak, másoknak pedig nem – minden résztvevő számára ismert legyen. Ha két résztvevő csatornát alkot, akkor ezek a résztvevők – és senki más – nem rendelkezik az adott csatorna főkönyvének másolatával.
Shared Ledger
A Hyperledger Fabric egy főkönyvi alrendszerrel rendelkezik, amely két komponensből áll: a worldstate és a tranzakciós napló. Minden résztvevőnek van egy példánya a főkönyvből minden Hyperledger Fabric hálózathoz, amelyhez tartozik.
A world state komponens leírja a főkönyv állapotát egy adott időpontban. Ez a főkönyv adatbázisa. A tranzakciós napló komponens rögzít minden olyan tranzakciót, amely a világállapot aktuális értékét eredményezte;ez a világállapot frissítési előzménye. A főkönyv tehát a világállapot-adatbázis és a tranzakciós napló előzményeinek kombinációja.
A főkönyvnek van egy cserélhető adattárolója a világállapothoz. Alapértelmezés szerint ez egy LevelDB kulcs-értéktároló adatbázis. A tranzakciós naplónak nem kell cserélhetőnek lennie. Egyszerűen csak rögzíti a blokklánchálózat által használt főkönyvi adatbázis előtti és utáni értékeit.
Okos szerződések
A Hyperledger Fabric okos szerződéseit lánckódban írják, és egy blokkláncon kívüli alkalmazás hívja meg őket, amikor az alkalmazásnak kapcsolatba kell lépnie a főkönyvvel. A legtöbb esetben a chaincode csak a főkönyv adatbázis komponensével, a világállapottal lép interakcióba (például lekérdezi azt), a tranzakciós naplóval nem.
A chaincode több programozási nyelven is megvalósítható. Jelenleg a Go, a Node.js és a Java chaincode támogatott.
Adatvédelem
A hálózat igényeitől függően egy Business-to-Business(B2B) hálózat résztvevői rendkívül érzékenyek lehetnek arra, hogy mennyi információt osztanak meg.Más hálózatok esetében az adatvédelem nem lesz elsődleges szempont.
A Hyperledger Fabric támogatja azokat a hálózatokat, ahol az adatvédelem (a csatornák használata) kulcsfontosságú működési követelmény, valamint azokat a hálózatokat, amelyek viszonylag nyíltak.
Konszenzus
A tranzakciókat abban a sorrendben kell a főkönyvbe írni, ahogyan azok történtek, még akkor is, ha a hálózaton belül a résztvevők különböző csoportjai között zajlanak. Ehhez meg kell határozni a tranzakciók sorrendjét, és létre kell hozni egy módszert a tévedésből (vagy rosszindulatúan) a főkönyvbe beírt rossz tranzakciók visszautasítására.
Ez a számítástechnika alaposan kutatott területe, és sokféle módon lehet megvalósítani, mindegyik különböző kompromisszumokkal. Például a PBFT (PracticalByzantine Fault Tolerance) olyan mechanizmust biztosíthat, amellyel a fájlreplikák kommunikálhatnak egymással, hogy minden másolat konzisztens maradjon, még sérülés esetén is. Alternatív megoldásként a Bitcoinban a rendezés egy bányászatnak nevezett folyamaton keresztül történik, ahol a versengő számítógépek versenyeznek egy kriptográfiai rejtvény megoldásáért, amely meghatározza a sorrendet, amelyre a későbbiekben minden folyamat épül.
A Hyperledger Fabricot úgy tervezték, hogy a hálózati indítók olyan konszenzusmechanizmust választhassanak, amely a résztvevők között fennálló kapcsolatokat a legjobban reprezentálja. A magánélethez hasonlóan az igényeknek is van egy spektruma; az erősen strukturált kapcsolatokkal rendelkező hálózatoktól az inkább egyenrangúakig.