A múlt hét folyamán a Bitcoin kriptovalutának egyik fontos és meglepő eseményét tapasztalhattuk meg: a valuta hardfork-olt, vagyis végérvényesen elágazott és két különböző egymással versenyző kritpovaluta, a Bitcoin és a Bitcoin Cash született belőle. Az alábbi cikkünkben röviden összefoglaljuk, mit is jelent pontosan, ha egy blokklánc rendszer elágazik és milyen következményei lehetnek ennek rövid és hosszútávon.



A történet előzménye az, hogy a hongkongi Cyberportban 2017. február 21-én tartott találkozó után a Bitcoin iparág és a fejlesztési közösség képviselői megállapodtak abban, hogy áprilisban hajtják végre a SegWit-et (elsősorban a tranzakciók formátumát érinti), és 2017 júliusáig aktiválják a hardfork-megoldást. Viszont ennek az eseménynek is van korábbi precednese: 2013. március 12-én egy Bitcoin szoftver 0.8.0 verziójú Bitcoin “bányásza" véletlenül létrehozott egy nagy blokkot, amely a 0.7-es verzióban érvénytelennek minősült (a két verzió közötti fel nem fedett ellentmondás miatt).

Ez egy elágazást vagy "fork"-ot létrehozott a blokkláncban, mivel a szoftver legutóbbi verziójával rendelkező számítógépek elfogadták az érvénytelen blokkot, és tovább építették az eltérő láncra, miközben a szoftver régebbi verziói elutasították, és tovább folytatták a blokkláncot a sértő blokk nélkül.


Ez a elágazás két külön tranzakciós naplót eredményezett, amelyek egyértelmű konszenzus nélkül jöttek létre, ami lehetővé tette, hogy ugyanazokat az összegeket minden egyes láncon eltérő módon költötték el. A bányászok úgy elhatározták, hogy a 0.7-es verzióban bíztak, és az eredeti kanonikus blokklánccal összhangban visszahelyezték a nem kívánt változásokat. A felhasználói alapok (befektetések) nagyrészt változatlanok maradtak, és elérhetők voltak a hálózati konszenzus visszaállításakor. A hálózat konszenzusra jutott, és néhány órával az megosztás után is normálisan működött.

Elágazások a blokkláncban


