Blockchain

distribuovaná decentralizovaná databáze

Blockchain (z angl. „blokový řetězec“[pozn. 2]) je v informatice speciální druh distribuované decentralizované databáze uchovávající neustále se rozšiřující počet záznamů, které jsou chráněny proti neoprávněnému zásahu jak z vnější strany, tak i ze strany samotných uzlů peer-to-peer sítě. Nejčastější aplikací technologie blockchainu je použití jako účetní kniha kryptoměn (např. bitcoinu), jež uchovává transakce provedené uživateli. Kombinace s kryptografií umožňuje zajistit anonymitu operací a zabránit neoprávněným transakcím.

Uspořádání bitcoinového blockchainu[1][pozn. 1]

Jednoslovný český ekvivalent pro anglický termín „blockchain“ dlouho chyběl. Od začátku roku 2017 běžel na stránkách blockchain.cz projekt, který si kladl za cíl takové slovo vybrat. Nakonec bylo vybráno slovo bločenka[pozn. 3]. Pracovní návrhy obsahovaly mj. slova blokčejn, bloksíť, bloknet apod.[2] Termín bločenka se používá v odborné literatuře, například v monografii Kryptoměny.[3]

Blockchain byl vytvořen osobou (nebo skupinou lidí) používající jméno (nebo pseudonym) Satoshi Nakamoto v roce 2008, aby sloužil jako veřejná distribuovaná kniha pro transakce s bitcoinovou kryptoměnou, založená na předchozí práci Stuarta Habera, W. Scotta Stornetty a Dave Bayera.[4]

Hlavní výhody

editovat

Mezi hlavní výhody blockchainu patří:

  • Schopnost velkého počtu uzlů dospět k jednomu konsenzu ohledně nejaktuálnějšího stavu velkého množství dat, například záznamů v účetní knize (anglicky ledger). To platí i v případě, kdy jsou jednotlivé uzly anonymní, připojeny přes nespolehlivé spojení jeden k druhému, či vedeny podvodníky, kteří se snaží transakce upravovat ve svůj prospěch.
  • Schopnost kteréhokoliv uzlu rozhodnout se s přijatelnou mírou jistoty, že zadaná transakce do blockchainu spadá či nikoliv.
  • Schopnost libovolného uzlu, jenž vytvořil či přijímá transakci, po nějaké době rozhodnout s ucházející mírou jistoty, zda je transakce validní a začlenitelná do blockchainu natrvalo a zda nedošlo ke kolizi dvou transakcí. To je důležité k řešení problému double-spendingu (dvojutrácení).
  • Dostatečně velká překážka, která brání útočníkům v úpravách či přepsání transakcí. Všechny výměny/transakce jsou ukládány v jednotlivých blocích, které na sebe lineárně navazují. V době, kdy by chtěl uživatel změnit svou transakci, je její blok schován např. za již 10 dalšími bloky. Jelikož je každý blok zapečetěn digitálním podpisem, který se generuje na základě informací uložených v bloku, při pokusu o změnu transakce by se přepsal i tento podpis. Zároveň by se však přepsaly i veškeré podpisy v následujících blocích. A to není vše, jelikož se musí daná účetní kniha (anglicky ledger) shodovat s ostatními kopiemi v síti, musel by „záškodník“ provést 51% útok, tedy ovládat většinu sítě, což je ekonomicky extrémně nákladné.[5][6]
  • Automatická forma řešení konfliktních transakcí, která zajišťuje, že nevalidní transakce (například snaha utratit částku na účtu vícekrát) se nikdy nestanou součástí potvrzené kolekce dat – datasetu.

Základní princip

editovat
 
Tento ukázkový blockchain se skládá z jeho hlavní větve (černá) navázané až k základnímu bloku (genesis block, zelená) a opuštěných větví (fialová), na které se už další bloky nenavázaly (za opuštěnou větev se považuje ta větev, která je kratší než ta hlavní).[pozn. 4]

Implementace blockchainu sestává ze dvou druhů záznamů: transakcí a bloků. Transakce představují data vložená do databáze uživateli, bloky pak záznamy potvrzující, kdy a jak byla konkrétní transakce přidána do databáze blockchainu. Transakce jsou vytvářeny uživateli, kteří systém používají jako databázi (v případě kryptoměn jako účetní knihu – anglicky ledger). Bloky oproti tomu vytváří těžaři, kteří používají software či hardware vytvořený specificky k vytváření bloků.

