Hyperledger és Burrow, avagy hogyan készítsünk saját blokkláncot #ethereumtudas
Hyperledger és Burrow, avagy hogyan készítsünk saját blokkláncot #ethereumtudas
A nyitott blokkláncok (mint amilyen a Bitcoin vagy az Ethereum) mellett léteznek zárt un. permissioned láncok. Ezeket rendszerint cégek húzzák fel egymás közt, így nem csatlakozhat hozzájuk bárki. Tipikus példa, hogy bankok egymás közt a saját zárt blokkláncukon intézik az egymás közti tranzakciókat. (Én többek közt ezért nem jósolok nagy jövőt a Ripple-nek, mert miért bíznák a bankok 3. félre az ilyesmit, ha felhúzhatnak saját blokkláncot.) Az ilyen permissioned láncok létrehozására az egyik legelterjedtebb keretrendszer a Linux Foundation által fejlesztett Hyperledger.
Gabriel: Nagyon jó példa erre a koreai bankok közötti megállapodás, amelyről itt olvashatunk bővebben: https://www.coindesk.com/korean-banks-can-use-blockchain-to-verify-customer-ids-from-july/
A japán bankokkat viszont én sem értem, vagy a Ripple nagyon jól tud tárgyalni. https://www.bloomberg.com/news/articles/2018-03-07/ripple-develops-blockchain-payments-app-with-61-japanese-banks Ez előtt a megállapodás előtt a japán bankok már szövetséget kötöttek egy közös blockchain használatra.
Hyperledger és Burrow
A Hyperledger egy keretrendszer saját zárt blokkláncok létrehozására. A felépítését tekintve teljesen moduláris, vagyis mi válogathatjuk össze, hogy a saját blokkláncunkhoz milyen konszenzus algoritmust akarunk használni (PoW, PoS, DPoS, stb.), milyen smart contract motort, stb. Egyszóval amolyan LEGO a blokklánc mániás nagy gyerekeknek.
A Burrow egy EVM (Ethereum Virtual Machine) kompatibilis smart contract interpreter modul, amivel Ethereum smart contractokat futtathatunk Hyperledger felett. A Burrownak köszönhetően tehát ugyanúgy futtathatóak a jól megszokott Solidity kódjaink, mint Ethereumon, és igazából ez az oka, hogy ez a cikk az #ethereumtudas cikksorozatba került. A projekt egyelőre még csak inkubációs fázisban van, de valószínűleg gyorsan fog fejlődni.
Hibrid modell
A cikk végére tartogattam egy kis agymenést. Az jutott eszembe, hogy az Ethereum smart contract rendszerének köszönhetően talán ötvözhetőek lennének a két technológia előnyei. A mostanában futó ismertebb blokklánc projektek (EOS, NEO, Lisk, stb.) mindegyikében közös motívum, hogy a rendszert a költséges PoW helyett pár választott node futtatja.
A node-okat a coinok tulajdonosai szavazzák meg, és a node-ok bizonyos százalékának (pl. 2/3) jóváhagyása kell ahhoz, hogy egy tranzakció bekerüljön a láncba. Egy ilyen rendszer számítási teljesítmény (és energia) igénye minimális a PoW-hoz képest, miközben nagyságrendekkel gyorsabb és hasonló biztonságot nyújt. Nos, egy ilyen Lisk, NEO, vagy EOS szerű rendszert valójában viszonylag könnyen összelegózhatunk a fenti komponensekből. Elég ha létrehozunk egy tokent az Ethereum hálózaton (ez lesz a blokkláncunk saját fizetőeszköze).
Ezen kívül szükség van egy nem túl bonyolult smart contractra, amin keresztül lehetőség van a node-ok megszavazására. A szavazás során kiválasztásra kerül az az X db Ethereum cím, akik a node-okat üzemeltetik. Ők adhatják meg az IP címet amin a node-juk fut, illetve a tranzakciót az ő privát kulcsukkal kell aláírni. Erre a rendszerre húzható aztán rá a Hyperledger alapú saját blokklánc, ahol a smart contracton megszavazott szerverek alkotják a futtató hálózatot. Maga a lánc publikus. Tehát azon túl, hogy a választott node-ok ellenőrzik egymás munkáját, a hálózat bármely más tagja is meggyőződhet a futtatás helyességéről, és új szavazást kezdeményezhet, ha elérést tapasztal (ez ugye eleve csak akkor lehetséges, ha a választott node-ok legalább 2/3-a korrupt). Hogy a dolognak még nagyobb legyen a tétje, a node-októl kérhető egy komolyabb összeg letétbe helyezése, amit a node elveszít, ha az eredmények hamisításáért kizárják. Ez a szabályrendszer smart contractban viszonylag egyszerűen rögzíthető.
No de hogy kerülnek át az Ethereum hálózaton létező tokenek a saját hálózatra? Egy gateway contract segítségével ez is megoldható. A contract működésének felügyeletéért a választott futtató node-ok felelősek. Ha valaki tokent köt le a contracton (kivonja őket a forgalomból az Ethereum hálózaton), az megjelenik a másodlagos, Hyperledger alapú saját blokkláncon. Ennek levezénylését a futtató node-ok végzik, amik figyelik a smart contracton való token lekötéseket. A másodlagos hálózaton szabadon mozgathatóak a tokenek, majd ha a tulajdonos szeretné visszahozni őket az Ethereum hálózatra, a tokenek felszabadítását kéri a futtató node-októl. A node-ok ekkor kivonják az adott mennyiségű tokent a saját hálózatról, majd felszabadítják azt a gateway contracton (ehhez ugyanúgy legalább a node-ok 2/3-nak engedélye kell, mint a blokkok létrehozása esetén).
Mire jó ez az egész? Valójában rengeteg előnnyel rendelkezik egy ilyen saját blokklánc. Ethereum tranzakció egy ilyen rendszer esetén csak a tokenek hálózatok közti szállításához és a szavazás lebonyolításához szükséges. Minden más tranzakció a hálózaton belül történik az Ethereum hálózattól függetlenül. Ennek megfelelően a tranzakciós díjakat is a másodlagos hálózat saját tokenjével kell megfizetni (ha vannak), kihasználhatóak a hálózat speciális előnyei (pl. Java alapú smart contractok), a végrehajtás pedig sokkal gyorsabb lehet, és nem akasztják meg ICO-k, vagy éppen kriptomacskák.
Saját blokklánc fejlesztéséhez tehát nem feltétlenül kell sok millió dolláros beruházás, mint az EOS, Lisk, NEO, és más projektek esetén. Ha hajlandóak vagyunk némi kompromisszumra (pár Ethereum smart contract és Hyperledger használata), akkor viszonylag egyszerűen összelegózhatunk magunknak egy sajátot, minimális pénz és energiabefektetéssel.