Obsah:

Jak blockchain vlastně funguje
Jak blockchain vlastně funguje

Video: Jak blockchain vlastně funguje

Video: Jak blockchain vlastně funguje
Video: How Masks Are Made For Hollywood | Movies Insider 2024, Smět
Anonim

Tento příspěvek má všem sdělit, proč byl blockchain vynalezen, jak fungují kryptoměny a proč je to z pohledu logiky nejkrásnější systém posledních let.

Okamžitě vás upozorním, že pod řezem je OBROVSKÝ list textu a pokud nejste připraveni otázku na téma kryptoměn jednou provždy „uzavřet“, přidejte si záznam do oblíbených hned teď a rezervujte si čas)

Blockchain je technologie, nová, zvláštní, nepochopitelná, ale zdá se, že mění svět, na rozdíl od těchto vašich příběhů. Zřejmě je s námi už dlouho.

Tento příspěvek je psán tak, jako by byl vyprávěn lidem, kteří mají k počítačům hodně daleko a znají je jen povrchně, představte si například, že se připravoval na vaše rodiče. Mohu to dokonce hodit svým kolegům z humanitních věd a být si jistý, že to pochopí.

A Oleg nám všem v této obtížné záležitosti pomůže. Setkat!

Jestli se ti Olega nelíbí, vykopnu ho.

Základy: proč potřebujeme blockchain?

Blockchain byl popsán v článku Satoshi Nakamota „Bitcoin: Peer-to-Peer Electronic Cash System“. Na pouhých osmi stránkách tam autor popsal základy kryptoměny Bitcoin, která byla založena na algoritmu Blockchain.

Seznam, který nelze změnit

Blockchain - řetězec bloků nebo jinými slovy propojený seznam. V takovém seznamu každý další záznam odkazuje na jeden předchozí a tak dále v řetězci k úplně prvnímu. Stejně jako vagóny vlaku, každý táhne další. Ohledně seznamů je dobrý článek Nikity Lichačeva o TJ, kde je totéž vysvětleno pro úplné nováčky. Analogie jsou částečně převzaty odtud.

Vezměme si příklad

Olegovi přátelé si od něj neustále půjčují peníze. Oleg je laskavý, ale extrémně zapomnětlivý. O týden později si už nepamatuje, kdo mu dluh nevrátil, ale je mu trapné se na to všech ptát. Jednoho dne se proto rozhodl s tím skoncovat tím, že si doma na tabuli vytvořil seznam přátel, kterým půjčil peníze.

Nyní může Oleg vždy jít k tabuli a ujistit se, že Max vše vrátil, ale Vanya již nedává 700 rublů. Jednoho dne Oleg pozve Váňu na drink k němu domů. Zatímco Oleg jde na záchod, Vanya vymaže záznam „Půjčil jsem si 200 rublů pro Vanyu“a na jeho místo napíše „Vanya dal 500 rublů“.

Oleg, který důvěřoval svému seznamu, zapomene na dluh a ztratí 700 rublů. Rozhodne se s tím nějak bojovat. Loni se Oleg zúčastnil kurzu programování, kde mu řekli o hašování. Pamatuje si, že jakýkoli řetězec lze proměnit v jednoznačnou sadu znaků – hash, a změnou libovolného znaku v řetězci se zcela změní.

Přidání tečky na konec změnilo výsledný hash k nepoznání – můžete ho použít.

Oleg vezme známý hash SHA-256 a zahašuje s ním každý záznam a na konec přidá výsledek. Nyní se Oleg může ujistit, že jeho záznamy nikdo nezměnil tím, že je znovu hashuje a porovná se zeleným.

Ale EVIL IVAN také ví, jak používat SHA-256 a může snadno změnit položku spolu s jejím hashem. Zvláště pokud je hash napsán hned vedle na tabuli.

Oleg se proto pro větší bezpečnost rozhodne zahašovat nejen samotný záznam, ale přidat jej společně s hashem z předchozího záznamu. Nyní všechny následující položky závisí na předchozích. Pokud změníte alespoň jeden řádek, budete muset přepočítat hashe všech ostatních níže v seznamu.

