Jak fungují kryptoměny? – Problém dvou armád

0
problem dvou armad

Už jste slyšeli o Byzantine Generals Problem (BGP), Byzantine Fault Tolerance, The Two Generals Problem nebo, ve volném překladu do češtiny, Problému dvou armád? Pokud se ve světě kryptoměn pohybujete déle, tak jste tento název minimálně někde viděli nebo o něm četli. Věnovali jste mu však dostatečnou pozornost? BGP je totiž jednou z nejdůležitějších lekcí na pochopení toho, jak Bitcoin funguje. Pojďme si ale krok za krokem vysvětlit, o co vlastně jde.

Co je Byzantine Generals Problem?

Představte si situaci jako z dávných dob. Město v údolí je z každé strany obklíčené armádami. Město samotné je v menšině, pokud však nedojde k jednotnému útoku ze strany útočících armád, město vždy vyhraje (na první pohled nepodstatná informace, která ale vykresluje jeden důležitý předpoklad o většině na straně generálů).

Vy jste generálem jedné z těchto armád a chcete zaútočit. Nevíte však kdy, protože pokud byste zaútočili na město sami, prohráli byste. Proto potřebujete, aby zaútočili všichni generálové ve stejný čas. Rozešlete posly, aby doručili zprávu, kdy půjdete útočit.

V čem je háček?

Právě v tomto okamžiku nastává problém. Co když je jeden z vašich služebníků zrádce? Co když řekne generálovi druhé armády jiný čas, a tím překazí váš útok? Navíc sluha musí projít přes město. Co když se dostane do zajetí, sluhy vymění a stejně tak i zprávu? V tomto případě každý z generálů zaútočí v jiném čase a město se ubrání. Proto si nemůžete být jistý, komu můžete věřit.

Stejně tak si nemůžete být jistý, komu věřit. Vaše zpráva je totiž pouze text. Ten se může velmi snadno zfalšovat (kýmkoliv na cestě). Jak by se dalo tomuto všemu zabránit? Je možnost, jak poslat zprávu generálem tak, abyste si byli jisti, že i vy dostanete zprávu, jakou očekáváte, a zaútočíte všichni ve stejný čas?

Řešení: těžba/mining

Pojďme si v jednoduchosti říci, s čím přišel Bitcoin na trh. Je jím takzvaná těžba (určitě jste o ní již častokrát slyšeli). Nikdo však nejde s krumpáči do dolu, aby kopal a těžil digitální zlato. Těžba Bitcoinu se skládá ze tří kroků:

1. Těžař vytvoří soubor, který se skládá ze 3 částí. První je hash posledního bloku zapsaného na blockchainu. Druhou je blok s novými (ještě nevalidovaných) transakcemi. Poslední je takzvaná „nonce“. V jednoduchosti, nonce je lecjaké číslo, které těžař náhodně vygeneruje. Kombinace těchto 3 prvků je vstupní informací pro druhý krok.

2. Těžař použije šifrovací funkci na zpracování informací. Ta následně vytvoří unikátní řetězec (string) znaků, který nemůže být zaměněn. Tento řetězec se nazývá data hash.

3. Data hash je v posledním kroku porovnán s požadovaným vzorem (v případě Bitcoinu je podstatný počet nul na začátku hash). Pokud se hash shoduje se vzorem, těžař objevil platný blok. Pokud by se hash a vzor neshodovaly, těžař se musí vrátit k prvnímu kroku, odhadnout novou nonce a proces opakovat. (Pokud by vás zajímalo více detailů na toto téma, najdete je v tomto článku).

Co se stane dál?

Jakmile těžař najde platný blok, zapíše ho do blockchainu. Následně všichni těžaři znovu začnou celý proces hledání nového bloku od začátku. V prvním kroku (z výše uvedených tří) ale zakomponují nový, delší blockchain.

Pozornému čtenáři neušlo, že my jsme zatím Problém dvou armád nevyřešili. Ale všechny informace, které jsme dosud uvedli, nám pomohou tuto otázku zodpovědět.

Odpovědí je, že pokud se zadavatel (client – v našem případě si ho obrazně představme jako generála) rozhoduje, kterou verzi blockchainu si má vybrat, vybere si tu nejdelší. Tedy tu, která má největší celkovou obtížnost algoritmů HASH, které byly využity k jejímu vytvoření. Je tomu tak proto, že byl využit největší výpočetní výkon k jeho vytvoření (a tedy se předpokládá, že je nejautentičtější).

Pokud by se v našem případě zrádce pokusil zprávu zfalšovat, musel by do toho vložit více energie/výkonu jako zadavatel. To však není možné kvůli nevyzpytatelnému procesu hádání noncí. Stejně tomu pomáhá i fakt, že zrádce by byl v menšině (jako zmíněné město), a proto by nebyl schopen překonat původní verzi blockchainu (zprávu odeslanou generálem – vámi).

Je ale tímto BGP opravdu vyřešený?

Mnoho lidí tvrdí, že skutečné řešení neexistuje a že ani Bitcoin nevyřešil Problém dvou armád. Podle daných lidí se nedá v skutečně decentralizovaného světa ověřit, zda vše probíhá tak, jak má. Na druhé straně se zdá, že nikdo zatím nenavrhl efektivnější řešení.

Závěr

Ve zkratce by se dalo říci, že Problém dvou armád nebo Byzantine Generals Problem vykresluje situaci, ve které musí dojít ke konsensu v decentralizovaném systému. Jedno z řešení by mohla nabídnout těžba kryptoměn. Ta propojuje hádání noncí na vyprodukování řetězce (chainu) a vyjmutí nejdelšího řetězce.

Více informací najdete v tomto článku.

Co číst dál?

Kam se dostane Bitcoin během bullrunu – 3 aktuální nejsmělejší predikce!

Zdroje:
andrew.cmu.edu
wikipedia.org
youtube.com

ZANECHAT ODPOVĚĎ

Zadejte svůj komentář!
Zde prosím zadejte své jméno