Technologie 

Blockchain pro začátečníky: Potvrzování a sledování transakcí – díl třetí

Z předchozích dvou dílů víme, na jakém principu blockchain funguje a známe specifika platebního procesu. Zatím jsme ale sledovali ideální modelovou situaci. Co se tedy stane, když bude chtít někdo systém zneužít nebo se zkrátka vloudí nějaká chybička? A víte, jak funguje potvrzování a sledování transakcí nebo jakou roli hraje v celém procesu řetězení? Na to se podíváme v následujících třech „co když...“ situacích.

Seriál o blockchainu pokračuje, ještě než se pustíme do dalšího tématu, připomeňte si specifika platebního procesu v prvním a druhém dílu.

1)  Co když… někdo nebude potvrzovat správné transakce a omezí tak provádění transakcí?

Nepotvrzení správné transakce nemusí být vždy záměrné. Může k tomu dojít i v případě, že si někdo uchovává jinou databázi než ostatní, například důsledkem chyby. Abychom byli schopni odpovědět, musíme se podívat na to, jakým způsobem blockchain řeší ukládání informací a jak zajišťuje integritu ukládaných dat.

Nejprve si představme transakční systém, který není tvořen jen čtyřmi přáteli, ale miliony lidí. Kdybychom vždy čekali na potvrzení nadpoloviční většinou, systém by byl značně neefektivní. Při návrhu blockchainu se již s možným rozšířením počítalo a byl vymyšlen jiný způsob. Původní metrika počtu účastníků byla převedena na výpočetní výkon celého systému.

Aby byla transakce ověřena…

  • Musí být použit výpočetní výkon reprezentující účast alespoň 51 % členů, tzv. hashrate.
  • Míra výpočetního výkonu je dána složitostí matematického problému, jehož řešení je právě výpočetně náročné.
  • Vzhledem k tomu, že stav účastníků se v celém systému dynamicky mění, mění se tím i úroveň složitosti řešení tohoto matematického problému.

Tento proces potvrzování transakcí se nazývá těžení (mining) a lidé, kteří verfikaci provedli, se pak nazývají těžaři (mineři).

Víme tedy, že blok v sobě obsahuje vstupní hodnotu do hashovací funkce sloužící jako důkaz potvrzení transakce. Dotyčný těžař musel vynaložit dostatečné úsilí (výpočetní výkon) pro získání požadované hodnoty. Blok je následně odeslán na všechny účastníky. Každý účastník vezme daný blok a uvedenou hodnotu, spočítá její hash a ověří důkaz. Následně se podívá, pro kterou transakci je daný blok důkazem a tuto transakci považuje za potvrzenou.

Pokud je tedy i samotný blok validní, uloží si ho příjemce do své lokální databáze. Uložení není nicméně pouhým vložením přijatého bloku vedle jiného bloku, ale jednotlivé bloky jsou dohromady zřetězeny. Řetězení (chaining) funguje tak, že aktuálně přijatý blok v sobě navíc obsahuje hodnotu, jejíž součástí je hash předchozího vydaného bloku. Při vytváření nového bloku se tak vezme i hodnota posledního vydaného validního bloku a ta je započítána do bloku nového. Tím vzniká vazba na předchozí blok. Proces řetězení vytváří spojenou databázi bloků, tzv. blockchain.

K čemu řetězení vlastně je?

Řekli jsme si, že každý z účastníků našeho transakčního systému si udržuje vlastní databázi potvrzených transakcí (bloků). Pokud má jeden účastník jinou databázi než druhý, je některá z nich neplatná a bude to právě ta, jejíž bloky na sebe nenavazují, neřetězí se. Proto hraje řetězení důležitou roli.

V případě, že by někdo chtěl záměrně falšovat databázi – nahradit posledních 5 bloků vlastními navazujícími bloky, musel by vynaložit obrovský výpočetní výkon, který by představoval více než 50 % výpočetního výkonu celého blockchain systému. To je velice málo pravděpodobné. Celá integrita blockchain databáze je tak silně chráněna a je značně rigidní.

) Co když… má účastník na svém účtu přesně 1000 jednotek a vytvoří současně dvě transakce, přičemž v jedné posílá 1000 jednotek jednomu uživateli a ve druhé 1000 jednotek jinému?

Pokud jsou z jednoho účtu odeslány dvě různé transakce, jsou vytvořeny ve stejném čase dva různé, nicméně validní bloky. V momentě, kdy jsou oba bloky přijaty, dojde v místě posledního bloku v blockchain databázi k rozdělení na dvě paralelní větve. Růst databáze pokračuje vydáváním dalších nových bloků a jejich postupným řetězením do jednotlivých větví podle toho, na jaký blok navazují. V momentě, kdy jedna větev začne být delší než druhá větev, je kratší větev zahozena a pokračuje se pouze s delší větví.

Co to znamená v praxi? Aby si příjemce některé transakce mohl být jistý, že mu skutečně daná částka náleží, počká ještě na vydání několika dalších bloků, které potvrdí, že jsou větví, která nebude zahozena.

3) Co když… účastník jednoho dne prohlásí, že 1000 jednotek, které mu byly odeslány, nikdy nedostal?

Stačí se podívat do databáze a najít blok potvrzující danou transakci, ve které je uveden převod 1000 jednotek z příslušného účtu na daný účet. Vzhledem k silné ochraně integrity databáze víme, že je velice nepravděpodobné, aby transakce neproběhla.

Seriál Deloitte o technologii blockchain – projděte si předchozí díly

Blockchain pro začátečníky: Poznejte jeho specifika – díl první

Blockchain pro začátečníky: Specifika platebního procesu – díl druhý

Blockchain pro začátečníky: Potvrzování a sledování transakcí – díl třetí

Blockchain pro začátečníky: Smart contracts – díl čtvrtý

Blockchain pro začátečníky: Úskalí této technologie – díl pátý

Seriál - blockchain Platební transakce Blockchain

Nadcházející akce

Semináře, webcasty, pracovní snídaně a další akce pořádané společností Deloitte.

    Zobrazit vícearrow-right