Jednoho dne se ale Ivan v noci připlíží, změní záznam, který potřebuje, a aktualizuje hashe pro celý seznam až do konce. Trvá mu to několik hodin, ale Oleg stále tvrdě spí a neslyší. Ráno Oleg objeví naprosto správný seznam – všechny hashe se shodují. Ivan ho ale stejně oklamal, i když na tom strávil bezesnou noc. Jak jinak se můžete chránit před Night Ivanem?

Oleg se rozhodne nějak si zkomplikovat život. Nyní, aby do seznamu přidal nový záznam, Oleg vyřeší složitý problém s ním spojený, například matematickou rovnici. Do konečného hashe přidá odpověď.

Oleg je dobrý v matematice, ale i přidání hesla trvá deset minut. Navzdory tomu ten strávený čas stojí za to, protože pokud bude chtít Ivan zase něco změnit, bude muset znovu vyřešit rovnice pro každý řádek a mohou jich být desítky. Zabere to spoustu času, protože rovnice jsou pokaždé jedinečné a spojené s konkrétním záznamem.

Kontrola seznamu je ale stejně jednoduchá: nejprve je třeba porovnat hashe jako dříve a poté zkontrolovat řešení rovnic jednoduchou substitucí. Pokud vše konverguje, seznam se nezmění.

Ve skutečnosti to s rovnicemi není tak dobré: počítače je řeší příliš dobře a kam uložit tolik jedinečných rovnic. Autoři blockchainu proto přišli s krásnějším problémem: musíte najít takové číslo (nonce), aby výsledný hash celého záznamu začínal 10 nulami. Takový nonce se hledá těžko, ale výsledek lze vždy zkontrolovat pouhým okem.

Nyní Oleg ověří všechny hashe a navíc se ujistí, že každý začíná zadaným počtem nul. Sly Ivan, i když je vyzbrojen výkonným notebookem, nestihne za noc přepočítat všechny hashe tak, aby splnily podmínku - času nebude dost.

Takový seznam je ve skutečnosti domácí blockchain na koleně. Jeho bezpečnost zaručují matematici, kteří dokázali, že tyto hashe nelze spočítat nějak rychleji, leda hrubou silou. Takovým výčtem hashů pro každý záznam je těžba, o které dnes bude hodně a podrobně.

Centralizace důvěry

Našim přátelům se líbil nápad vést falešný seznam „kdo si koho půjčil“. Také si nechtějí pamatovat, kdo za koho v baru zaplatil a kolik ještě dluží - vše je napsáno na zdi. Diskutovali jste o nápadu a rozhodli jste se, že nyní potřebujete jeden seznam pro všechny.

Komu by ale mělo být svěřeno tak důležité vedení účetnictví? Když jde totiž o peníze, do popředí se dostává důvěra. Nebudeme věřit neznámému, že si naše peníze nechá. K tomu naši předkové vymysleli banky, kterým se postupem času začalo věřit, protože za nimi stojí licence, zákony a pojištění od centrální banky.

V kruhu přátel si všichni důvěřují a do této role si jednoduše vyberete toho nejzodpovědnějšího. Ale co když se otázka týká cizích lidí? Celé město, zemi nebo celý svět, jako je tomu u bitcoinu? Obecně tam nikdo nemůže nikomu věřit.

Decentralizace: nikdo nikomu nevěří

A tak přišli s alternativním přístupem: ponechat kopii seznamu pro všechny. Útočník by tak musel nejen přepsat jeden seznam, ale také se vplížit do každého domu a tam seznamy přepsat. A pak se ukáže, že si někdo doma vedl několik seznamů, o kterých nikdo nevěděl. To je decentralizace.

Nevýhodou tohoto přístupu je, že k vytvoření nových záznamů budete muset zavolat všem ostatním účastníkům a informovat je o nejnovějších změnách. Ale pokud jsou tito účastníci bezduchými stroji, přestává to být žádný problém.

