Počuli ste už o Byzantine Generals Problem (BGP), Byzantine Fault Tolerance, The Two Generals Problem alebo vo voľnom preklade do slovenčiny, Probléme Dvoch Armád? Ak sa vo svete kryptomien pohybujete dlhšie, tak ste tento názov minimálne niekde videli alebo o ňom čítali. Venovali ste mu však dostatočnú pozornosť? BGP je totiž jednou z najdôležitejších lekcií na pochopenie toho, ako Bitcoin funguje. Poďme si ale krok po kroku vysvetliť o čo vlastne ide.
Čo je Byzantine Generals Problem?
Predstavte si situáciu ako z dávnych čias. Mesto v údolí je z každej strany obkľúčené armádami. Mesto samotné je v menšine, ak však nedôjde k jednotnému útoku zo strany útočiacich armád, mesto vždy vyhrá (na prvý pohľad nepodstatná informácia, ktorá ale vykresľuje jeden dôležitý predpoklad o väčšine na strane generálov).
Vy ste generálom jednej z týchto armád a chcete zaútočiť. Neviete však kedy, pretože ak by ste zaútočili na mesto sami, prehrali by ste. Preto potrebujete, aby zaútočili všetci generáli v rovnaký čas. Rozošlete poslov, aby doručili správu, kedy pôjdete útočiť.
V čom je háčik?
Práve v tomto momente nastáva problém. Čo ak je jeden z vašich sluhov zradca? Čo ak povie generálovi druhej armády iný čas a tým prekazí váš útok? Navyše, sluha musí prejsť cez mesto. Čo ak sa dostane do zajatia, sluhov vymenia a rovnako tak aj správu? V tomto prípade každý z generálov zaútočí v inom čase a mesto sa ubráni. Preto si nemôžete byť istý, komu môžete veriť.
Rovnako si nemôžete byť istý ani komu veriť. Vaša správa je totiž iba text. Ten sa môže veľmi ľahko sfalšovať (kýmkoľvek na ceste). Ako by sa dalo tomuto všetkému zabrániť? Je možnosť ako poslať správu generálom tak, aby ste si boli istý, že aj vy dostanete správu akú očakávate a zaútočíte všetci v rovnaký čas?
Riešenie: ťažba/mining
Poďme si v jednoduchosti povedať, s čím prišiel Bitcoin na trh. Je ním takzvaná ťažba (určite ste o nej už častokrát počuli). Nikto však nejde s krompáčmi do bane, aby kopal a ťažil digitálne zlato. Ťažba Bitcoinu sa skladá z troch krokov:
1.Ťažiar vytvorí súbor, ktorý sa skladá z 3 častí. Prvou je hash posledného bloku zapísaného na blockchaine. Druhou je blok s novými (ešte nepotvrdenými) transakciami. Poslednou je takzvaná „nonce.” V jednoduchosti, nonce je hocijaké číslo, ktoré ťažiar náhodne vygeneruje. Kombinácia týchto 3 prvkov je vstupnou informáciou pre druhý krok.
2.Ťažiar použije kryptografickú funkciu na spracovanie informácií. Tá následne vytvorí unikátny reťazec (string) znakov, ktorý nemôže byť zamenený. Tento reťazec sa nazýva data hash.
3.Data hash je v poslednom kroku porovnaný s požadovaným vzorom (v prípade Bitcoinu je podstatný počet núl na začiatku hashu). Ak sa hash zhoduje so vzorom, ťažiar objavil platný blok. Ak by sa hash a vzor nezhodovali, ťažiar sa musí vrátiť k prvému kroku, odhadnúť novú nonce a proces opakovať. (Ak by vás zaujímalo viac detailov na túto tému, nájdete ich v tomto článku).
Čo sa stane ďalej?
Hneď ako ťažiar nájde platný blok, zapíše ho do blockchainu. Následne všetci ťažiari znovu začnú celý proces hľadania nového bloku od začiatku. V prvom kroku (z vyššie uvedených troch), ale zakomponujú nový, dlhší blockchain.
Pozornému čitateľovi neušlo, že my sme zatiaľ Problém Dvoch Armád nevyriešili. Ale všetky informácie, ktoré sme doteraz uviedli, nám pomôžu túto otázku zodpovedať.
Odpoveďou je, že ak sa zadávateľ (client – v našom prípade si ho obrazne predstavme ako generála) rozhoduje, ktorú verziu blockchainu si má vybrať, vyberie si tú najdlhšiu. Teda tú, ktorá má najväčšiu celkovú obtiažnosť hashov, ktoré boli využité na jej vytvorenie. Je to tak preto, lebo bol využitý najväčší výpočtový výkon na jeho vytvorenie (a teda sa predpokladá, že je najpravdivejšia).
Ak by sa v našom prípade zradca pokúsil správu sfalšovať, musel by do toho vložiť viac energie/výkonu ako zadávateľ. To však nie je možné kvôli nevyspytateľnému procesu hádania noncí. Rovnako tomu pomáha aj fakt, že zradca by bol v menšine (ako spomínané mesto) a preto by nebol schopný prekonať pôvodnú verziu blockchainu (správu odoslanú generálom – vami).
Je ale týmto BGP naozaj vyriešený?
Veľa ľudí tvrdí, že skutočné riešenie neexistuje a že ani Bitcoin nevyriešil Problém Dvoch Armád. Podľa daných ľudí sa nedá v skutočne decentralizovanom svete overiť, či všetko prebieha tak, ako má. Na druhej strane sa zdá, že nikto zatiaľ nenavrhol efektívnejšie riešenie.
Záver
V skratke by sa dalo povedať, že Problém Dvoch Armád alebo Byzantine Generals Problem, vykresľuje situáciu, v ktorej musí prísť ku konsenzu v decentralizovanom systéme. Jedno z riešení by mohla ponúknuť ťažba kryptomien. Tá prepája hádanie noncí na vyprodukovanie reťazca (chainu) a vybratie najdlhšieho reťazca.
Viac informácií nájdete v tomto článku.
Nenechajte si ujsť naše krypto-spravodajstvo a prihláste sa na odber notifikácií. Inštrukcie získate po kliknutí na zvonček vľavo dole. Taktiež nás sledujte na našej facebookovej stránke a nenechajte si ujsť najnovšie správy z kryptosveta.
Zdroje:
andrew.cmu.edu
wikipedia.org
youtube.com
Obrázok:
moodle.autolab.uni