A Bitcoin, mint peer-to-peer elektronikus készpénzrendszer 2008-as megjelenése óta számos más kriptovaluta jött létre, mindegyik sajátos mechanizmussal. Egy dolog azonban, ami szinte valamennyi kriptovalutában közös, az a blokklánc, mint architektúrájuk központi eleme.
A blokkláncokat – kevés kivételtől eltekintve – szándékosan decentralizáltan tervezték, digitális főkönyvként működnek, amelyet számítógépes csomópontok elosztott hálózata tart fenn. Emiatt a blokklánc-technológia lehetővé tette a bizalom nélküli gazdasági rendszerek létrehozását, ahol átlátható és megbízható pénzügyi tranzakciókat lehet végrehajtani közvetítők nélkül. A kriptovalutákat a hagyományos banki és fizetési rendszerek életképes alternatívájaként fogadják el, amelyek nagymértékben függnek a bizalomtól.
A legtöbb elosztott számítástechnikai rendszerhez hasonlóan a kriptovaluta-hálózat résztvevőinek rendszeresen meg kell állapodniuk a blokklánc aktuális állapotáról, és ezt nevezzük konszenzus elérésének. A konszenzus elérése azonban az elosztott hálózatokon, biztonságos és hatékony módon, korántsem egyszerű feladat.
Hogyan tud egy számítógépes csomópontokból álló elosztott hálózat megegyezni egy döntésről, ha a csomópontok egy része valószínűleg hibázik vagy tisztességtelenül cselekszik? Ez az úgynevezett bizánci generálisok problémájának alapkérdése, amelyből a bizánci hibatűrés fogalma született.
Mi a bizánci generálisok problémája?
A bizánci tábornokok problémája néhány szóban úgy fogalmazódott meg 1982-ben, mint egy logikai dilemma, amely azt szemlélteti, hogy bizánci tábornokok egy csoportjának kommunikációs problémái lehetnek, amikor megpróbálnak megegyezni a következő lépésükről.
A dilemma feltételezi, hogy minden tábornok saját sereggel rendelkezik, és hogy az egyes csoportok különböző helyeken helyezkednek el a megtámadni szándékozott város körül. A tábornokoknak meg kell állapodniuk a támadásról vagy a visszavonulásról. Nem számít, hogy támadnak vagy visszavonulnak, mindaddig, amíg minden tábornok konszenzusra jut, azaz, megegyeznek egy közös döntésben, hogy azt összehangoltan hajtsák végre.
Ezért a következő követelményeket vehetjük figyelembe:
- Minden tábornoknak döntenie kell: támadás vagy visszavonulás (igen vagy nem);
- A döntés meghozatala után nem lehet megváltoztatni;
- Minden tábornoknak meg kell egyeznie egy döntésben, és azt összehangoltan kell végrehajtania.
A fent említett kommunikációs problémák azzal függnek össze, hogy az egyik tábornok csak üzeneteken keresztül tud kommunikálni a másikkal, amelyeket egy futár továbbít. Következésképpen a bizánci tábornokok problémájának központi kihívása az, hogy az üzenetek valahogyan késhetnek, megsemmisülhetnek vagy elveszhetnek.
Ezeken túlmenően, még ha egy üzenetet sikeresen kézbesítenek is, egy vagy több tábornok dönthet úgy (bármilyen okból), hogy rosszindulatúan cselekszik, és csalárd üzenetet küld a többi tábornok összezavarására, ami teljes kudarchoz vezet.
Ha a dilemmát a blokkláncok kontextusára alkalmazzuk, minden tábornok egy hálózati csomópontot képvisel, és a csomópontoknak konszenzusra kell jutniuk a rendszer aktuális állapotáról. Másképpen fogalmazva, egy elosztott hálózaton belül a résztvevők többségének egyet kell értenie és ugyanazt a műveletet kell végrehajtania a teljes kudarc elkerülése érdekében.
Ezért az ilyen típusú elosztott rendszerekben a konszenzus elérésének egyetlen módja, ha legalább ⅔ vagy több megbízható és becsületes hálózati csomópont van. Ez azt jelenti, hogy ha a hálózat többsége úgy dönt, hogy rosszindulatúan cselekszik, akkor a rendszer hajlamos a meghibásodásokra és támadásokra (például az 51%-os támadásra).
Byzantine Fault Tolerance (BFT)
A bizánci hibatűrés (BFT) néhány szóban egy olyan rendszer tulajdonsága, amely képes ellenállni a bizánci általános problémából levezetett hibák osztályának. Ez azt jelenti, hogy egy BFT rendszer akkor is képes folytatni a működését, ha a csomópontok egy része meghibásodik vagy rosszindulatúan viselkedik.
A bizánci generálisok problémájára több lehetséges megoldás létezik, és ezért többféleképpen lehet BFT rendszert építeni. Hasonlóképpen a blokklánc számára is léteznek különböző megközelítések a bizánci hibatűrés elérésére, és ez elvezet minket az úgynevezett konszenzus algoritmusokhoz.
Blokklánc konszenzus algoritmusok
A konszenzus algoritmust úgy definiálhatjuk, mint azt a mechanizmust, amelyen keresztül egy blokklánc hálózat konszenzusra jut. A leggyakoribb implementációk a Proof of Work (PoW) és a Proof of Stake (PoS). De vegyük példának a Bitcoin esetét.
Míg a Bitcoin protokoll előírja a rendszer elsődleges szabályait, addig a PoW konszenzus algoritmus az, ami meghatározza, hogyan kell ezeket a szabályokat követni a konszenzus elérése érdekében (például a tranzakciók ellenőrzése és validálása során).
Bár a Proof of Work koncepciója régebbi, mint a kriptovaluták, Satoshi Nakamoto kifejlesztette annak módosított változatát, mint algoritmust, amely lehetővé tette a Bitcoin mint BFT-rendszer létrehozását.
Megjegyzendő, hogy a PoW algoritmus nem 100%-ban toleráns a bizánci hibákkal szemben, de a költségigényes bányászati folyamat és a mögöttes kriptográfiai technikák miatt a PoW az egyik legbiztonságosabb és legmegbízhatóbb implementációnak bizonyult a blokklánc hálózatok számára. Ebben az értelemben a Satoshi Nakamoto által tervezett Proof of Work konszenzus algoritmust sokan a bizánci hibák egyik legzseniálisabb megoldásának tartják.
záró gondolatok
A bizánci generálisok problémája egy érdekes dilemma, amely végül a BFT rendszereket eredményezte, amelyeket széles körben alkalmaznak különböző forgatókönyvekben. A blokklánc-iparon túl a BFT-rendszerek néhány alkalmazási esete a repülés, az űrkutatás és az atomenergia-ipar.
A kriptopénzek kontextusában a hatékony hálózati kommunikáció a jó konszenzusmechanizmussal együtt létfontosságú minden blokklánc-ökoszisztéma számára. Ezeknek a rendszereknek a biztosítása folyamatos erőfeszítéseket jelent, és a meglévő konszenzus algoritmusoknak még le kell küzdeniük néhány korlátot (például a skálázhatóságot). Mindazonáltal a PoW és a PoS nagyon érdekes megközelítések, mint BFT rendszerek, és a potenciális alkalmazások minden bizonnyal széleskörű innovációra ösztönöznek.