V takovém systému neexistuje jediný bod důvěry, a tudíž možnost uplácení a podvádění. Všichni účastníci systému jednají podle jediného pravidla: nikdo nikomu nevěří. Každý věří pouze informacím, které má k dispozici. To je hlavní zákon každé decentralizované sítě.

Transakce

Při nákupu hrnce v obchodě zadáte PIN kód z vaší karty, což obchodu umožní požádat banku, zda máte na účtu 35 rublů. Jinými slovy, svým PIN kódem podepíšete transakci za 35 rublů, kterou banka potvrdí nebo zamítne.

Naše záznamy typu „Půjčil jsem si Vanyu 500 rublů“jsou také transakce. Nemáme ale banku autorizující autory transakcí. Jak můžeme zkontrolovat, že Ivan v tichosti nepřidal záznam „Max dluží Olegovi 100 500 rublů“?

Blockchain k tomu využívá mechanismus veřejných a soukromých klíčů, IT specialisté je dlouhodobě využívají k autorizaci ve stejném SSH. Vysvětlil jsem to na prstech v příspěvku "Bezpečnost, šifrování, kyberpunk" v sekci "Úvod do šifrování".

Stručně o tom, jak tato složitá, ale krásná matematika funguje: na počítači vygenerujete dvojici dlouhých prvočísel – veřejný a soukromý klíč. Soukromý klíč je považován za super tajný, protože dokáže dešifrovat to, co je zašifrováno na veřejnosti.

Ale funguje to i naopak. Pokud veřejný klíč sdílíte se všemi svými přáteli, budou pro ně moci zašifrovat jakoukoli zprávu, abyste si ji mohli přečíst pouze vy, protože vlastníte ten soukromý.

Kromě toho má však veřejný klíč užitečný účinek – můžete s ním zkontrolovat, zda byla data zašifrována vaším soukromým klíčem, aniž byste museli dešifrovat data samotná. Všechny tyto vlastnosti jsou dobře popsány v "Knize šifer".

Jsme na decentralizovaném internetu, kde nelze nikomu věřit. Transakce je podepsána privátním klíčem a spolu s veřejným klíčem je odeslána do speciálního úložiště – poolu nepotvrzených transakcí. Každý člen sítě si tak může ověřit, že jste to byli vy, kdo to inicioval, a ne někdo jiný chce splatit vaše peníze.

To zajišťuje otevřenost a bezpečnost sítě. Pokud za to byly zodpovědné dřívější banky, pak v blockchainu jsou za to zodpovědní matematici.

Běžným uživatelům, kteří nechtějí vymýšlet, jak vystavit a uložit soukromé klíče, pomohou služby online peněženky. Pro kopírování dlouhých veřejných klíčů jsou tam vytvořeny pohodlné QR kódy. Například Blockchain Wallet, protože má pohodlnou mobilní aplikaci a podporuje dvě hlavní kryptoměny – BTC a ETH.

Nedostatek konceptu "rovnováhy"

Stejně jako naše deska se blockchain v podstatě skládá pouze z transakční historie. Neukládá zůstatek každé peněženky, jinak bychom museli vymýšlet další způsoby ochrany.

Vlastnictví peněženky potvrzuje pouze soukromý klíč. Ale jak se mohou ostatní členové sítě ujistit, že mám dost peněz na nákup?

Protože nemáme žádnou rovnováhu, musíte to dokázat. Blockchainová transakce tedy zahrnuje nejen váš podpis a částku, kterou chcete utratit, ale také odkazy na předchozí transakce, ve kterých jste obdrželi požadované množství peněz.

To znamená, že pokud chcete utratit 400 rublů, projdete celou svou historií příjmů a výdajů a ke své transakci připojíte příjmy, u kterých jste dostali 100 + 250 + 50 rublů, čímž prokážete, že těchto 400 rublů máte.

Každý člen sítě si opět s jistotou zkontroluje, zda jste nepřipojili příjem dvakrát. Že těch 300 rublů, které dal Max minulý týden, jsi opravdu ještě neutratil.

