Hlavní navigace

Jak porozumět blockchainu v deseti minutách aneb Jak funguje technicky a k čemu je

Autor: Depositphotos
Karel Wolf

Nejdřív vyřešíme problém byzantských generálů a pak si ukážeme, jaké jsou výhody a nevýhody a také praktické způsoby využití blockchainu.

V prvním dílu jsme si fungování blockchainu vysvětlili nejjednodušeji, jak to jen šlo – bez technických podrobností, které by laikovi porozumění ztěžovaly. Dnes se ponoříme do technických úskalí veřejného blockchainu.

Pokud jste četli předchozí článek pozorně, určitě vás napadlo více technologických výzev, které decentralizovaný systém jako blockchain musí splňovat, aby se nezhroutil.

  1. Jak zajistit platnou synchronizaci našich lokálních kopií „účetních knih“.
  2. Jak dosáhnout distribuované shody v případě konfliktních záznamů, když nad systémem nedohlíží centrální autorita, která by v případě neshody řekla: „Platí tahle varianta, a komu se to nelíbí, ehm, má prostě smůlu.“
  3. Jak včas odhalit a eliminovat v síti podvodníka.

Na všechny tři problémy existuje stejná odpověď. Jedná se totiž pouze o různé manifestace problému byzantských generálů, což je oblíbený matematický hlavolam někdy z roku 1982. Představme si rozsáhlou byzantskou armádu, která obléhá město (třeba Konstantinopol, ale není to podstatné). Armáda je kvůli své velikosti rozdělena na desítky divizí s vlastními generály a nemá centrální velení. Mezi sebou komunikují generálové prostřednictvím poslů, to je jediná možná cesta, pomocí které mohou časem dosáhnout zamýšlené shody o útoku.

Generálové mají stejný cíl, ale na konkrétním čase pro útok se musejí shodnout. Co když se ale mezi nimi najde jeden, nebo několik zrádců, kteří záměrně vysílají posly s falešnými zprávami. Nebo, co když je pár zrádců přímo mezi posly? Generálové potřebují algoritmus, který jim umožní se dohodnout i za předpokladu, že je mezi nimi malé množství zrádců. Navíc platí, že čím více generálů, tím více vzniká i komunikačních kanálů a množství příležitostí pro nedůvěru roste exponenciálně.

Pokud vám přijde tento problém neřešitelný, nezoufejte, před vámi jej řešilo velké množství špičkových matematiků a nedá se říci, že zrovna dvakrát úspěšně. S elegantním řešením problému přišel až tajemný vynálezce (nebo tajemní vynálezci) Bitcoinu, Satoshi Nakamoto, který na to šel velmi nematematicky. Satoshi použil metodu, kterou znal každý partyzánský velitel nebo vůdce revoluční buňky, když přijímal nového člena (a potenciálního infiltrátora a zrádce), a to důkaz prací.

Důkaz prací (proof of work) vypadá v digitálním světě asi trochu jinak, než si revolucionáři představovali, ale to nevadí. Fyzickou práci ve světě blockchainu nahrazuje na zdroje velmi náročný několikanásobný matematický výpočet, jehož výsledkem je tzv. hash bloku (náš klíč k podepsání dopsané stránky/bloku). Ověřování transakcí tak stojí aktivního uživatele (v prostředí Bitcoinu se jim říká „mineři“) nemalé množství výpočetní kapacity a elektrické energie, a to bez záruky (vzpomeňme na zakomponovaný prvek náhody), že za to budou pokaždé náležitě odměněni.

Samotná síť (ostatní mineři a uživatelští klienti – nody) pak v případě, že k ní dorazí dvě verze blockchainu, uzná za správný ten, který je tzv. nejdelší, tedy ten, který obsahuje nejvíce validovaných bloků. To je celkem důležité, neboť nejdelší řetězec se také rovná největší kombinované obtížnosti, jinými slovy se na něm shodlo nejvíce minerů.

Řešení problému byzantských generálů se tedy dá shrnout do jednoduché rovnice:

Řešení BGP = náhodou řízená „práce“ (výpočet) k produkci dalšího bloku + volba nejdelšího blockchainu (největší kombinované obtížnosti)

Pokud by chtěl jeden miner (z pohledu naší analogie účetní) například utratit transakci v jednom bloku a ten vzápětí zneplatnit tím, že vytěží další blok, ve kterém taková transakce nikdy neproběhla, stojí sám proti zbytku sítě, a nemá tak nejmenší šanci. Tedy alespoň do doby, než se mu podaří pro svůj záměr získat alespoň 51 % všech minerů (pak hovoříme o tzv. 51% útoku na síť), nebo díky enormním materiálním zdrojům nezíská výpočetní kapacitu, která mu umožní vytěžit (alespoň statisticky) většinu bloků. Vzhledem k zakomponovanému prvku náhody by však druhý způsob byl nejen materiálně neskutečně nákladný, ale šlo by také o docela nejistý byznys.

