facebook LinkedIN LinkedIN - follow
IT SYSTEMS 1-2/2020 , Trendy ICT

Fenomén blockchain

Část druhá: Princip blockchainu podrobně a popis technologie



Finex.czJak jste se již z našeho článku v minulém vydání IT Systems dozvěděli, blockchain není společnost, není to ani aplikace, ale spíše zcela nový způsob dokumentování dat na internetu. Tuto technologii lze poté použít k vývoji samotných aplikací na blockchainu, jako jsou sociální sítě, kryptoměny, komunikátory, hry, burzy, platformy pro ukládání dat, hlasovací systémy, predikční trhy, online obchody a mnoho dalšího.


Informace zaznamenané na blockchainu mohou mít jakoukoliv formu, ať už se jedná o převod peněz, vlastnictví, transakci, něčí totožnost, dohodu mezi dvěma stranami, nebo dokonce informaci o množství elektřiny spotřebované žárovkou. To však vyžaduje potvrzení od několika zařízení v síti, například počítačů. Jakmile je mezi těmito zařízeními dosaženo dohody, jinak také konsenzu, o uložení něčeho na blockchainu, je to nezpochybnitelné a nemůže být rozporováno, pozměněno či odstraněno.

Technologie blockchain se stala novým miláčkem 21. století. Ale ještě mnohem dříve, než tato technologie vznikla, existoval systém Digital Cash, který byl společností Chaum v roce 1983 koncipován tak, aby zvládl vyřešit koncepci dvojí útraty. V té době existovala také pokročilá kryptografie, ale nedokázala být slučitelná s centralizací nebo anonymitou transakcí. Takže o tři desetiletí později, v roce 2008, přišel Satoshi s bitcoiny, první decentralizovanou měnou na světě, která nahradila mechanismus podpisu digitálního centralizovaného serveru pro hotovostní platby, a to na základě konsenzuálního důkazu o práci. Řeší problém dvojí útraty a zlepšuje Chaumův koncept zavedením decentralizovaného platebního systému pomocí revoluční technologie blockchain.

Proč název blockchain?

Blockchain vděčí za svůj název tomu, jak funguje, a způsobu, jakým ukládá data. Konkrétně se jedná o to, že informace jsou zabaleny do bloků, které se spojují a vytvářejí řetězec s jinými bloky podobných informací. Právě tento akt spojování bloků do řetězce způsobuje, že informace uložené na blockchainu jsou tak důvěryhodné. Jakmile jsou data zaznamenána v bloku, nelze je změnit, aniž by bylo nutné měnit každý blok, který přišel za předchozím blokem. Tento princip znemožňuje provedení změn, aniž by to zároveň viděli ostatní účastníci v síti.

Každý blok standardně obsahuje data, která zaznamenává, například transakce, jako je token (kryptoměna), odesílaný od jednoho uživatele k druhému, a časová razítka, kdy byla tato informace zaznamenána. Bude také zahrnovat digitální podpis spojený s účtem, který provedl záznam, a jedinečné identifikační spojení ve formě hashe (považujte jej za digitální otisk prstu) s předchozím blokem v řetězci. Právě toto propojení znemožňuje změnu kterékoliv z informací nebo vložení bloku mezi dva existující bloky.

Za tímto účelem by bylo nutné upravit také všechny následující bloky. Výsledkem je, že každý blok posiluje předchozí blok a zabezpečení celého blockchainu, protože to znamená, že by bylo nutné změnit více bloků, aby se narušily jakékoliv informace.

Když se bloky spojí, všechny z nich vytvoří nesporné úložiště informací, které nelze zpochybnit nebo prohlásit za nepravdivé. Pokaždé tedy, když dojde k nové transakci, vytvoří se nový blok a připojí se k existujícím blokům, a odtud plyne název „blockchain“.

Všechny bloky jsou v síti aktualizovány současně a obsahují úplnou historii zúčastněných transakcí, čímž se udržuje řetězec integrity (neboli řetězec důvěry).

Detailní složení blockchainu

Uzly (Nodes)

Pokaždé, když dojde k transakci, musí být schválena uzly, z nichž každý kontroluje její platnost. Jakmile každý uzel zkontroluje transakci, dochází k elektronickému hlasování, protože některé uzly si mohou myslet, že je transakce platná, a jiné si myslí, že se jedná o podvod.

Uzly uvedené v příkladu výše jsou počítače. Každý uzel má kopii digitální knihy nebo blockchainu. Každý uzel kontroluje platnost každé transakce. Pokud většina uzlů říká, že transakce je platná, zapíše se do bloku. Pokud uživatel změní jednu položku, budou mít všechny ostatní počítače původní hash. Nedovolily by tedy, aby ke změně došlo. Uzly jsou použity kvůli obrovskému objemu záznamů, kdy jeden uzel (počítač) by si nemohl dovolit udržet tolik transakcí.

Protokoly

Blockchain sestává z individuálních specifikací chování, velké sady pravidel, která jsou do něj naprogramována. Tyto specifikace se nazývají protokoly. Implementace specifických protokolů v podstatě učinila blockchainem to, čím je ‒ distribuovanou databází typu peer-to-peer se zabezpečenými informacemi. Protokoly blockchain zajišťují, že síť běží tak, jak to zamýšleli její tvůrci, přestože je zcela autonomní a nikdo ji neovládá.

Digitální podpis