Takové příjmy spojené s transakcí se v blockchainu nazývají vstupy a všichni příjemci peněz se nazývají výstupy. Součet všech vstupů je málokdy přesně stejný, jaký chcete najednou přenést – proto budete nejčastěji jedním z výstupů vy. Jinými slovy, transakce na blockchainu vypadá tak, že „dostal jsem 3 a 2 BTC, chci z nich převést 4 BTC a zbývající 1 BTC vrátit zpět.“

Krása blockchainu spočívá v tom, že vstupy nemusí pocházet z jedné peněženky. Kontroluje se totiž pouze klíč. Pokud znáte soukromý klíč všech vstupů, můžete je snadno připojit ke své transakci a platit těmito penězi. Jako byste platili v supermarketu několika kartami, ze kterých znáte PIN kód.

Pokud však ztratíte svůj soukromý klíč, zemře vám disk nebo vám ukradnou notebook, vaše bitcoiny budou navždy ztraceny. Nikdo je nemůže použít jako vstupy pro nové transakce.

Tato částka bude navždy nepřístupná celému světu – jako když spálíte balík bankovek. Neexistuje jediná banka, kde byste mohli napsat žádost s kopií pasu a on ji vytiskne. To vyžaduje dodatečné vydání nových bitcoinů „z ničeho“.

Problém dvojitých výdajů

Výše jsem řekl, že transakce se přidávají do speciálního „poolu nepotvrzených transakcí“. Proč potřebujeme nějakou zprostředkovatelskou entitu, když už máme ve skutečnosti hotové podepsané transakce? Proč je nenapsat přímo do blockchainu?

Protože signály z bodu A do bodu B jdou vždy se zpožděním. Dvě transakce mohou probíhat zcela odlišnými způsoby. A transakce, která byla zahájena jako první, se může dostat k příjemci později, protože trvala delší cestu.

Dochází tak k dvojnásobnému utrácení, kdy byly stejné peníze zaslány dvěma adresátům najednou, což by ani nehádali. To není předávat bankovky z ruky do ruky.

Pro decentralizovanou síť, ve které nelze nikomu věřit, je tento problém obzvláště akutní. Zde je návod, jak zajistit, aby jedna transakce byla určitě před druhou? Požádejte odesílatele, aby do toho všil dobu odeslání, ne? Ale pamatujte - nemůžete věřit nikomu, dokonce ani odesílateli.

Čas na všech počítačích se bude nutně lišit a neexistuje žádný zaručený způsob, jak je synchronizovat. Kopie blockchainu je uložena na každém počítači v síti a každý účastník důvěřuje pouze jemu.

Jak se můžete ujistit, že jedna transakce proběhla dříve než jiná?

Odpověď je jednoduchá: je to nemožné. Neexistuje způsob, jak potvrdit čas transakce v decentralizované síti. A řešením tohoto problému je třetí důležitá myšlenka blockchainu, kterou Satoshi vynalezl a která je kupodivu napsána přímo v jeho jméně – bloky.

Bloky jsou páteří blockchainu

Každý fungující počítač v síti vybere z obecného fondu libovolné transakce, které se mu líbí. Obvykle jen za nejvyšší provizi, kterou na něm může vydělat. Shromažďuje tedy pro sebe transakce, dokud jejich celková velikost nedosáhne sjednaného limitu. V Bitcoinu je tento limit velikosti bloku 1 MB (po SegWit2x to bude 2 MB) a v Bitcoin Cash - 8 MB.

Celý blockchain je v podstatě seznam takových bloků, kde každý odkazuje na ten předchozí. Může být použit ke sledování jakékoli transakce v celé historii, odvíjení blockchainu dokonce až k prvnímu záznamu.

Právě tento seznam nyní váží stovky gigabajtů a musí být plně stažen do všech počítačů, které se chtějí zapojit do sítě (není to však nutné pro pouhé vytváření transakcí a převod peněz). Ze všech nejbližších počítačů v síti se stahuje stejně, jako když stahujete sérii z torrentů, každých 10 minut v ní vycházejí jen nové nové epizody.

Poté, co si pro sebe zadal transakce z fondu, začne z nich počítač skládat stejný nezfalšovatelný seznam, jaký jsme dělali na začátku příspěvku na nástěnce doma.