Ahogy előző cikkünkben röviden összefoglaltuk, a blokklánc alapú rendszerek két legfontosabb építőköve a Peer-to-peer (P2P) hálózat és a blokklánc maga, melyben a rendszer érvényes tranzakcióit foglaljuk össze blokkokban (első ábra). A rendszer további fontos tulajdonsága, hogy a csomópontok egymástól függetlenül a teljes blokkláncot tárolják, és az egyes blokkok egymással egy speciális kriptográfiai pointerrel (ún. hash pointerrel) vannak egymáshoz láncolva. A blokklánc működésének egyik legfontosabb eleme a decentralizált konszenzus mechanizmus, amelynek a segítségével az újonnan érkező tranzakciókat összefoglaljuk egy blokkba, és ezt a blokkot felvesszük a láncba. A konszenzusra többféle algoritmus is létezik, de talán a legfontosabb az ún. Proof-of-Work (POW) rendszer, ahol bizonyos speciális bányász (a szakmabeli terminológiában “miner"-ként is szokták hívni) csomópontok egy algoritmikusan nehéz kriptográfiai rejtvényt oldanak meg egymástól függetlenül és egymással versenyezve. Amelyik csomópontnak először sikerül ez, az veheti fel az új blokkot a láncba, és veheti fel az érte járó jutalmat.

Kettészakították a Bitcoint, de erre senki nem számított


Elágazások (fork) a blokkláncban.


Tekintve, hogy a csomópontok az egész világon elszórva helyezkednek el, elképzelhető, hogy két különböző egymástól független blokk jelenik meg a hálózatban, például egy Kínában lévő bányász a “Blokk 4" -et veszi fel a rendszerbe, egy Kanadában lévő bányász pedig a “Blokk 4*" -ot, ezért a Kanadában elhelyezkedő csomópontok más blokkláncot látnak mint a Kínában lévő csomópontok (első ábra). Ezt a szituációt úgy hívjuk, hogy a blokklánc elágazik (forkol).

Fontos megjegyezni azonban, hogy normális esetben ez csak egy rövidtávú elágazás, a konszenzus algortimus fontos tulajdonsága, hogy mindig a legfontosabb blokkláncot kell az érvényes blokkláncnak tekinteni, tehát ha például a Kínai bányászok a “Blokk 4" -re építve találnak egy “Blokk 5"- öt és elterjesztik a hálózaton, akkor a Kanadai csomópontok automatikusan észlelni fogják, hogy a leghosszabb lánc a “Blokk 4" - “Blokk 5" és azt fogják érvényesnek tekinteni. “Blokk 4*" érvénytelen lesz (Orphaned Blocks) és a benne lévő tranzakciók feldolgozásra kerülnek egy új “Blokk 5" -re épülő blokkban.

Habár első körben egy kicsit furcsának tűnhet, hogy normális üzem közben elágazások jönnek létre a blokkláncban, azonban ezek ritkán tartanak sokáig és ritkán hosszabbak mint egy - két blokk. Ahhoz hogy elágazás jöjjön létre, arra van szükség, hogy a világ két különböző részén lévő bányász csomópont nagyjából egyidőben állítson össze érvényes blokkot. Ahhoz, hogy egy elágazás tovább fennmaradjon, arra van szükség, hogy a rákövetkező blokkot “Blokk 5" és “Blokk 5*" -ot szintén nagyjából egyidejűleg találják meg. A blokkok számával ennek az esélye exponenciálisan csökken, annak az esélye, hogy egy 6 hosszú elágazás létrejöjjön mikroszkópikusan kicsi. Ezért van például a Bitcoinnál az az alapszabály, hogy érdemes 6 megerősítést megvárni, ha az ember teljesen biztos akar lenni a tranzakciójában Ez gyakorlatilag azt jelenti, hogy a tranzakció egy olyan blokkba került lementésre, amely fölé már 5 másik blokk is lementésre került, így egy lehetséges elágazásnak az esélye minimális.

Softfork vs. Hardfork


Természetesen a történet ennél komplikáltabb is lehet, a problémát az okozza, hogy az egyes csomópontokon lévő szoftver nem statikus, hanem folyamatosan fejlesztik. A szoftver új verziói gyakran befolyásolják azt is, hogy mit tekintünk érvényes tranzakciónak vagy érvényes blokknak. Ráadásul mivel ezt egy masszívan elosztott nyilvános hálózat, minden egyes csomópont üzemeltetője szabadon eldöntheti, hogy frissíti-e a futtatott szoftverét vagy sem. Ha a csomópontok egyik fele hosszú távon a régi szoftverrel dolgozik és a régi szabályok alapján tekinti érvényesnek a tranzakciókat, míg a másik felük már az új szabályokat veszi figyelembe, akkor elképzelhető, hogy a blokkláncban végérvényesen elágazás keletkezik (második ábra).

Kettészakították a Bitcoint, de erre senki nem számított


Blokklánc elágazás szoftver verzió frissítésnél.


Gyakorlatilag kétféle elágazásról szokás beszélni. Az ún. softfork esetén az új szoftver kompatibilis a régivel, olyan értelemben, hogy az új szoftver csak szűkíti a lehetséges tranzakciók vagy blokkok körét. Ennek az a következménye, hogy ha egy frissített csomópont érvényesnek talál egy tranzakciót, vagy blokkot, akkor azt a régi csomópontok is érvényesnek találják. Softfork esetén ha a csomópontok nagy részében a frissített szoftver fut, akkor a blokkláncban csak rövidtávú elágazások jönnek létre. Ezzel ellentétes a hardfork, ahol az új szoftver nem kompatibilis a régivel (harmadik ábra). Ez azt okozhatja, amennyiben nem frissítik az összes csomópont szoftverét, hogy a blokklánc végérvényesen elágazik, és két blokklánc jön létre: a régi csomópontok a régi szabályokkal építik fel a blokkokat, és csak az ilyen blokkokat tárolják, az új csomópontok pedig az új szabályokkal számolnak, és csak az így felépített blokkokat tárolják. Gyakorlatilag a rendszer két párhuzamos alrendszerre esik szét.

Kettészakították a Bitcoint, de erre senki nem számított


Softfork - hardfork

A kriptovaluta értékéről


Természetesen egy érdekes kérdés, hogy mennyire jó vagy rossz, ha egy blokklánc alapú kriptovaluta végérvényesen elágazik. A legtöbb kriptovaluta és blokklánc alapú szolgáltatás értéke egy viszonylag összetett fogalom, ami a következő főbb egymástól független szereplőktől és csoportoktól függ:
  • Fejlesztők: minél több fejlesztő támogatja a rendszert, annál gyorsabban lehet új szolgáltatásokat megvalósítani, meglévő hibákat kijavítani, stb.
  • Üzemeltetők: bányászok, minél több egymástól független csomópont működik a világon, annál robosztusabban és stabilabban működik az egész rendszer. Minél több bányász minél fejlettebb eszközökkel dolgozik, annál nehezebb a rendszert feltörni.
  • Kereskedők: a kereskedők érdeke, hogy minél stabilabban és megbízhatóbban működjön az egész rendszer és hogy minél több felhasználó vásároljon az adott kriptovalutában.
  • Végfelhasználók: számukra csak az a fontos, hogy minél több helyen lehet vásárolni és minél stabilabban működjön az egész rendszer.
  • Befektetők és spekulánsok: ez a kategória általában csak azért használja az adott kriptovalutát, hogy rövid vagy hosszú távon profitot realizáljon az árfolyamváltozáson.


Összességében mindenkinek az az érdeke, hogy minél többen használják a rendszert és minél stabilabban fusson, tehát egy hardfork alapvetően senkinek sem hosszú távú előny, mégis közös megoldást találni ilyen nagyszámú független szereplő mellett viszonylag nehéz. Ezen felül érdemes megemlíteni, hogy ha egy blokklánc rendszer hardfork-ol, akkor a meglévő kriptovaluta mindkét új rendszerben elkölthető lesz, természetesen az egy más kérdés, hogy mi történik az árfolyamokkal a blokklánc elágazás után.

Bitcoin fork: Bitcoin és Bitcoin Cash


A Bitcoin protokoll régóta szenved egy elég komoly skálázhatósági problémával: a 10 perces blokk validálási idő és 1 MB-os blokk méretek miatt a teljes hálózat megközelítően 7 darab tranzakciót képes kezelni másodpercenként. Ez összehasonlítva a Visa több ezres vagy akár csak a PayPal több százas másodpercenkénti tranzakciós számával roppant kevés. Számos technikai megoldás született a probléma megoldására, melyek általában a blokkméret megnövelésével operálnak, azonban minden ilyen jellegű szoftverfrissítésnél fennáll a hardfork veszélye. Ahogy az előzőekben említettük, a hardfork úgy kerülhető el, ha minden résztvevő maximálisan egyetért és az összes üzemeltető és bányász nagyjából egyidejűleg telepíti az új szoftververziót.

Ennek elkerülésére kidolgoztak egy soft-fork jellegű frissítést is, ahol egy speciális extra blokkal kiegészítik a blokkláncot (ez a bevezetőben is említett SegWit megoldás), így a másodpercenkénti tranzakció szám a duplájára emelkedhet.

A Bitcoin közösségben hosszú ideje vita tárgya volt, hogy melyik verziót érdemes installálni, a SegWit rendszer főbb bírálói azzal érveltek, hogy ez csupán egy ideiglenes megoldás, melyet hosszú távon amúgy is frissíteni kell még egyszer. A vita augusztus elsején fokozódott, amikor egy csoport üzemeltető bányász és programozó élesbe állított egy olyan verziót, ami 8 MB-os blokkméretet használ és nem kompatibilis a régi szoftver verzióval.

Ez azt okozta, hogy a Bitcoin blokklánc végérvényesen két részre ágazott el és ezzel megszületett egy új kriptovaluta az úgynevezett Bitcoin Cash.


A hardfork végeztével azok a csomópontok és bányászok, akik a szoftverüket frissítették, már az új rendszer blokkjait és tranzakcióit dolgozták fel.

Hogyan tovább?


Természetesen érdekes kérdés, hogy mi történik hosszú távon a Bitcoin Cash-el. Fontos megjegyezni, hogy az új kriptovaluta közösségi elfogadottsága elég alacsony még akkor is, ha műszakilag fejlettebb megoldásokat tartalmaz mint a klasszikus Bitcoin. Egyrészt csak az üzemeltetők csekély száma támogatja az új rendszert, másfelől az ügyfelek és kereskedők részéről még kevesebben, így első körben azt mondaná az ember, kevés az esélye, hogy stabilan működő hosszútávú kriptovaluta jön belőle létre.

Névjegy

Szegő Dániel, független blockchain tanácsadó, elvégezte a Certified Bitcoin Professional, MIT Fintech, MIT Cybersecurity képzéseket, pillanatnyilag a Microsoft Azure Blockchain as a Service témakörrel kapcsolatban dolgozik projekteken Frankfurtban.
Dr. Tuan Anh Trinh, a Corvinus egyetemi docense, a Corvinus Fintech Center vezetője, 2006 óta az MTA köztestületi tagja, a Budapesti Műszaki és Gazdaságtudományi Egyetem doktora.