K provedení transakce potřebujete dvě věci. První věcí je peněženka, což je v podstatě adresa (neboli veřejný klíč). Dále potřebujete soukromý klíč. Soukromý klíč je řetězec zdánlivě náhodných čísel, který umožňuje podpis transakce z příslušné peněženky. Na rozdíl od adresy (veřejného klíče) musí být soukromý klíč udržován v tajnosti, aby nebyl zneužitelný.

Když se někdo rozhodne poslat kryptoměny komukoli jinému, musí podepsat zprávu obsahující transakci svým soukromým klíčem. Systém dvou klíčů je jádrem šifrování a kryptografie a jeho použití dlouho předchází existenci blockchainu. Poprvé byl navržen v 70. letech.

Jakmile je zpráva odeslána, je zaslána do sítě blockchain, a jak již bylo řečeno, poté síť uzlů na zprávě pracuje, aby se ujistila, že transakce, kterou obsahuje, je platná. Potvrzuje-li platnost, je transakce umístěna do bloku a poté není možné o ní měnit žádné informace.

Co jsou kryptografické klíče?

Kryptografický klíč je řetězec čísel a písmen. Kryptografické klíče jsou vytvářeny generátory klíčů neboli keygeny. Tyto keygeny používají velmi pokročilé matematiky zahrnující prvočísla k vytvoření klíčů.

Hashovací funkce detailně

Blockchain se rozsáhle spoléhá na hashe a hašovací funkce. Hash (výstup) je výsledek a transformace původní informace (vstupu). Hašovací funkce je matematický algoritmus, který vezme vstup a transformuje jej na výstup. Kryptografická hash funkce je charakterizována svou extrémní obtížností vrátit se, jinými slovy obnovit vstupní data pouze z hash hodnoty. Tomu se říká kolizní odpor.

Co je těžba?

Těžaři na blockchainu jsou v podstatě uzly, které produkují bloky řešením důkazů o pracovních problémech. Pokud těžař vytvoří blok, který je schválen elektronickým konsenzem uzlů, je tento těžař odměněn mincemi. Například v síti kryptoměny bitcoin nyní získávají těžaři 12,5 BTC za každý ověřený blok. V průběhu roku 2020 se však odměna za vytěžený blok sníží na polovinu, tedy za jeden blok těžaři získají 6,25 BTC. Odměna v podobě nově vzniklých mincí ovšem není jedinou pobídkou pro těžaře, aby pokračovali v provozování svého hardwaru. Dostávají také transakční poplatky, které uživatelé bitcoinů platí proto, aby jejich transakce hladce proběhla. V současné době, protože v bitcoinové síti dochází k velkému množství transakcí, se transakční poplatky nepatrně zvýšily. Přestože jsou poplatky ze strany odesílatele v podstatě dobrovolné, těžaři budou vždy dávat přednost převodům s vyššími transakčními poplatky. Pokud tedy nejste ochotni zaplatit dostatečný poplatek, zpracování bitcoinové, nebo jiné transakce může trvat velmi dlouho.

Proof-of-work

Funkce proof-of-work (důkaz o práci) je jádrem generování bloků v bitcoinovém protokolu. K přijetí nových bloků jsou vyžadovány kryptografické pracovní důkazy. Při ověřování transakcí a výpočtu důkazu o práci se bitcoin spoléhá na kryptografickou hash funkci, nazývanou dvojitý hashovací algoritmus SHA256, kde cílem je 256-bit (tj. extrémně velké) číslo, které sdílejí všichni klienti bitcoinů. Každý nově vyrobený blok dokládá, že byla provedena práce na jeho generování.

Proof-of-stake

Proof-of-stake (důkaz o podílu na účasti, důkaz o sázce) je navrhovanou alternativou k důkazům o práci, která již byla zavedena pro určité altcoiny (jiné měny než bitcoin). Namísto rozdělení bloků napříč úměrně relativnímu hašovacímu poměru těžařů (tj. jejich těžební síle) protokoly důkazu o sázce dělí bloky vkladů úměrně současnému bohatství těžařů.

Důkaz o podílu má řadu zřetelných výhod oproti důkazům o práci (nemrhající protokol, snížená pravděpodobnost útoku, potenciálně rychlejší blockchainy a další).

Základní rozdíly mezi Proof of Work a Proof of Stake
Základní rozdíly mezi Proof of Work a Proof of Stake

Shrnutí

Na závěr uvádíme důležité body a shrnutí vlastností a principu technologie blockchainu:

  • Blockchain je typ deníku nebo tabulky obsahující informace o transakcích.
  • Každá transakce vygeneruje hash.
  • Hash je řetězec čísel a písmen.
  • Transakce se zadávají v pořadí, ve kterém k nim došlo. Pořadí je velmi důležité.
  • Hash závisí nejen na transakci, ale také na hašování předchozí transakce.
  • Dokonce i malá změna v transakci vytváří zcela nový hash.
  • Uzly kontrolou hashe zkontrolují, zda transakce nebyla změněna.
  • Pokud je transakce schválena většinou uzlů, zapíše se do bloku.
  • Každý blok odkazuje na předchozí blok a společně tvoří blockchain.
  • Blockchain je účinný, protože je rozložen na mnoha počítačích, z nichž každý má kopii blockchainu. Tyto počítače se nazývají uzly.

Finex.cz

Článek vznikl ve spolupráci s finančním magazínem Finex.cz.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.