Blockchain

Z Wikipedie, otevřené encyklopedie
Jump to navigation Jump to search

Blockchain 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 zamezit neoprávněné transakce.

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. Pracovní návrhy obsahovaly mj. slova blokčejn, bloksíť, bloknet apod.[1]

Hlavní výhody[editovat | editovat zdroj]

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. 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í.
  • 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ého datasetu.

Základní princip[editovat | editovat zdroj]

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). 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 | editovat zdroj]

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.

Řešení problému vícenásobného utrácení[editovat | editovat zdroj]

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 mínusu, 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[2], kdy vlastník víc jak 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,[3] aby se zachovala důvěra v samotnou kryptoměnu bitcoin.

Block time[editovat | editovat zdroj]

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 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 | editovat zdroj]

Jiné datové struktury[editovat | editovat zdroj]

Existují však principiálně odlišné přístupy k fungování decentralizovaných databází. 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.[4] Ta tvoří transakce tak, že vždy musí potvrdit dvě náhodně vybrané platby v celém datovém shluku.[5]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Block chain (database) na anglické Wikipedii.

  1. https://www.blockchain.cz – přeložme „blockchain“ společně do češtiny!
  2. TRADE-ARENA.CZ. Co je a jak funguje 51% útok u Bitcoinu | Trade-Arena.cz. www.tradearena.cz [online]. [cit. 2018-02-26]. Dostupné online. 
  3. Bitcoin Miners Ditch Ghash.io Pool Over Fears of 51% Attack. CoinDesk. 2014-01-09. Dostupné online [cit. 2018-02-26]. (anglicky) 
  4. IOTA - kryptoměna, co nepotřebuje mining. Jaký je kurz? - E15.cz. E15.cz. Dostupné online [cit. 2018-05-02]. 
  5. 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]. (česky) 

Externí odkazy[editovat | editovat zdroj]