Principy blockchainu a mnohem dál

Zveřejněno , upraveno - holoubekm Přidat komentář kryptoměny

Vítejte u dalšího z článků o principech kryptoměn. V minulém příspěvku jsme si prozradili pozadí a motivaci, která vedla k jejich vzniku.

Dnes se místo filozofie podrobněji podíváme na principy funkční na pozadí Bitcoinu. Jejich původ je akademický, proto každého, kdo se o problematiku zajímá hlouběji, odkáži na jednotlivé články popisující principy a nápady do hloubky.

Věřím, že většina lidí, pokud kdy slyšela o kryptoměnách, zná Bitcoin. Původní článek pod názvem Bitcoin: A Peer-to-Peer Electronic Cash System vyšel teprve v roce 2008 a již (2017) existuje nespočet měn – teoretických i praktických následníků, o jejichž principech si dnes povíme víc.

Bitcoin

Bitcoin, první veřejné známá a úspěšná kryptoměna, byl navržen a implementován neznámým programátorem vystupujícím pod jménem Satoshi Nakamoto.

Základní myšlenka Bitcoinu by se dala popsat jako sdílená účetní kniha. Tu má k dispozici každý, aby mohl zkontrolovat, zda obsah odpovídá realitě. Fakt, že každý uživatel může ověřit historii transakcí, je zásadní pro důvěryhodnost celého systému.

Koncepty popsané v originálním článku:
  • Peer-to-Peer – Měna jako taková nepotřebuje žádnou centrální autoritu, která by dohlížela na průběh transakcí. Vše závisí na distribuované důvěře, kde jednotlivé kroky zaznamenávají systémy po celém světě.
  • Asymetrická kryptografie – Použitím veřejných a soukromých klíčů je zajištěna a ověřena historie a bezpečnost v distribuovaném protokolu.
  • Hashování – Neustálé výpočty otisků zajišťují jednosměrnost procesu a nepřímo tak i historii.
  • Digitální podpis – Podpis privátním klíčem zajišťuje autenticitu, integritu a nepopiratelnost

Kdokoliv, kdo chce obchodovat s Bitcoinem, si nejprve vytvoří privátní a veřejný klíč. Veřejný klíč je zveřejněn vhodným způsobem tak, aby odesílatel mohl uživateli poslat částku v rámci transakce. Privátní klíč (peněženku) si uživatel pečlivě uschová, protože ta identifikuje účet a opravňuje uživatele k vytváření odchozích transakcí.

Průběh transakce – hodnota z předchozí transakce je zřetězena s veřejným klíčem kupujícího a podepsána privátním klíčem prodejce.

Všimněte si, že do transakce vstupuje veřejný klíč kupujícího – každý má tedy možnost poslat danému uživateli peníze, protože klíč je veřejně dostupný.

Naopak privátní klíč si prodejce střeží a používá jen v případě transakce – je to jeho jediný způsob, jak prokázat vlastnictví účtu a vytvořit odchozí transakci.

Protože celá síť počítačů může provádět transakce paralelně, může se kdokoliv pokusit o tzv. double spending. Tedy stav, kdy vlastněné Bitcoiny utratíme více než jednou – jednoduše vytvoříme dvě transakce v jednom okamžiku tak, aby oba kupující neměli čas zareagovat.

Aby tomu autoři systému zabránili, jsou všechny transakce ihned zveřejňovány. Kdokoliv tak může ověřit skutečný stav na účtu odesílatele před tím, než potvrdí danou transakci. V případě, že jsou vytvořeny dvě stejné paralelní transakce, typicky požadujeme, aby síť uznala pouze první variantu.

Back to the future

Nyní již víme, že proběhlé transakce jsou reprezentovány sekvencí hashů. Teoreticky by v ideálním světě tento koncept stačil k vytvoření měny. Krátce po objevení double spending útoků však byl zaveden ještě časový server – tzv. timestamp server. Tedy stroj, který v různých časech ukládá dvojice (hash, čas). Umožňuje tak zpětné dohledání stavu sítě a ověření validity transakce.