Varování: Ještě o něco hlubší technologický ponor

Pokud by někoho zajímalo, jak to vypadá v reálné praxi, pak je postup zhruba následující.

Miner nejprve vezme hash předchozího bloku, přidá k ní blok s nově potvrzenými transakcemi a (zde vstupuje onen prvek náhody) hádá tzv. nonci, což je náhodné, nebo pseudonáhodné unikátní číslo, které slouží k autentizaci. Když je s tím vším hotov, aplikuje na tento balíček kryptografickou funkci (v případě bitcoinu algoritmus SHA-256), která vytvoří tzv. data hash. Hash je převod vstupních dat do relativně krátkého číselného řetězce, který slouží jako unikátní (alespoň v praxi, teoretický matematik by mohl mít praktické námitky) digitální otisk dat. Z něho si již sice původní data nikdy neodvodíme, ale zato nám perfektně odhalí, pokud dojde k například k poškození nebo modifikaci dat (původní data a hash se přestanou shodovat).

Pokud by se například někdo pokusil podvrhnout nějaký starší blok, změnila by se díky unikátnosti každé hashe celá navazující struktura, miner by tedy musel znovu vytěžit všechny navazující bloky a být přitom rychlejší než celý zbytek sítě (již víme, že síť vždy věří nejdelšímu řetězci).


Autor: Karel Wolf

Mohlo by se zdát, že nyní již má miner klid, ale není to tak. Hash je třeba nejprve ověřit proti žádanému vzoru (v případě Bitcoinu jde o to, kolik 0 má být na jejím začátku), který prozradí, zda-li uhádl náhodné číslo správně. Teprve pokud vše sedí, je problém vyřešen, miner dostává odměnu a všichni se vrhají na řešení dalšího bloku. Pokud ovšem počet 0 nesedí, nedostane miner nic, musí hádat nové číslo a celý proces opakuje. Jo, těžení kryptoměn je tvrdá řehole.

Na závěr této části se ještě sluší dodat, že proof of work není jediným způsobem, jak zajistit férovou distribuci transakcí v blockchainu. Mezi další možnosti patří například proof of stake založený na držení tokenů, proof of burn postavený na znehodnocování již držených tokenů, nebo třeba proof of resources, využívající sdílení zdrojů (využívá jej třeba blockchainový projekt Maidsafe, který se snaží vytvořit decentralizovaný a plně autonomní Internet). Proof of work ale zatím zůstává nejvíce prozkoumanou a přes svou energetickou náročnost zatím stále nejefektivnější metodou distribuce transakcí v rámci blockchainu.

Pokud máte takové nejasné tušení, že jsme na něco zapomněli, gratuluji, máte výborný postřeh. V obou článcích jsme se totiž zabývali jen základní mechanikou samotného blockchainu. Jak ale například identifikujeme jedinečného vlastníka digitálního tokenu, který je oprávněný s ním provádět transakce, a jak jsou v blockchainu samotné transakce reprezentovány? Zde opět přichází na pomoc kryptografie a digitální klíče, o tom si ale povíme více zase v nějakém článku věnovaném přímo kryptoměnám.

Kde všude může blockchain nalézt své uplatnění

Blockchain oproti tradičním databázím neskýtá jen samé výhody. Je například mnohem pomalejší a nákladnější na provoz, a tak jeho nasazení dává smysl zejména tam, kde z nějakého důvodu nechceme nebo nemůžeme plně důvěřovat zprostředkující autoritě (bance, certifikační či ratingové autoritě, nebo třeba veřejnému úřadu). Naopak nedává příliš smysl tam, kde je předností rychlost, nebo se tak či tak bez nadřazené autority neobjedeme (například databáze kontraktů uvnitř firmy). Na druhé straně transakce nemusí být nutně pouze finanční (data mohou reprezentovat prakticky cokoli), a tak jsou možnosti využití téměř nekonečně.

Jaké konkrétní výhody přináší blockchain v porovnání s tradičními databázemi? Popravě je jich opravdu hodně. Já jsem vybral tři:

  1. decentralizovaná a sdílená kontrola
  2. nezkorumpovatelnost a nezměnitelnost jednou odsouhlasených záznamů
  3. dává aktivům novou šťávu

Decentralizovaná a sdílená kontrola