Jen on to udělá ve formě stromu - hašuje záznamy po dvojicích, pak je výsledek opět po dvojicích a tak dále, dokud nezbude jediný hash - kořen stromu, který se přidá do bloku. Proč zrovna se stromem - odpověď jsem nenašel, ale předpokládám, že je to tak prostě rychlejší. Přečtěte si více na wiki: Merkle tree.

Vzhledem k tomu, že aktuální blockchain již byl stažen, náš počítač přesně ví, jaký je v něm poslední blok. Potřebuje na něj přidat odkaz do hlavičky bloku, vše zahašovat a říci všem ostatním počítačům v síti „Podívejte, vytvořil jsem nový blok, přidejte ho do našeho blockchainu“.

Zbytek by měl zkontrolovat, zda je blok postaven podle všech pravidel a že jsme tam nepřidali zbytečné transakce, a poté je přidat do našich řetězců. Nyní jsou všechny transakce v něm potvrzeny, blockchain je navýšen o jeden blok a vše jde dobře, že?

Ale ne. Tisíce počítačů současně pracují v síti, a jakmile sestaví nový blok, téměř současně spěchají informovat všechny, že jejich blok byl vytvořen jako první. A z předchozí části již víme, že v decentralizované síti nelze prokázat, kdo byl skutečně první.

Stejně jako ve škole, kdy všichni řešili těžký test, málokdy se stalo, že by i výborní žáci brali odpovědi současně.

Pokud je ale pro člověka obtížným úkolem naplánovat si dovolenou tak, aby se dostal na květnové prázdniny, a letenky k moři jsou levné, pak pro počítač znamená přidat takové číslo (nonce) na konec blok, takže ve výsledku hash SHA-256 pro celý blok začíná řekněme 10 nulami. Toto je problém, který je třeba vyřešit, aby bylo možné přidat blok do bitcoinové sítě. Pro jiné sítě se úkoly mohou lišit.

Dostáváme se tedy ke konceptu těžby, kterým je v posledních letech každý tak posedlý.

Hornictví

Těžba bitcoinů není nějaká posvátná svátost. Těžba není o hledání nových bitcoinů někde v hlubinách internetu. Těžba je, když tisíce počítačů po celém světě bzučí ve sklepích, procházejí miliony čísel za sekundu a snaží se najít hash, který začíná 10 nulami. K tomu ani nemusí být online.

Grafické karty se stovkami paralelních jader řeší tento problém rychleji než jakýkoli CPU.

Proč zrovna 10 nul? A stejně to nedává smysl. Satoshi tedy přišel s. Protože to je jeden z těch problémů, na který se vždy najde řešení, ale rozhodně jej nelze najít rychleji než dlouhý monotónní výčet možností.

Složitost těžby přímo závisí na velikosti sítě, tedy na jejím celkovém výkonu. Pokud si vytvoříte vlastní blockchain a spustíte ho sami doma na dvou noteboocích, pak by měl být úkol jednodušší. Například tak, aby hash začínal pouze jednou nulou, nebo aby se součet sudých číslic rovnal součtu lichých.

Bude trvat několik desetiletí, než jeden počítač najde hash začínající 10 nulami. Pokud ale spojíte tisíce počítačů do jediné sítě a budete hledat paralelně, pak je podle teorie pravděpodobnosti tento problém vyřešen v průměru za 10 minut. To je čas, kdy se v bitcoinovém blockchainu objeví nový blok.

Každých 8-12 minut někdo na Zemi najde takový hash a dostane privilegium oznámit svůj objev všem, čímž se vyhne problému, kdo byl první.

Za nalezení odpovědi dostane počítač (od roku 2017) 12,5 BTC – to je částka odměny, která je generována bitcoinovým systémem „z ničeho nic“a každé čtyři roky klesá.

Technicky to znamená, že každý těžař si do svého bloku vždy přidá další transakci – „vytvoř 12,5 BTC a pošli mi je do peněženky“. Když uslyšíte „počet bitcoinů na světě je omezen na 21 milionů, nyní už najali 16 milionů“– to jsou odměny, které síť generuje.