Transakce vytvořené uživateli jsou volně předávané od uzlu k uzlu podle toho, kdo má zrovna s kým navázané spojení. Definice validní transakce se liší v závislosti na standardu, jenž implementuje většina uzlů v síti. V případě většiny kryptoměn je za validní transakci většinou považována taková, která má správný elektronický podpis uživatele, utrácí peníze z existující peněženky, ke které uživatel podpisem prokazuje vlastnictví, a zároveň splňuje několik dalších podmínek, jako třeba patřičný honorář (fee) pro těžaře nebo uplynutí dostatečné doby od chvíle, kdy byla zadána poslední transakce s tímto kusem měny.

Těžaři se pak snaží vytvořit blok, který potvrzuje a začleňuje tyto transakce do blockchainu. V kryptoměnách založených na bitcoinu jsou těžaři motivováni k těžení dvěma druhy odměn: předdefinovanou odměnou za vytěžený blok a transakčními poplatky či honoráři (fee), které jsou vyplaceny kterémukoliv těžaři, který správně potvrdí transakci.

Decentralizace

editovat

Každý uzel v síti decentralizované kryptoměny obsahuje kompletní či částečnou kopii blockchainu. Tím je vyřešen problém centralizované databáze, kterou používají ostatní technologie, jako například bankovnictví nebo PayPal. Zatímco běžná účetní kniha pouze pasivně zaznamenává přesuny peněz, bankovních poukázek či příkazů k úhradě, které existují nezávisle na této knize, v případě kryptoměn jsou jednotky měny a blockchain pevně spojeny. Blockchain lze v těchto případech považovat za jediné místo, kde jednotky kryptoměny existují ve formě neutraceného součtu všech transakcí.

Transakce ve formě záznamů plátce X posílá Y jednotek měny příjemci Z jsou propagovány celou sítí použitím softwarových prostředků a asymetrické kryptografie. Kterýkoliv uzel sítě je schopen tuto transakci ověřit, přidat do kopie své účetní knihy a přeposlat tyto přírůstky ostatním uzlům.

Typy blockchainů

editovat

V současné době existují jak decentralizované, tak i centralizované blockchainy.

Bitcoin jako nejstarší existující blockchain je decentralizovaný a veřejný, stejně tak většina alternativních blockchainů v obecném povědomí, např. Ethereum, Monero, Litecoin a ostatní veřejně obchodovatelné alternativní kryptoměny. Ve finančním průmyslu se však již od roku 2014 experimentuje s využitím soukromých blockchainů pro účely privátních obchodních transakcí. Tyto buď zcela soukromé nebo tzv. consortium blockchainy omezují přístup k jejich transakcím pouze na autorizované členy příslušné společnosti nebo obchodní sítě (konsorcia).

Ačkoliv všeobecně panuje názor, že provoz soukromých a consortium blockchainů je zbytečně drahý a mohly by být použity klasické databázové systémy, někteří lidé z oboru finančních technologií a obchodního kreditu argumentují, že operační náklady jsou jen jedním z aspektů ceny provedení obchodní transakce. V průmyslu tak komplikovaném jako je mezinárodní obchod mohou být provozní náklady blockchainů vyváženy úsporami v administrativě.[7]

Řešení problému vícenásobného utrácení

editovat

V decentralizovaných distribuovaných databázích vzniká nový druh problému, který je v případě klasických (centralizovaných) databází řešen atomicitou systémových operací. Jedná se o takzvaný double spending problém, česky též problém dvojutrácení, víceutrácení či problém vícenásobného utrácení. Tento problém bránil prakticky do vzniku bitcoinu vytvoření distribuovaných databází.

Problém vzniká, jestliže dva či více uzlů v topologicky vzdálených bodech sítě ve stejný okamžik zadají transakce přikazující přesun peněz ze stejného účtu tak, že ve výsledné sumě je přesunovaná částka větší než zůstatek. Stav, kdy by po určitém čase došlo k propagaci všech zadaných transakcí, by vedl k nekonzistenci zůstatků na účtech. Ty by se tak mohly dostat do minusu, což by v konečném důsledku vedlo ke ztrátě důvěry v síť a její zánik.

