Co je blockchain?
Stručně řečeno, blockchain je seznam datových záznamů, který funguje jako decentralizovaná digitální účetní kniha. Data jsou uspořádána do bloků, které jsou chronologicky seřazeny a zabezpečeny kryptografií.
Nejstarší model blockchainu vznikl na počátku 90. let 20. století, kdy informatik Stuart Haber a fyzik W. Scott Stornetta použili kryptografické techniky v řetězci bloků jako způsob zabezpečení digitálních dokumentů před manipulací s daty.
Práce Habera a Stornetty jistě inspirovala mnoho dalších počítačových vědců a nadšenců do kryptografie – což nakonec vedlo k vytvoření Bitcoinu jako prvního decentralizovaného systému elektronických peněz (nebo jednoduše první kryptoměny).
Ačkoli technologie blockchainu je starší než kryptoměny, její potenciál začal být uznávaný až po vzniku Bitcoinu v roce 2008. Od té doby zájem o technologii blockchainu postupně roste a kryptoměny jsou nyní uznávány ve větším měřítku.
Technologie blockchainu se většinou používá k zaznamenávání kryptoměnových transakcí, ale hodí se i pro mnoho dalších druhů digitálních dat a lze ji použít v široké škále případů použití. Nejstarší, nejbezpečnější a největší blockchainovou sítí je síť Bitcoin, která byla navržena s pečlivou a vyváženou kombinací kryptografie a teorie her.
Jak funguje blockchain?
V kontextu kryptoměn se blockchain skládá ze stabilního řetězce bloků, z nichž každý uchovává seznam dříve potvrzených transakcí. Vzhledem k tomu, že blockchainovou síť udržuje nesčetné množství počítačů rozmístěných po celém světě, funguje jako decentralizovaná databáze (nebo účetní kniha). To znamená, že každý účastník (uzel) udržuje svou kopii dat blockchainu a vzájemně spolu komunikují, aby zajistili, že jsou všichni ve shodě (nebo vytvořili stejný blok).
Transakce v blockchainu tedy probíhají v rámci globální sítě typu peer-to-peer, což z Bitcoinu dělá decentralizovanou digitální měnu, která je bez hranic a odolná vůči cenzuře. Většina blockchainových systémů je navíc považována za systémy bez nutnosti důvěry, protože nevyžadují žádný druh ověřování. Nad sítí Bitcoin nemá kontrolu žádný jednotlivý orgán či autorita.
Ústřední součástí téměř každého blockchainu je proces těžby, který se opírá o hashovací algoritmy. Bitcoin používá algoritmus SHA-256 (secure hash algorithm 256 bits). Ten přijímá vstup libovolné délky a generuje výstup, který bude mít vždy stejnou délku. Vytvořený výstup se nazývá „hash“ a v tomto případě se vždy skládá z 64 znaků (256 bitů).
Výsledkem stejného vstupu je tedy stejný výstup bez ohledu na to, kolikrát se proces opakuje. Pokud však na vstupu provedete malou změnu, výstup se zcela změní. Jako takové jsou hashovací funkce deterministické a ve světě kryptoměn je většina z nich navržena jako jednosměrná hashovací funkce.
To, že se jedná o jednosměrnou funkci, znamená, že je téměř nemožné z výstupu vypočítat, co bylo vstupem. Lze pouze odhadovat, co bylo vstupem, ale pravděpodobnost, že to odhadnete správně, je velmi malá. To je jeden z důvodů, proč je blockchain Bitcoinu bezpečný.
Nyní když víme, co tento algoritmus dělá, si ukážeme, jak blockchain funguje, na jednoduchém příkladu transakce.
Představte si, že máme Alici a Boba a jejich zůstatek v bitcoinech. Řekněme, že Alice dluží Bobovi 2 bitcoiny.
Aby Alice mohla Bobovi poslat 2 bitcoiny, vyšle zprávu s transakcí, kterou chce provést, všem těžařům v síti.
Při této transakci Alice předá těžařům Bobovu adresu a množství bitcoinů, které chce poslat, spolu s digitálním podpisem a svým veřejným klíčem. Podpis je proveden Aliciným soukromým klíčem a těžaři mohou ověřit, že Alice je skutečně vlastníkem těchto coinů.
Jakmile si jsou těžaři jisti, že transakce je platná, mohou ji zařadit do bloku spolu s mnoha dalšími transakcemi a pokusit se blok vytěžit. To se provádí tak, že blok projde algoritmem SHA-256. Aby byl výstup považován za platný, musí začínat určitým množstvím nul. Množství potřebných nul závisí na tzv. obtížnosti, která se mění v závislosti na tom, jaký je v síti výpočetní výkon.
Aby se vytvořil výstupní hash s požadovaným počtem nul na začátku, přidávají těžaři do bloku před jeho spuštěním pomocí tohoto algoritmu tzv. „nonce“. Protože malá změna na vstupu zcela změní výstup, zkoušejí těžaři náhodné nonce, dokud nenajdou platný výstupní hash.
Jakmile je blok vytěžen, těžař jej rozešle všem ostatním těžařům. Ti pak zkontrolují, zda je blok platný, aby jej mohli přidat do své kopie blockchainu a transakce byla dokončena. Do bloku však těžaři musí zahrnout také výstupní hash z předchozího bloku, aby byly všechny bloky provázány dohromady, odtud je tedy název blockchain. Je to důležitá součást procesu kvůli způsobu, jakým v systému funguje důvěra.
Každý těžař má na svém počítači vlastní kopii blockchainu a každý věří tomu blockchainu, do kterého bylo vloženo nejvíce výpočetní práce, tedy nejdelšímu blockchainu. Pokud těžař změní transakci v předchozím bloku, změní se výstupní hash tohoto bloku, což vede k tomu, že se změní i všechny hashe po něm, protože bloky jsou propojeny hashi. Těžař by musel celou práci provést znovu, aby někdo přijal jeho blockchain jako správný. Pokud by tedy těžař chtěl podvádět, potřeboval by více než 50 % výpočetního výkonu sítě, což je velmi nepravděpodobné. Útoky na síť, jako je tento, se tak nazývají 51% útoky.
Model, kdy počítače pracují na tvorbě bloků, se nazývá Proof-of-Work (PoW, důkaz prací); existují ale také další modely, jako je Proof-of-Stake (PoS), který nevyžaduje tolik výpočetního výkonu a potřebuje méně elektřiny a zároveň je schopen škálovat pro více uživatelů.