Jděte se podívat na skutečný živý bitcoinový blok na jedné z vyhrazených stránek. Jsou zde také transakce se vstupy a výstupy a hned 18 nul na začátku a všechny výše popsané hashe.

Jsou to těžaři, kteří přidávají vznikající transakce do blockchainu. Pokud vám tedy někdo řekne, že „vyrobí blockchain za ***“, první otázka, na kterou musí odpovědět, je, kdo a proč na něm bude těžit. Nejčastěji je správná odpověď „všichni, protože za těžbu dáváme své coiny, které porostou a je to pro těžaře výhodné“. To ale neplatí pro všechny projekty.

Například nějaké ministerstvo zdravotnictví zítra vytvoří svůj vlastní uzavřený blockchain pro lékaře (a chtějí ho), kdo ho bude těžit? Víkendoví terapeuti?

Jaký však bude přínos pro těžaře později, až odměny zmizí nebo budou poskrovnu?

Podle představy Tvůrce do té doby lidé budou muset věřit v realitu bitcoinu a těžba se začne vyplácet ve výši poplatků zahrnutých v každé transakci. Tady jde všechno: ještě v roce 2012 byly všechny provize nulové, těžaři těžili jen za odměny z bloků. Dnes může transakce s nulovou provizí viset v bazénu několik hodin, protože existuje konkurence a lidé jsou ochotni zaplatit za rychlost.

Čili podstata těžby je v řešení nesmyslných problémů. Nedalo by se všechnu tuto sílu využít k něčemu užitečnějšímu – k hledání léku například na rakovinu?

Podstatou těžby je vyřešit jakýkoli výpočetní problém. Tento úkol by měl být dostatečně jednoduchý, aby účastníci sítě měli stabilní pravděpodobnost nalezení odpovědi – jinak budou transakce potvrzovány navždy. Představte si, že u pokladny v obchodě musíte pokaždé půl hodiny čekat, než banka potvrdí vaši transakci. Takovou banku nikdo nevyužije.

Úkol ale musí být zároveň obtížný, aby odpověď nenašli všichni uživatelé najednou. Protože v tomto případě oznámí mnoho bloků se stejnými transakcemi do sítě a bude zde možnost "dvojího plýtvání", o kterém jsem se zmínil. Nebo ještě hůř – rozdělení jediného blockchainu na více větví, ve kterých nikdo nedokáže zjistit, která transakce je potvrzená a která ne.

Pokud je odměna 12,5 BTC rozdána pouze jednou za 10 minut a pouze jedna osoba, která blok nalezla, ukázalo se, že musím několik let plýtvat grafickými kartami v naději, že jednoho dne shodím 40 000 $ (na aktuální směnný kurz)?

To je přesně případ bitcoinu. Ale nebylo tomu tak vždy. Dříve byla síť menší, složitost je nižší, což znamená, že pravděpodobnost samostatného nalezení hashe pro nový blok je vyšší. Tehdy ale bitcoin nebyl tak drahý.

Nyní nikdo netěží bitcoiny sám. Nyní jsou účastníci sdruženi do speciálních skupin – mining poolů, kde se všichni společně snaží najít správný hash.

Pokud alespoň jeden ze skupiny najde, pak se celá odměna rozdělí mezi účastníky v závislosti na jejich přínosu pro společné dílo. Ukazuje se, že těžíte a z celkového podílu dostanete každý týden cent.

Ale sólo těžba je docela možná na jiných sítích. Donedávna bylo snadné těžit Ethereum, kde se bloky nacházejí každých 10 sekund. Bloková odměna je tam mnohem nižší, ale pravděpodobnost výdělku pěkného centu je vyšší.

Takže budeme marně pálit tisíce grafických karet a neexistuje žádná cesta ven?

Ano, ale existují nápady. Těžba, kterou jsem popsal, je klasická a jmenuje se Proof-of-Work (proof of work). To znamená, že každý stroj dokazuje, že fungoval ve prospěch sítě tím, že řeší nesmyslné problémy s danou pravděpodobností.

