Kryptoměna Bitcoin
Kryptoměna Bitcoin (9/9) · 15:16

Bitcoin - Zabezpečení blockchainů Podrobný popis zabezpečení bitcoinových blockchainů (bločenek).

Navazuje na Peníze a bankovnictví.
Chci vám popsat teoretickou, fiktivní bitcoinovou transakci a způsob, jak by se někdo v systému mohl pokusit o podvod. To je nejen matematicky obtížné, ale systém bitcoinů zároveň finančně odměňuje poctivé chování lidí. Vezmeme si člověka jménem Dan. Dan si chce objednat sýrovou pizzu z pizzerie U Peta. Řekněme, že U Peta je možné platit v bitcoinech a jedna pizza stojí 1 bitcoin. Dan dostal 5 bitcoinů od sestřenice Carol. Carol (značka C) tedy dala Danovi 5 bitcoinů, které označíme značkou B v kroužku, a Dan chce použít 1 z 5 bitcoinů k nákupu pizzy u Peta. Danův bitcoinový klient vytvoří záznam o transakci s informacemi o tom, kde Dan bitcoiny získal. V tomto případě tedy informace o transakci 5 bitcoinů mezi Carol označenou C a Danem. Dále je tu uvedeno, že Dan posílá jeden bitcoin Petovi... Peta označíme písmenem P. ...a zbývající 4 bitcoiny Dan v zásadě posílá sám sobě. Bitcoiny fungují tak, že musíte určit, co bude se zbytkem. Cokoli vstupuje do systému bitcoinů, musí taky vystoupit. Nemůže existovat transakce, kde počty nesedí. Po transakci zbývá rozměněný zbytek bitcoinů nebo se část použije jako poplatek za transakci atd. Aby byl náš příklad jednodušší, použijeme nulový poplatek za transakci. Poplatek za transakci je 0. Zaměříme se jen na situaci, kde je vše součástí transakce. Tento záznam o transakci je odeslán do celého bitcoinového světa. Pete tedy samozřejmě obdrží kopii transakce. Kromě Peta ji ale dostane i každý další člověk v systému bitcoinů. V systému bitcoinů existují zvláštní uzly, subjekty nebo lidé, tzv. těžaři bitcoinů. Těžaři bitcoinů musí zajistit, že je transakce v pořádku z globální perspektivy. Podívají se na úplný záznam o transakci, tento záznam o transakci je veřejný, říká se mu transakční blockchain. Popis transakčního blockchainu dám sem. ...a ten obsahuje historii každé jednotlivé transakce, ke které kdy došlo v systému bitcoinů od začátku času. Od okamžiku vzniku prvního bloku, kterému se říká původní blok. Každý si může kdykoli ověřit jakoukoli transakci, tyto informace jsou veřejné. Konkrétně těžaři bitcoinů kontrolují, zda Dan dříve neobdržel 5 bitcoinů od někoho jiného. V tomto případě od sestřenice Carol. ...zda se Dan už dřív pokoušel tyto bitcoiny utratit a tak dále. Těžaři bitcoinů společně zpracovávají všechny nedávné transakce, které zatím nebyly zaznamenány. Tedy nejen transakce mezi Danem a Petem, ale mohou být jiné transakce, ke kterým také došlo. Těžaři bitcoinů tedy kontrolují tyto různé transakce, snaží se z nich vytvořit transakční blok a tento transakční blok pak přidat na konec aktuálního řetězce transakčních bloků (transakčního blockchainu). Pokud si vzpomínáte na předchozí videa, chce-li těžař bitcoinů přidat transakční blok k řetězci, musí vyřešit tzv. proof of work puzzle. Systém bitcoinů je navržen nebo kalibrován tak, aby jeden těžař zvládl vyřešit proof of work v průměru za 10 minut. Je důležité zdůraznit, že řešení tohoto problému může jednomu těžaři trvat opravdu dlouho. Může trvat třeba i rok nebo dva. Ale protože ve stejné chvíli pracuje velké množství těžařů, jeden z nich musí mít štěstí a problém vyřešit rychleji. Každý proof of work spojený s transakčním blokem má k sobě přiřazeno hodnocení obtížnosti. Obtížnost v zásadě určuje, jak těžké je vyřešit daný proof of work. Představte si určité číslo, budeme těmto číslům říkat D(n) pro nejnovější hodnocení obtížnosti, pak D(n-1). Budou to čísla, která vyjadřují, jak obtížné bylo vyřešit proof of work. Když se podíváte na celý řetězec, systém bitcoinů se zajímá o to, jak těžké bylo sestavit celý řetězec. Je důležité vědět, jakou obtížnost celý řetězec má, protože celkové hodnocení řetězce, jeho úroveň obtížnosti, to vše může Petovi či jiným lidem, kteří přijímají bitcoiny, pomoci zjistit, zda mohou či nemohou transakci věřit. Čím víc práce bylo v celém řetězci, tím větší důvěryhodnost transakce má. Systém bitcoinů totiž funguje tak, že pokud existuje v jednu chvíli více řetězců transakčních blokchainů... Například je tu jeden zlý uživatel, možná někdo neobdržel včas konkrétní informaci, a podobně. ...pokud existuje více řetězců transakčních bloků (blockchainů), měl by být dle protokolu bitcoinů zpracován řezězec, na kterém bylo provedeno nejvíc práce. Ignorují se řetězce, na kterých bylo výrazně méně práce, a bere se řetězec, kde je nejvíc práce. V systému bitcoinů se tomuto řetězci často říká nejdelší řetězec. To je trochu matoucí označení, protože nejdelší řetězec neznamená jeho fyzickou délku. Je tím myšleno... A já tu dám rovnítko. ...nejdelším řetězcem je řetězec s největším množstvím práce. Množství práce se určí tak, že se vezmou všechna hodnocení obtížnosti, sečtou se a dostanete hodnocení obtížnosti celého řetězce. Nás zajímá řetězec, do kterého bylo investováno nejvíc práce a kterému říkáme nejdelší řetězec. Řekněme, že Dan nebude upřímný a poté, co sní pizzu... Třeba Pete je přesvědčen, že od Dana bitcoin obdrží, chvíli tedy počká, vidí, že existuje dlouhý řetězec obsahující transakci, a pošle Danovi pizzu. Dan pizzu sní a rozhodne se, že se nezachová čestně, chce Peta podvést nebo chce zneužít systému. Dan se o podvod v systému pokusí tak, že zkusí vytvořit další transakci, ve které pošle 5 bitcoinů od Carol někomu jinému. Říkejme této osobě Fred. Fred může být Danovo alter ego, může to být jeho kamarád. Nezáleží na to, kdo je Fred, protože víme, že Fred není platným vlastníkem těchto bitcoinů. Dan se tedy snaží vzít svých 5 bitcoinů, které získal od Carol, a převést je Fredovi. To je něco, co nemůžeme připustit, protože by to znamenalo, že Dan může použít svých 5 bitcoinů ke dvěma transakcím, prakticky je dvakrát utratit. Ze zřejmých důvodů bude jedna z transakcí považována za podvodnou. Realizace druhé transakce bude povolena. Důležité je, že pokud se Dan pokusil znovu utratit stejné bitcoiny, aniž by za sebou zametl stopy nebo něco podobného, každý na světě zjistí, že je něco špatně. Ve stávajícím řetězci transakčních bloků, v našem řetězci, je vidět, že Dan již své bitcoiny utratil a nemá tedy dovoleno utratit je podruhé. Dan potřebuje vytvořit další řetězec transakčních bloků, který obsahuje pouze druhou, neplatnou transakci, kterou bude transakce bitcoinů pro Freda, a ve které bude transakce pro Peta vynechána. Doufá, že všichni tento novější řetězec přijmou a uvěří mu. Protože se ve světě bitcoinů vždy každý věnuje řetězci transakčních bloků, který obsahuje nejvíc práce, tedy nejdelšímu řetězci, Dan má šanci a věří, že se mu tato neplatná transakce povede. Otázkou je pravděpodobnost, že se to Danovi podaří. Aby Danovi jeho plán vyšel, musí začít s existujícím řetězcem transakčních bloků a zkusit k němu připojit další transakční blok. Takže namísto předchozí transakce, ve které dal peníze Petovi, se bude snažit vytvořit novou transakci a přidat ji k řetězci, který obsahuje druhou, podvodnou transakci mezi Danem a jeho kamarádem Fredem. Tento nový blok bude obsahovat nekalou transakci mezi Danem a Fredem. Ve světě bitcoinů se tomu říká rozcestí v řetězci. Rozcestím myslíme, že je jistým způsobem možné mít více než jednu verzi historie. Někdo se pokusí přepsat záznamy nebo zakrýt své stopy a změnit historii, kterou všichni známe. Ve skutečnosti jen existuje více verzí toho, co se stalo. V tomto případě je jedna cesta z rozcestí platná a druhá je falešná. Platná cesta byla ta, kdy Dan zaplatil Petovi za pizzu, a falešná ta, kde Dan zkouší zaplatit příteli Fredovi těmi samými bitcoiny. Pamatujte si, že každý transakční blok přidaný k tomuto řetězci musí obsahovat proof of work puzzle, tedy řešení proof of work. Jinak nikdo řetězec nepřijme. Pokud tedy Dan chce podvést systém, musí nový proof of work tajně vyřešit sám. Dan to ovšem nemá lehké, začíná s handicapem, existuje totiž už jeden delší řetězec, který lidé začali přijímat. Tento řetězec již existuje, a proto na něm mohly začít stavět další uzly. Průměrně každých 10 minut k tomuto řetězci někdo něco přidá. Existuje tedy delší řetězec transakčních bloků a Dan chce vytvořit vlastní falešný řetězec. Aby takovému řetězci někdo uvěřil, musí se z něj stát nejdelší řetězec, a Dan tedy musí v zásadě vypracovat veškeré proof of work, aby se řetězec stal delším. Aby Dan zvládl sám vytvořit delší řetězec, musí předběhnout stávající řetězec. To znamená, že musí vyřešit nikoli jeden proof of work, což je běžné, ale několik proofs of work, aby vytvořil řetězec, který by byl delší než stávající řetězec. Když vytvoří nejdelší řetězec a přesvědčí lidi, aby jej začali používat... Chce, aby používali tento řetězec obsahující falešnou transakci a zároveň bez předchozí transakce, ve které zaplatil Petovi. Aby Dan vyřešil všechny proofs of work, tak potřebuje veškerý výpočetní výkon, ke kterému má přístup a musí začít řešit proofs of work. Při řešení neexistují žádné zkratky. Pokud si vzpomenete na libovolné z dřívějších videí, víte, že uspět při řešení proof of work je jako vyhrát v loterii. Existují způsoby, jak toho dosáhnout, ale závisí na dostupném výpočetním výkonu. Čím více výpočetního výkonu máte, tím víc losů získáte. I s jediným losem do loterie máte šanci vyhrát, ale vaše šance je mnohem menší než u někoho, kdo má v ruce losů hromadu. I kdybyste byli jednou úspěšní a vyhráli s malým počtem losů, pravděpodobnost, že se vám to podaří znovu, několikrát za sebou, je opravdu malá. Ale přesně to Dan potřebuje. Musí několikrát za sebou vyhrát v loterii, dokud nevytvoří delší řetězec. Hlavní je tedy vědět, kolik má Dan k dispozici výpočetního výkonu v porovnání s výpočetním výkonem, kterým disponují všechny poctivé uzly v systému. Pokud všechny poctivé uzly... Pojďme jim říkat „poctivý výpočetní výkon“. Výrazem „poctivý výpočetní výkon“ myslím celkový výpočetní výkon všech uzlů těžících bitcoiny, které jsou v síti čestné. Dokud bude celkový výpočetní výkon, ke kterému mají přístup, větší než ten, ke kterému má přístup Dan, tedy Danův výpočetní výkon, systém bitcoinů je v bezpečí. Pro Dana bude obtížné vytvořit podvodný transakční řetězec, protože nedokáže předběhnout všechny poctivé lidi. Poctiví lidé vyhrávají v loterii častěji, budou vytvářet delší řetězec a Danova snaha tak bude nerovným soubojem. Je možné, že má Dan přístup k obrovskému výpočetnímu výkonu, je velmi bohatý nebo má spoustu zdrojů, ale potřeboval by jich opravdu hodně. Více, než mají všichni poctiví lidé dohromady. To je tedy jeden důvod, proč je řetězec transakčních bloků v bezpečí: je nepravděpodobné, že by jedna osoba měla k dispozici tak obrovský výpočetní výkon. Tady bych měl upozornit, že existuje ještě další aspekt zabezpečení systému. Pokud má Dan takový výpočetní výkon, který umí vyřešit všechny proofs of work, udělal by lépe, kdyby se nevěnoval nevyrovnanému boji vytváření rozcestí v řetězci a vytváření falešných transakcí, ale radši využil svůj výpočetní výkon k legitimní těžbě bitcoinů. Možná si pamatujete, že těžaři bitcoinů, kteří řeší proofs of work, dostávají odměny... Za dosažený úspěch získají určité množství bitcoinů. ...a za každou transakci v řetězci, kterou ověřili, také dostanou transakční poplatek. Pro Dana je tedy ekonomicky výhodné chovat se čestně. Možná bych měl teď na konci videa zopakovat, že zabezpečení bitcoinových transakcí vychází v prvé řadě z této matematické překážky, kdy je pro Dana velmi těžké vytvořit v řetězci podvodné rozcestí, ale také z ekonomické výhody, pokud se bude Dan chovat čestně a bude těžit bitcoiny pro sebe.
video