Různé kryptoměny se s tímto problémem vyrovnávají různými způsoby, nejčastěji použitím systémů decentralizovaných časových razítek a hlasování o pořadí transakcí založených na algoritmech proof of work (hlasování na základě prokázaného vlastnictví výpočetního výkonu) či proof of stake (hlasování na základě prokázání vlastnictví podílu kryptoměny).

V obou případech může dojít k takzvanému 51% útoku, kdy vlastník víc než 51 % kryptoměny či výpočetního výkonu získává možnost i zpětně upravovat blockchain a zneplatnit již proběhnuté transakce tak, že svojí vytvořenou blockchainovou větví předstihne již existující větev. 51% útok ale neumožňuje vytvářet a podepisovat transakce u účtů, ke kterým nemá útočník přístup. Většina implementací kryptoměn tak obsahuje ještě další, dodatečné pojistky, které mají vést k diverzifikaci sítě těžařů (memory hard hashovací algoritmy), aby těmto útokům bylo možné předcházet. Demotivací pro samotné útočníky je vysoká vstupní investice, kdy je potřeba překonat množství držené kryptoměny nebo výpočetního výkonu celého zbytku sítě. I kdyby se ale takový útok skutečně podařil, klesla by důvěra v danou kryptoměnu a s ní i její hodnota, čímž by se stal útok velmi nevýhodným. Některá těžařská uskupení, takzvané mining pooly, která měla až moc vysoké procentuální zastoupení výkonu, sama svůj výkon snížila nebo je opustili sami těžaři,[8] aby se zachovala důvěra v samotnou kryptoměnu bitcoin.

Nevýhody blockchainové technologie

editovat

Velkou nevýhodou blockchainu představuje problém jeho nadměrného využívání. Vytvoření jednoho bloku nějaký čas trvá, přičemž při globálním využití by mohl být tento systém snadno přetížen a neúnosně by se zpomalil. Lze však předpokládat, že dokud tento problém nebude vyřešen, k všeobecné aplikaci blockchainové technologie nedojde.

Další problém blockchainové struktury je nadměrná spotřeba elektrické energie. Podle dostupných dat má provoz a přidávání nových transakcí do bitcoinové databáze spotřebu srovnatelnou s třetinou roční spotřeby elektrické energie České republiky.[9]

Nevýhodou je také nutnost připojení k internetu, který stále není v některých oblastech světa samozřejmostí.

Nakonec také pro blockchainovou technologii platí, že i ona se může stát ve špatných rukách škůdcem, nikoliv pomocníkem. Totalitní vlády by například tuto technologii mohly využívat k absolutní kontrole svých občanů. S její pomocí by byl okamžitě odhalený každý protivládní či nevhodný krok.[9]

Block time

editovat

Pojem block time představuje parametr udávající dobu mezi dvěma vydanými bloky. Většina kryptoměn používá block time v řádu desítek minut (10 minut v případě bitcoinu), poslední dobou[kdy?] se ale objevují nové systémy, které tuto dobu snižují na řádově desítky sekund. Příkladem takového systému je třeba Ethereum, které se pohybuje mezi 10–20 sekundami.

Parametr block time hraje důležitou roli při ověřování validity transakcí, neboť většina systémů považuje transakci kvůli problému vícenásobného utrácení za validní až po několika dalších blocích (v případě bitcoinu jich je šest), do kterých je transakce začleněna.

Obecně se tedy dá říci, že čím kratší čas mezi vydáním dvou bloků, tím rychleji mohou probíhat důvěryhodné obchodní transakce.

Implementace

editovat

Jiné datové struktury

editovat
 
Porovnání ukázkového uspořádání blockchainu a tanglu

Existují však principiálně odlišné přístupy k fungování decentralizovaných databází, které mohou vyřešit některé nevýhody dané blockchainovým řešením. Vedle blockchainu existuje rovněž takzvaný tangle, datová struktura založená na acyklickém grafu. Tangle lze připodobnit ke shluku jednotlivých bodů, nejedná se tedy o řetězec. Příkladem kryptoměny, která tangle využívá, je IOTA.[13] Ta tvoří transakce tak, že vždy musí potvrdit dvě náhodně vybrané platby v celém datovém shluku.[14]