Sdílená kontrola a praktická nezkorumpovatelnost umožňuje dvěma soupeřícím stranám spolupracovat k oboustranné spokojenosti. Toho využívají například Open Music Initiative nebo UjoMusic, což jsou blockchainové projekty, které zjednodušují hlídání práv a kompenzace hudebníkům a držitelům práv k hudebním nahrávkám (takže není potřeba žádná OSA).

Blockchainová řešení mohou významně snižovat napětí a mocenské třenice například při vytváření oborového konsorcia, neboť zúčastněné strany nemusejí svěřovat kontrolu nad infrastrukturou do rukou jedné entity. Konkrétním případem, kdy se tak děje v praxi, je bankovní konsorcium R3, které dnes sjednocuje 43 jinak soupeřících bankovních domů.

Pokud je síť decentralizovaná a dostatečně otevřená pro všechny, zbývá již jen krůček (dostatečný network efekt), aby se stala novou veřejnou službou, podobně jako se to stalo internetu a WWW. Pro příklady nemusíme chodit daleko, Bitcoin jako „internetové peníze“, Ethereum jako jednoduchý decentralizovaný nástroj pro digitální procesování, nebo třeba IPFS (InterPlanetary File System) jako ukázka decentralizovaného souborového systému (není zdaleka jediný).

Blockchain také může zajišťovat interoperabilitu jinak nespolupracujících protokolů a dávat nám tak větší nezávislost volby. Pěkným příkladem jen třeba ILP (Interledger protocol), který umožňuje posílání plateb napříč několika různými blockchainy (takový blockchainový internet), nebo dokonce i venkovními databázemi třetích stran (například platba z Bitcoinu, do Etherea, nebo dokonce ven na SWIFT).

IPLD (Interplanetary Linked Data) pro změnu zase umožňuje, aby rozsáhlé datové struktury nebyly vázány na platformu, ve které byly vytvořeny, ale šlo s nimi efektivně pracovat v jakémkoli prostředí (taková elegantnější obdoba datového zápisu JSON).

Nezkorumpovatelnost a neměnitelnost jednou odsouhlasených záznamů

Zapsat data do (veřejného) blockchainu je podobné jako vytesat je do kamene, nebo jako když pravěká vážka zůstane uvězněná v kusu jantaru – obojí je tam už víceméně navždy.

To je užitečné, například pokud jde o zápisy v katastru nemovitostí (projekty typu BenBen, Bitfury, Velox.re), které umožňují eliminovat podvody (neoprávněné nakládání s nemovitostmi, zpronevěry finančních záloh – platbu je možné zahrnout rovnou do smart kontraktu) a snížit celkové náklady na zápis a provoz databáze.

Velmi jednoduchou a přitom vysoce efektivní aplikaci představují akademické certifikáty, které jsou v blockchainu snadno dohledatelné a ověřitelné, ale hlavně také trvalé (není třeba vystavovat úředně potvrzované kopie jako v případě ztráty papírové verze). Další aplikací jsou například efektivnější finanční audity, prověřování autenticity a sdílení práv k autorským a uměleckým dílům (Ascribe), nebo třeba sledování původu retailového zboží (například Provenance umožňující zjistit, odkud pocházejí jednotlivé potraviny nebo jejich součásti).

Velmi slibný nový trh, který byl vynálezem blockchainu umožněn, jsou také decentralizované předpovědi. Řešení na nich postavená umožňují zcela necenzurovaně předpovídat události a odměňovat ty, kdo je předpověděli, nebo si na ně prostě vsadili. Pěkným příkladem takového trhu s předpověďmi je třeba Augur, což je open-source, decentralizovaná predikční platforma postavená na smart kontraktech blockchainu Ethereum, nebo Gnosis. Trhy s decentralizovanými předpověďmi budí ale také řadu obav, a to jak mezi regulátory, tak například etickými filozofy.

Oživení starých aktiv

Pokud víme, že jsou záznamy trvalé, nezkorumpovatelné a nevládne nad nimi jedna entita, otevírají se nám úplně nové možnosti práce s našimi aktivy. Výhody jsou zde podobné jako při vedení podvojného účetnictví – větší pořádek a výrazně menší šance se dopustit nějaké chyby. O takovou aplikaci blockchainu na akciový pool se pokouší tradiční americká burza NASDAQ (Chain), v energetické oblasti zase společnosti RWE a EEX s projektem GridSingularity, nebo projekt The Brooklyn Microgrid pro férový výkup energie ze solárních panelů na rezidenčních budovách.

Ze služeb pro koncové uživatele pak určitě nesmíme zapomenout na decentralizovanou platformu pro sdílení jízd jménem Arcade city, která si neklade o nic menší cíl než nahradit centralizovaný Uber.

Našli jste v článku chybu?