Ale někteří kluci začínají vytvářet blockchainy s jinými typy těžby. Nyní je druhým nejoblíbenějším konceptem Proof-of-Stake (důkaz o sázce). Při tomto typu těžby platí, že čím více „coinů“má účastník sítě na svém účtu, tím je pravděpodobnější, že vloží svůj blok do blockchainu. Jako nejhlasitější chlap ve vesnici.

Můžete přemýšlet o jiných typech těžby. Jak již bylo naznačeno, všechny počítače v síti mohou hledat lék na rakovinu, jen vy musíte přijít na to, jak v tomto případě zaznamenat jejich příspěvek do systému. Koneckonců mohu prohlásit, že se také účastním, ale vypněte svou grafickou kartu a nic nepočítejte.

Jak vyčíslíte příspěvek každého účastníka k nalezení léku na rakovinu? Pokud na to přijdete – odvažte se snížit svůj CancerCoin, mediální humbuk vám je zaručen.

Blockchain

Představte si situaci, kdy se přes veškerou naši teorii pravděpodobnosti přesto podařilo dvěma horníkům najít správnou odpověď současně. Začnou po síti posílat dva absolutně správné bloky.

Tyto bloky se budou zaručeně lišit, protože i kdyby zázračně vybrali stejné transakce z poolu, vytvořili naprosto identické stromy a uhádli stejné náhodné číslo (nonce), jejich hash se bude stále lišit, protože každý zapíše číslo své peněženky. blok za odměnu.

Nyní máme dva platné bloky a opět vyvstává problém, kdo by měl být zvažován jako první. Jak se v tomto případě zachová síť?

Algoritmus blockchainu uvádí, že účastníci sítě jednoduše přijmou první správnou odpověď, která se k nim dostane. Potom žijí na základě vlastního obrazu světa.

Oba těžaři dostanou svou odměnu a všichni ostatní začnou těžit, spoléhat se na poslední blok, který osobně obdrželi, a odhodit všechny ostatní jsou znovu správné. Na síti se objevují dvě verze správného blockchainu. Takový je paradox.

To je rutinní situace, ve které opět pomáhá teorie pravděpodobnosti. Síť funguje v takto rozdvojeném stavu, dokud jeden z těžařů nenajde další blok jednoho z těchto řetězců.

Jakmile je takový blok nalezen a vložen do řetězce, prodlužuje se a je zahrnuta jedna z dohod blockchainové sítě: za jakýchkoli podmínek je nejdelší blockchain akceptován jako jediný pravdivý pro celou síť.

Krátký řetězec přes veškerou jeho správnost odmítají všichni účastníci sítě. Transakce z něj se vracejí do fondu (pokud nebyly potvrzeny v jiném) a jejich zpracování začíná znovu. Baník přijde o odměnu, protože jeho blok již neexistuje.

S růstem sítě jdou takové náhody z „velmi nepravděpodobné“do kategorie „dobře, někdy se to stane“. Staří říkají, že byly případy, kdy spadl řetěz čtyř bloků najednou.

Z tohoto důvodu byla vynalezena tři pravidla nejistoty konce řetězce:

1. Odměny za těžbu lze využít až po dalších 20 potvrzených blocích po obdržení. U bitcoinu jsou to asi tři hodiny.

2. Pokud vám byly bitcoiny zaslány, můžete je použít jako vstupy v nových transakcích až po 1-5 blocích.

3. Pravidla 1 a 2 jsou uvedena v nastavení každého klienta. Jejich dodržování nikdo nehlídá. Ale zákon o nejdelším řetězci stejně vymaže všechny vaše transakce, pokud se pokusíte oklamat systém, aby je nevynucoval.

Pokus o podvádění blockchainu

Nyní, když víte vše o těžbě, zařízení blockchainu a pravidle nejdelšího řetězce, možná vás napadne otázka: je možné nějak konkrétně předběhnout blockchain tím, že si sami vytvoříte nejdelší řetězec, čímž potvrdíte své falešné transakce.

