Kryptoměna Bitcoin
Přihlásit se
Kryptoměna Bitcoin (7/7) · 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 pizzérie U Peta. Řekněme, že U Peta je možné platit v bitcoinech a jedna pizza stojí 1 BTC. Dan dostal 5 BTC od sestřenky Carol. Carol (značka C) tedy dala Danovi 5 BTC, které označíme značkou „B“ v kroužku, a Dan chce použít jeden 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 nebo například 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 světa bitcoinů. Pete tedy samozřejmě obdrží kopii o transakci. Kromě Peta ji ale dostane i každý další člověk v systému bitcoinů. V systému bitcoinů existují zvláštní uzly, entity nebo lidé, tzv. těžaři bitcoinů. Těžaři bitcoinů musí zajistit, že je transakce z globální perspektivy v pořádku. Podívají se na úplný záznam o transakci, tento záznam o transakci je veřejný, říká se mu řetězec transakčních bloků... Popis řetězce transakčních bloků 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 obdržel 5 bitcoinů od někoho jiného... V tomto případě od sestřenky 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ů. 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 takzvaný důkazový problém. Systém bitcoinů je navržen, nebo lépe kalibrován, aby jeden těžař zvládl vyřešit problém 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ý z důkazových problémů spojených s transakčním blokem má přiřazeno hodnocení obtížnosti. Obtížnost v zásadě určuje, jak těžké je důkazový problém vyřešit. Představte si určité číslo, budeme těmto číslům říkat Dn pro nejnovější hodnocení obtížnosti, pak Dn-1... Budou to čísla, která vyjadřují, jak obtížné bylo vyřešit důkazový problém. Když se podíváte na celý řetězec, systém bitcoinů zajímá 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 bloků... 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ů, 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 s 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 zneužít systému. Dan se o podvod v systému pokusí tak, že zkusí vytvořit další transakci, ve které pošle 5 BTC 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, kým Fred je, 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ů, 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 na 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 přítelem 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 důkazový problém, tedy jeho řešení. Jinak nikdo řetězec nepřijme. Pokud tedy Dan chce podvést systém, musí nový důkazový problém 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é důkazy, 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 důkazový problém, což je běžné, ale několik, 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 důkazové problémy, tak potřebuje veškerý výpočetní výkon, ke kterému má přístup a musí začit řešit důkazové problémy. 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í problému 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 to přesně 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ů bezpečný: je totiž nepravděpodobné, že by jeden jedinec měl 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 problémy, udělal by lépe, kdyby se nevěnoval nevyrovnanému boji vytváření rozcestí v řetězci a 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ší důkazové problémy, dostávají odměny... Za dosažený úspěch získají určitý objem bitcoinů. ...a za každou transakci v bloku, kterou ověřili, také dostanou poplatek za transakci. Pro Dana je tedy ekonomicky výhodné chovat se čestně. Možná bych měl nyní na konci videa zopakovat, že zabezpečení transakcí bitcoinů vychází v prvé řadě z této matematické bariéry, 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 sám těžit bitcoiny.
video