Hlavní body:
Proof of Work (PoW) je mechanismus konsenzu, který má v digitálních platebních systémech bránit dvojí útratě.
Klíčovou součástí PoW je těžba, kterou se přidávají nové bloky s transakcemi na blockchain a vytváří nové jednotky kryptoměny.
Bitcoin a mnoho dalších kryptoměn používá PoW jako metodu, jak zabezpečit svou blockchainovou síť a data.
Úvod
Proof of Work (PoW) je stručně řečeno mechanismus, který má v digitálních platebních systémech bránit dvojí útratě. Bitcoin a mnoho dalších kryptoměn používá PoW jako metodu, jak zabezpečit svou blockchainovou síť a data. Těmto mechanismům se často říká algoritmy konsenzu nebo mechanismy konsenzu, protože umožňují dosažení konsenzu mezi více stranami, které si nemusí vzájemně důvěřovat.
Proof of Work je prvním algoritmem konsenzu a vedle mechanismu Proof of Stake (PoS) je dodnes jedním z nejdůležitějších. V roce 2008 ho ve své bílé knize Bitcoinu představil Satoshi Nakamoto, ale tato technologie sahá mnohem dál do minulosti.
Raným příkladem algoritmu Proof of Work v časech, kdy ještě neexistovaly kryptoměny, je HashCash Adama Backa. Při odeslání e-mailu vyžadoval na straně odesílatele malý výpočet, čímž se na straně příjemců redukoval spam. Tento výpočet legitimního odesílatele zprávy prakticky nic nestál, ale při odesílání hromadných e-mailů se požadovaný výpočetní výkon rychle nasčítal.
Co je dvojí útrata?
Ke dvojí útratě dochází, když jsou stejné prostředky utraceny víc než jednou. Tento termín se používá téměř výhradně v kontextu digitálních peněz – utratit dvakrát stejnou hotovost není koneckonců dost dobře možné.
Když zaplatíte kávu v hotovosti pokladní, která ji vloží do pokladny, nemůžete jít do kavárny přes ulici a stejnou bankovkou zaplatit za další kávu. V digitálních peněžních systémech ale tato možnost existuje.
Určitě jste už někdy pomocí příkazů kopírovat a vložit duplikovali počítačový soubor. Je také snadné odeslat e-mail se stejným souborem desítkám lidí. Vzhledem k tomu, že digitální peníze jsou jen data, musíte lidem zabránit v dvojím utrácení, aby stejné jednotky nekopírovali a neutráceli je na jiných místech. Digitální platební systém, který nedokáže zabránit dvojí útratě, se zanedlouho zhroutí.
Podrobnější vysvětlení dvojí útraty najdete v článku Vysvětlení problému dvojí útraty.
Proč je systém Proof of Work nezbytný?
Pokud jste četli náš článek o blockchainové technologii, víte, že uživatelé kryptoměn neustále vysílají do sítě nějaké transakce. Takové transakce se ale okamžitě nepovažují za platné. Platné jsou až v případě, že je někdo potvrdí a přidá na blockchain.
Bitcoinový blockchain například funguje jako veřejná databáze transakcí (účetní kniha), kterou si může prohlédnout každý. Představte si to takto: vy a tři přátelé máte poznámkový blok, ve kterém sledujete bitcoinové transakce mezi sebou. Kdykoli někdo z vás chce převést hodnotu, zapíšete si to:
Alice platí Bobovi 5 BTC; Bob zaplatí Carol 2 BTC atd.
Při každé transakci se ale odvoláte na transakci, ze které prostředky přišly. Takže kdyby Bob platil Carol 2 BTC, záznam by ve skutečnosti vypadal následovně:
Bob platí Carol 2 BTC, které získal z předchozí transakce s Alicí.
Teď máme způsob, kterým můžeme jednotky BTC sledovat. Když se Bob pokusí udělat další transakci se stejnými dvěma bitcoiny, které zrovna poslal Carol, každý to okamžitě pozná. Skupina mu neumožní přidat takovou transakci do poznámkového bloku, protože tyto dva bitcoiny už byly utraceny.
Tohle by mohlo fungovat dobře v malé skupině lidí. Všichni se dobře znají, takže by se pravděpodobně dokázali dohodnout na tom, kdo by měl do poznámkového bloku přidávat transakce. Co když ale budeme chtít použít skupinu o 10 000 lidech? Nápad s poznámkovým blokem nelze dobře škálovat, protože nikdo nebude chtít svěřit správu takového bloku cizímu člověku.
A od toho existuje mechanismus Proof of Work. Zaručuje, že uživatelé nemohou utrácet peníze, které nemají právo utratit. Kombinace teorie her a kryptografie umožňuje komukoli aktualizovat pomocí algoritmu PoW blockchain (v souladu s pravidly systému).
Jak PoW funguje?
Představte si, že náš poznámkový blok z výše uvedeného příkladu je blockchain. Transakce do něj ale nepřidáváme po jedné, místo toho je shlukujeme do bloků. Ohlásíme je síti a pak je uživatelé, kteří vytváří blok, zahrnou do kandidátského bloku. Transakce budou považovány za platné pouze v případě, že se z kandidátského bloku stane potvrzený blok, což znamená, že byl přidán do blockchainové databáze.
Proces ověřování transakcí a přidávání nových bloků se nazývá těžba. Ta je drahá a obtížná, ale může vám přinést odměnu. Odměnu za blok tvoří transakční poplatky uživatelů a zcela nové bitcoiny vytvořené tímto protokolem.
Mechanismus Proof of Work vyžaduje, aby těžař (uživatel vytvářející blok) investoval zdroje, jako je elektřina a výpočetní výkon, na hashování dat kandidátského bloku, dokud nenajde řešení hádanky.
Hashování dat bloku znamená, že data musí projít hashovací funkcí, ze které se vygeneruje hash bloku. Tento hash bloku funguje jako „otisk prstu“ – je to identita pro vaše vstupní data a každý blok má jedinečný hash.
Jinými slovy, těžař k vytvoření platného hashe musí ověřit a shromáždit nevyřízené transakce, uspořádat je do kandidátského bloku a pak data bloku zahashovat. Když se mu podaří najít platný hash kandidátského bloku, odvysílá ho do sítě, přidá blok na blockchain a vyzvedne si odměnu za těžbu.
Jakmile těžař odešle svůj kandidátský blok a hash do sítě, ostatní účastníci sítě hashování zopakují, čímž ověří, že je výstup skutečně platný.
Nalezení platného hashe sice vyžaduje nespočet hashovacích pokusů, ale potvrzení správnosti vygenerovaného hashe je pro každého maličkost. Stačí vzít stejná vstupní data (data bloku), zahashovat je a ověřit, že je výstup stejný.
Proof of Work od vás vyžaduje data, jejichž hash odpovídá určitým podmínkám. Vy ale nevíte, jak se k nim dostat. Vaší jedinou možností je odeslat data do hashovací funkce a ověřit, zda odpovídají podmínkám. Pokud jim neodpovídají, budete muset mírnou úpravou dat získat jiný hash. Změnou jediného znaku ve vašich datech získáte úplně jiný výsledek, takže není možné předvídat, jak by mohl výsledek vypadat.
Proto když chcete vytvořit blok, je to tipovací hra. Obvykle vezmete informace o všech transakcích, které chcete přidat do bloku, a nějaká další důležitá data a pak to všechno zahashujete. Ale vzhledem k tomu, že se vaše sada dat nebude měnit, musíte přidat informace, které jsou proměnné. Jinak by vaším výstupem byl vždy stejný hash. Tato proměnná data nazýváme nonce. Je to číslo, které s každým pokusem změníte, abyste vždy získali jiný hash.
Když si to shrneme, těžba je proces, při kterém shromažďujete blockchainová data a hashujete je pomocí nonce, dokud nenajdete správný hash. Když najdete hash, který splňuje podmínky stanovené protokolem, získáte právo vyslat na síť nový blok. V tento okamžik ostatní účastníci sítě aktualizují své blockchainy, aby zahrnovaly tento nový blok.
U hlavních kryptoměn je v dnešní době neuvěřitelně obtížné tyto podmínky uspokojit. Čím vyšší má síť hash rate, tím obtížnější je najít platný hash. Dělá se to proto, aby se bloky nenacházely příliš rychle.
Jak si asi dokážete představit, snaha uhodnout obrovské množství hashů dokáže být pro počítače velmi nákladná. Plýtváte výpočetní cykly i elektřinu. Ale když najdete platný hash, protokol vás odmění kryptoměnou.
Pojďme si zrekapitulovat, co zatím víme:
Těžba je obtížná a nákladná, ale zajišťuje bezpečnost sítě.
Těžaři, kterým se podaří vytvořit platný blok, jsou odměňováni nově emitovanými kryptoměnami a poplatky za transakce.
Generování platného hashe nějakou dobu trvá, ale ostatní uživatelé mohou jeho platnost snadno ověřit zopakováním hashování.
Zatím všechno funguje hladce. Ale co když se pokusíte podvádět? Co vám brání ve vložení podvodných transakcí do bloku a vyprodukování platného hashe?
V tu chvíli přichází na řadu kryptografie s veřejným klíčem. V tomto článku se jí do hloubky věnovat nebudeme, ale pokud vás zajímají podrobnější informace, můžete si přečíst článek Co je kryptografie s veřejným klíčem? na Akademii Binance. Stručně řečeno používáme několik kryptografických triků, které každému umožňují ověřit, jestli má někdo právo přesunout finanční prostředky, které se snaží utratit.
Při vytváření transakce ji zároveň podepisujete. Kdokoli na síti může porovnat váš podpis s vaším veřejným klíčem a zkontrolovat, jestli se shodují. Zkontroluje i to, jestli vlastně můžete prostředky utratit a jestli součet vstupů je vyšší než součet výstupů (tj. že neutrácíte víc, než máte k dispozici).
Jakýkoli blok, který obsahuje neplatnou transakci, bude sítí automaticky odmítnut. Už jen samotný pokus o podvod pro vás bude nákladný. Budete plýtvat vlastními zdroji a nic za to nezískáte.
V tom spočívá krása mechanismu Proof of Work: podvádění je nákladné, ale poctivé jednání je výnosné. Každý racionálně uvažující těžař bude usilovat o návratnost své investice, takže můžeme očekávat, že bude jednat způsobem, který mu s větší pravděpodobností přinese výnos.
Mechanismy konsenzu Proof of Work (PoW) vs. Proof of Stake (PoS)
Kromě PoW existuje mnoho dalších algoritmů konsenzu, ale jedním z nejoblíbenějších je Proof of Stake (PoS). Jeho koncept pochází z roku 2011 a používá ho například Ethereum a řada dalších protokolů.
V systémech Proof of Stake jsou těžaři nahrazeni validátory. Těžba ani závod o uhodnutí hashe nejsou potřeba. Místo toho jsou náhodně vybráni uživatelé, a když jsou vybráni, musí navrhnout („ukovat“) blok. Když je blok platný, dostanou odměnu tvořenou poplatky za transakce v bloku.
Vybrán ale nemůže být kdokoli – protokol si uživatele vybírá na základě řady faktorů. Aby mohli být uživatelé vybráni, musí uzamknout podíl (stake), což je předem stanovená částka v nativní měně blockchainu. Tento stake funguje jako kauce: stejně jako obžalovaní skládají velký obnos peněz, aby je to odradilo od nedostavení se k soudu, validátoři uzamykají svůj stake, aby je to odradilo od podvádění. Když budou jednat nečestně, o svůj stake (nebo jeho část) přijdou.
Mechanismus Proof of Stake má oproti mechanismu Proof of Work určité výhody. Mezi nejvýznamnější z nich patří menší uhlíková stopa – PoS nepotřebuje žádné vysoce výkonné těžařské farmy, takže oproti PoW spotřebuje jen zlomek elektřiny.
PoS ale nemá stejnou historii a výsledky jako PoW. I když těžbu může někdo vnímat jako nehospodárnou, PoW je jediný algoritmus konsenzu prověřený víc než deseti lety provozu. Od svého spuštění zabezpečil algoritmus PoW sítě Bitcoin transakce v hodnotě bilionů dolarů. Aby bylo možné s jistotou říct, jestli se mu dokáže mechanismus PoS v zabezpečení vyrovnat, musí projít řádným a dlouhodobým testováním.
Závěrem
Mechanismus Proof of Work je původním řešením problému dvojité útraty, který se ukázal jako spolehlivý a bezpečný. Bitcoin dokázal, že k tomu, abychom zabránili dvojitým útratám stejných prostředků, nepotřebujeme centralizované subjekty. Účastníci decentralizovaného prostředí se díky chytrému použití kryptografie, hashovacích funkcí a teorie her dokáží na stavu finanční databáze shodnout.
Související články:
Vyloučení odpovědnosti: tento obsah je vám předkládán ve stavu, v jakém je, pouze pro obecné informační a vzdělávací účely, bez jakéhokoli prohlášení nebo záruky. Neměl by být chápán jako finanční, právní nebo jiné odborné poradenství ani není jeho cílem doporučit nákup jakéhokoli konkrétního produktu nebo služby. Měli byste se poradit s příslušnými odbornými poradci. Upozorňujeme, že pokud je článek příspěvkem od třetí strany, vyjádřené názory patří této třetí straně a nemusí se nutně shodovat s názory Akademie Binance. Další podrobnosti se dozvíte v našem úplném prohlášení o vyloučení odpovědnosti zde. Ceny digitálních aktiv mohou být volatilní. Hodnota vaší investice může klesnout nebo stoupnout a investovaná částka se vám nemusí vrátit. Za svá investiční rozhodnutí nesete výhradní odpovědnost vy sami a Akademie Binance nenese odpovědnost za žádné ztráty, které vám mohou vzniknout. Tento materiál by neměl být chápán jako finanční, právní nebo jiné odborné poradenství. Další informace získáte v našich podmínkách použití a upozornění na rizika.