Použití technologie blockchain

editovat

Kromě kryptoměn má blockchainová technologie také další využití, které je již zavedeno nebo na své zavedení teprve čeká. Výhodně ji lze aplikovat například v těchto situacích:[zdroj⁠?!]

  • Decentralizované volby – Několikrát již nastala situace, kdy bylo s demokratickými volbami manipulováno. Blockchain by mohl takovým problémům zamezit, neboť by byl v rukách občanů a s daty by nemohl nikdo tajně manipulovat. Myšlenka takto uskutečněných voleb má dnes mnoho svých příznivců, k nimž patří také občané z Gruzie nebo Ukrajiny.
  • Zápis v katastru nemovitostí – Zápis v podobě blockchainu nikdo nevymaže a v katastru nemovitostí bude zapsán navždy. Zamezilo by to neoprávněnému nakládání s nemovitostmi, zpronevěrám finančních záloh atd. Systém také sníží náklady na zápis a provoz databáze. Několik takových projektů je proto již v jednání.
  • Autorská a umělecká díla – S érou internetu se objevil problém nelegálního kopírování hudby, knih i filmů. Také tento problém může technologie blockchain vyřešit. Umožní vytvářet po vzoru bitcoinu a jeho nereplikovatelných tokenů[pozn. 5] také nereplikovatelnou kopii média. Přesně o to se pokouší RIAA.
  • Finanční sféra – Technologie blockchainu by zde umožnila snáze a efektivněji provádět například finanční audity, kdy se místo namátkové kontroly transakcí zkontrolují všechny transakce za použití specifického kódu. Díky tomu půjdou snáze odhalovat podvody.
  • Přeprava zboží a původ věcí – Již v dubnu 2018 oznámily společnosti IBM a Helzberg Diamonds spolupráci, při níž vyvinula společnost IBM blockchainovou technologii s názvem TrustChain. Právě TrustChain má ověřovat pravost diamantů, drahých kovů nebo šperků. Tuto technologii využívá také Wal-Mart ke sledování dodávek vepřového masa z Číny a přepravní gigant Maersk pro sledování přepravovaných kontejnerů.
  • Zamezení odcizení identity – Technologie blockchain by také mohla pomoci s ochranou identity, která byla jen v roce 2017 ukradena celkem v 16,7 miliónů případech.[9]

Poznámky