Řekněme, že máte nejvýkonnější počítač na světě. Datacentra Google a Amazon vám dají dohromady a vy se snažíte vypočítat takový řetězec, který se stane nejdelším blockchainem v síti.

Nemůžete vzít a okamžitě vypočítat několik bloků řetězce, protože každý další blok závisí na předchozím. Pak se co nejrychleji rozhodnete počítat každý blok ve vašich obrovských datových centrech paralelně s tím, jak všichni ostatní účastníci pokračují ve zvyšování hlavního blockchainu. Je možné je předběhnout? Pravděpodobně ano.

Pokud je váš výpočetní výkon více než 50 % výkonu všech účastníků sítě, pak s 50% pravděpodobností budete schopni vybudovat delší řetězec rychleji než všichni ostatní dohromady. Toto je teoreticky možný způsob, jak oklamat blockchain výpočtem delšího řetězce transakcí. Pak budou všechny transakce skutečné sítě považovány za neplatné a vy shromáždíte všechny odměny a odstartujete nový milník v historii kryptoměny, kterému se říká „blockchain division“. Jednou, kvůli chybě v kódu, to byl případ Etherea.

Ve skutečnosti se ale žádné datové centrum nedá srovnávat z hlediska výkonu se všemi počítači na světě. Jeden a půl miliardy Číňanů s icics, další jeden a půl miliardy hladových Indů s těžařskými farmami a levnou elektřinou – to je obrovský výpočetní výkon. Nikdo na světě jim zatím sám nemůže konkurovat, dokonce ani Google.

Je to jako vyjít na ulici a snažit se přesvědčit každého člověka na světě, že dolar má nyní hodnotu 1 rubl a být včas, než vás média odhalí. A pokud se vám podaří všechny přesvědčit, můžete zhroutit světovou ekonomiku. Teoreticky, není to možné? Ale v praxi se to z nějakého důvodu nikomu nepodařilo.

Na této pravděpodobnosti spočívá i blockchain. Čím více účastníků-těžařů, tím větší bezpečnost a důvěra v síť. Proto, když je v Číně pokryta další velká těžařská farma, sazba kolabuje. Každý se bojí, že někde na světě byl zlý génius, který už shromáždil zásobu horníků na ~ 49% kapacity.

Závěr

Blockchain není přesně definovaná sada algoritmů. Jde o strukturu pro budování falešné sítě mezi účastníky, kde nikdo nemůže nikomu věřit. Při čtení vás pravděpodobně nejednou napadlo, že „takhle to zvládneš a bude to ještě užitečnější“. To znamená, že rozumíte blockchainu, gratulujeme.

Někteří kluci ve světě to také pochopili a chtěli se zlepšit nebo přizpůsobit pro některé konkrétní úkoly. Kryptoměny nejsou stejné, i když je jich také hodně. Zde je krátký seznam některých nápadů a projektů, které si získaly určitou oblibu díky přehodnocení myšlenky blockchainu.

Ethereum

„Ethers“je po bitcoinu druhé nejoblíbenější slovo, které slyšíte v krypto-hype zprávách. Pro běžné lidi je to další kryptoměna a způsob, jak udělat nejtrendovější věc jménem ICO. Vývojáři na webu popisují Ethereum jako „tvůrce blockchainu pro vaše potřeby“. I to je možné, ano.

Pokud se ale ponoříte ještě hlouběji, éter není jen síť mincí. Jedná se o obrovský globální výpočetní stroj, kde uživatelé spouštějí kód programů jiných lidí (inteligentní smlouvy) a dostávají odměnu za každý provedený řádek. A to vše je decentralizované, nezničitelné a se všemi zárukami blockchainu.

O Ethereu a smart kontraktech se můžeme bavit tak dlouho, že to bude stačit na další takový příspěvek. Budeme proto jednat stylem top bloggerů: pokud bude tento příspěvek aktivně repostován a retweetován a do pátku získá alespoň 1500 unikátních zhlédnutí, napíšu pokračování o Ethereu a chytrých kontraktech.

Doporučuje: