A Bitcoin 2008-as bevezetése óta, amely egy peer-to-peer elektronikus pénzrendszer volt, számos más kriptovalutát hoztak létre, amelyek mindegyike sajátos mechanizmussal rendelkezik. De egy dolog, ami szinte minden kriptovalutában közös, az a blokklánc, az architektúrájuk központi eleme.
Néhány kivételtől eltekintve a blokkláncokat szándékosan decentralizáltnak tervezték, hogy digitális főkönyvként működjenek, amelyet számítógépes csomópontok elosztott hálózata tart fenn. Ezért a blokklánc technológia lehetővé tette a bizalom minimalizált 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 kezdik elfogadni a hagyományos banki és fizetési rendszerek működőképes alternatívájaként, amelyek nagymértékben függnek a bizalomtól.
A legtöbb elosztott számítástechnikai rendszerhez hasonlóan a kriptohálózat résztvevőinek rendszeresen meg kell állapodniuk a blokklánc aktuális állapotáról, ezt nevezzük a konszenzus elérésének. Az elosztott hálózatokon a konszenzus elérése biztonságos és hatékony módon azonban korántsem könnyű feladat.
Tehát hogyan tud egy számítógépes csomópontokból álló elosztott hálózat megegyezni egy döntésben, ha a csomópontok egy része valószínűleg hibázik vagy tisztességtelenül cselekszik? Ez az úgynevezett bizánci tábornokok problémája, amelyből a bizánci hibatűrés fogalma született.
Mi a bizánci tábornokok problémája?
Röviden, a bizánci tábornokok problémája 1982-ben született meg, mint egy logikai dilemma, amely azt szemlélteti, hogy a bizánci tábornokok egy csoportjának kommunikációs problémái adódnak, amikor megpróbálnak megegyezni a következő lépésükről.
A dilemma szerint minden tábornok saját sereggel rendelkezik, és az egyes csoportok különböző helyeken helyezkednek el a megtámadni kívánt város körül. A tábornokoknak meg kell állapodniuk a támadásról vagy a visszavonulásról. Mindaddig nem számít, hogy támadnak vagy visszavonulnak, amíg valamennyi 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ényekkel számolhatunk:
Minden tábornoknak döntenie kell: támadás vagy visszavonulás (igen vagy nem);
Miután a döntés megszületett, már nem lehet megváltoztatni;
Minden tábornoknak ugyanabban a döntésben kell megállapodnia, és azt összehangoltan kell végrehajtaniuk.
A fent említett kommunikációs problémák azzal a ténnyel kapcsolatosak, hogy a tábornokok csak leveleken keresztül tudnak kommunikálni egymással, amelyeket egy futár továbbít. Ebből kifolyólag a bizánci tábornokok problémájának központi kihívása az, hogy az üzenetek késhetnek, megsemmisülhetnek vagy elveszhetnek.
Ráadásul, még ha az üzenetet sikeresen kézbesítik is, a tábornokok dönthetnek úgy (bármilyen okból), hogy rosszindulatúan cselekszenek, és hamis üzenetet küldenek, hogy összezavarják a többi tábornokot, ami teljes kudarchoz vezet.
Ha a dilemmát a blokkláncokra alkalmazzuk, akkor 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épp fogalmazva, egy elosztott hálózaton belül a résztvevők többségének meg kell egyezniük és ugyanazt a műveletet kell végrehajtaniuk 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, a rendszer ki van téve hibáknak és támadásoknak (mint például az 51%-os támadás).
Bizánci hibatűrés (Byzantine Fault Tolerance - BFT)
Röviden, a bizánci hibatűrés (BFT) egy olyan rendszer tulajdonsága, amely képes ellenállni a bizánci tábornokok problémájából származó hibáknak. Ez azt jelenti, hogy a BFT rendszer akkor is képes folytatni a működést, ha egyes csomópontok meghibásodnak vagy rosszindulatúan cselekszenek.
A bizánci tábornokok problémájára több lehetséges megoldás létezik, így a BFT-rendszer felépítésének is több módja van. Hasonlóképpen, különböző megközelítések léteznek arra is, hogy egy blokklánc elérje a bizánci hibatűrést, és ez elvezet minket az úgynevezett konszenzus algoritmusokhoz.
Blokklánc konszenzus algoritmusok
A konszenzus algoritmus azt a mechanizmus, amelyen keresztül a blokklánchálózat konszenzusra jut. A leggyakoribb megvalósítások a Proof-of-Work (PoW) (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, a PoW konszenzus algoritmus határozza meg, hogy ezeket a szabályokat hogyan kell követni a konszenzus elérése érdekében (például a tranzakciók hitelesítése és validálása során).
Bár a Proof of Work koncepciója régebb óta létezik, mint maguk a kriptovaluták, Satoshi Nakamoto kifejlesztette annak módosított változatát, egy olyan algoritmusként, amely lehetővé tette a Bitcoin mint BFT rendszer létrehozását.
Megjegyzendő, hogy a PoW algoritmus nem 100%-ban bizánci hibatűrő, de a költségigényes bányászati folyamat és az alapul szolgáló kriptográfiai technikák miatt a PoW a blokklánchálózatok egyik legbiztonságosabb és legmegbízhatóbb megvalósításának bizonyult. Éppen ezért 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 tábornokok problémája egy érdekes dilemma, amely végül létrehozta a BFT rendszereket, amelyeket széles körben alkalmaznak különböző területeken. A blokklánciparon kívül a BFT rendszerek néhány felhasználási területe a légi közlekedés, az űrkutatás és az atomenergia ipar.
A kriptovaluták terén a hatékony hálózati kommunikáció és a jó konszenzusmechanizmus létfontosságú minden blokklánc ökoszisztéma számára. Ezen rendszerek biztosítása folyamatos erőfeszítést igényel, és a meglévő konszenzus algoritmusoknak még le kell küzdeniük néhány akadályt (például a skálázhatóság problémáját). Mindazonáltal a PoW és a PoS a bizánci hibatűrő rendszerek nagyon érdekes megközelítései, és a lehetséges alkalmazások minden bizonnyal széleskörű innovációt ösztönöznek.