editovat
  1. Hodnota popsaná jako
    • Timestamp“ je časová značka daného bloku (kdy byl vytvořen)
    • Nonce“ je kryptografická nonce daného bloku (zpravidla náhodné číslo používané pro větší odolnost vůči podvržení bloku)
    • Prev_Hash“ (v použitém zdroji označovaný jako „prev_block“) je otisk (hash) předchozího bloku na který blok navazuje
    • Tx_Root“ (v použitém zdroji označovaný jako „merkle_root“) je souhrn otisků transakcí (hashů) zaznamenaných v bloku → tento souhrn je v podobě otiskového stromu
    Tx“ je ve zdroji označení pro transakci
    otisk transakce“ je rozpoznávacím číslem (ID) dané transakce
    otisk bloku“ je rozpoznávacím číslem (ID) daného bloku
    hash“ (otisk) je hodnota (klíč) s pevně danou délkou přiřazená k libovolné jednotce (jménu, nezaměnitelnému žetonu, peněžnímu obratu v daném období) pomocí nějaké hashovací funkce
  2. Tento možný doslovný překlad je odvozen z českého překladu anglického sousloví „food chain“ (potravinový řetězec) (čeština už ale má náhradu (ekvivalent) slova „blockchain“ → bločenka)
  3. Mezi synonyma ke slovu bločenka může patřit slovo bloksled, zkráceně blox (slova „bloksled“ a „blox“ jsou přejata z diskuse o tomto hesle)
  4. Pokud na jeden blok odkazuje více bloků, vznikne v tomto případě „větev“.
    Každá z těchto větví je spojená se zbytkem blockchainu a má společného předka (základní blok) s hlavní větví.
    Větve tedy nezpochybňují celistvost blockchainu, poněvadž žádná větev tohoto blockchainu nemůže fungovat a vyvíjet se samostatně, nevylučuje ovšem možnost více hlavních větví.
  5. Žeton je v daném blockchainu jednotka (objekt) složená z obsahu, rozpoznávacího čísla (ID) a popřípadě dalších údajů (jména, symbolu, atd.) V Ethereu jsou žetony popsané v ustanoveních (standardech) „ERC-20 “ (žeton) a „ERC-721“ (o nezaměnitelném žetonu)
    Nezaměnitelný žeton nemá pevně stanovenou cenou
    (zaměnitelnost znamená, že má daný předmět (třeba euro) hodnotu stanovenou kurzem, a tedy se dá dělit na menší díly se stejným poměrem (u eura jsou to eurocenty, setina hodnoty eura) což nezaměnitelné věci (třeba rádio) nemají (jejich prodejní cena je různá, za součástku z rádia nebo auta nemusí mít vždy peněžní částku odpovídající poměru k hmotnosti či ceně takového rádia nebo auta)
    Žeton samotný se může připodobnit k obrázku v odborné knize (s očíslováním, obrázkem, a popiskem) (v odborné knize by to mohlo být
    - „obr.33 “, „Vlajka České republiky“, „Před vyhlášením nezávislého státu byla historickou vlajkou Čech bíločervená bikolóra, která je dnes vlajkou Polska“)
    Žeton může mít také „obsah“ (Vlajka České republiky), "sériové číslo" (33), a k sobě přiložený popisek v podobě textového řetězce (stringu)

Reference

editovat

V tomto článku byl použit překlad textu z článku Blockchain na anglické Wikipedii.

  1. Protocol documentation [online]. [cit. 2022-04-18]. Dostupné online. 
  2. https://www.blockchain.cz Archivováno 9. 2. 2022 na Wayback Machine. – přeložme „blockchain“ společně do češtiny!
  3. LÁNSKÝ, Jan. Kryptoměny. 1. vyd. Praha: C. H. Beck, 2018. 160 s. ISBN 978-80-7400-722-4. 
  4. NAKAMOTO, Satoshi. Bitcoin: A Peer-to-Peer Electronic Cash System [online]. [cit. 2022-10-14]. Dostupné online. 
  5. Vysvětlení Blockchainu pomocí výměny hokejových kartiček!. [s.l.]: [s.n.] Dostupné online. 
  6. Vysvětlení Blockchainu pomocí hokejových kartiček. FIRA Media [online]. 2019-08-09 [cit. 2019-08-15]. Dostupné online. 
  7. TRANG, Diana. Christophe Spoerry on blockchain technology in trade finance: Operational cost is only one aspect. Business of Crypto. 2018-10-31. Dostupné online [cit. 2018-11-03]. (anglicky) 
  8. Bitcoin Miners Ditch Ghash.io Pool Over Fears of 51% Attack. CoinDesk. 2014-01-09. Dostupné online [cit. 2018-02-26]. (anglicky) 
  9. a b c FINEX, Magazín. Blockchain - Co je blockchain a jak funguje? [Aktuální 2019] » Finex.cz. finex.cz [online]. [cit. 2019-02-05]. Dostupné online. 
  10. DTube App. github.com [online]. 2022-04-20 [cit. 2022-04-22]. Original-date: 2018-05-12T18:55:15Z. Dostupné online. 
  11. cena, grafy, tržní omezení a další metriky Dtube Coin (DTUBE). CoinMarketCap [online]. [cit. 2022-04-22]. Dostupné online. 
  12. Wiki:README (FAQ) - DTube [online]. [cit. 2022-04-22]. Dostupné online. 
  13. IOTA - kryptoměna, co nepotřebuje mining. Jaký je kurz? - E15.cz. E15.cz. Dostupné online [cit. 2018-05-02]. 
  14. MIKSA, Martin. IOTA: kryptoměna nové generace, která se může stát základem internetu věcí. Živě.cz. Dostupné online [cit. 2018-05-02]. 

Externí odkazy

editovat