Veškeré časové otisky jsou řetězeny za sebe a vytváří tak nepřerušenou posloupnost hodnot – ta se nazývá blockchain.

Princip vytváření časového otisku, který slouží k ověření historie

Aby se celý proces urychlil a zefektivnil, je vždy pro několik transakcí vytvořen větší blok dat, ke kterému je připojen timestamp otisk a čas. Pro tento blok je spočítán hash jako unikátní reprezentant historie. Neustálým připojováním a hashováním předchozího otisku v principu upevňujeme důvěru celého systému v minulost – tedy proběhlé transakce.

Změna jakékoliv transakce v minulosti by pro útočníka znamenala nutnost přepočítání veškerých časových otisků, které uběhly od té doby.

Aby nebyl výpočet takového otisku příliš jednoduchý, existuje vždy globálně řešený bloblém. Ten je výpočetně náročný a jeho spočítáním ověří uzel sítě, který najde řešení jako první, platnost všech transakcí v současném bloku. Motivací pro tak složitý výpočet je odměna v Bitcoinech, kterou úspěšný řešitel problému dostává.

Kromě toho umožňuje Bitcoin platbu za přednostní ověření transakce – uživatelé si tak mohou sami určit prioritu svých převodů.

Všimněte si, že vedlejším produktem honby za odměnou (miningu) je právě potvrzování historie.

V případě úspěšného vyřešení problému pro daný blok jsou všechny stroje v síti upozorněny a přestávají řešit původní problém. Paralelně v celém systému je vytvořen nový blok a výpočet nově začíná znovu.

Protože jsou problémy opravdu výpočetně náročné, sdružující se těžaři do tzv. poolů, aby zvýšili sou šanci k úspěšnému vyřešení problému. V případě úspěchu si pak dohodnutým způsobem dělí odměnu.

A co bezpečnost?

Protože v síti jsou veškeré výpočty prováděny paralelně, je možné, že se v síti zároveň objeví dvě různá řešení daného problému. Část počítačů tak začne počítat nový problém s jednou verzí historie a druhá část s alternativní. Až další vyřešený blok tak určí, která historie platí, protože počítače v síti automaticky berou nejdelší řetězec otisků jako ten správný. Část sítě tedy zahodí nesprávnou variantu historie a začíná novou iteraci výpočtu s použitím delšího blockchainu.

Všimněte si, že anonymitu zaručuje pouze fakt, že neznáme skutečného vlastníka peněženky (privátního klíče). Neznamená to ale, že ho není možné dohledat!

Pokud by někdo chtěl modifikovat transakci v historii, byl by nucen spočítat veškeré obtížné problémy, které ke každému bloku přináležely. V úspěšném případě by pak teoreticky pouze upozornit zbytek sítě, že nalezl řešení a jeho podvodná transakce by byla uznána.

Druhým možným problémem by byla příslušnost (nadpoloviční)  výpočetní síly v síti jednomu majiteli. Ten by mohl vytvářet svou vlastní verzi historie, vnutit ji zbytku sítě. To je častá výtka Bitcoinu, protože značná část věškeré výpočetní síly je umístěna v Číně.

 

Záměrně jsem dnes vynechal technické podrobnosti o tom, jaké problémy jsou řešeny, jak se určuje jejich obtížnost, jaké datové struktury jsou využívány apod.

K tématu se však ještě vrátíme. 😀

Dnešní článek byl pouze úvod do problematiky technologie kryptoměn. Samotný článek o Bitcoinu je z roku 2008 a od té doby vzniklo nespočet rozšíření a modifikací. Příště si povíme o následnících – platformách Ethereum a Tangle.

Pro další detaily o Bitcoinu doporučuji originální článek i s komentáři na webu Fermat’s library – Bitcoin: A Peer-to-Peer Electronic Cash System.

Vložit komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *