Domov
Články
Čo je dôkaz o práci (PoW)?

Čo je dôkaz o práci (PoW)?

Stredne pokročilý
Zverejnené Dec 6, 2018Aktualizované Dec 12, 2022
8m

Úvod

Proof of Work (bežne skracovaný ako PoW) je mechanizmus na zabránenie dvojitým výdavkom. Väčšina hlavných kryptomien to používa ako svoj konsenzuálny algoritmus. To je presne to, čo nazývame metóda na zabezpečenie účtovnej knihy kryptomeny.

Proof of Work bol prvým konsenzuálnym algoritmom, ktorý sa objavil a dodnes zostáva dominantným. Predstavil ju Satoshi Nakamoto v bielej knihe o Bitcoine z roku 2008, no samotná technológia bola vytvorená už dávno predtým. 

HashCash Adama Backa je prvým príkladom algoritmu Proof of Work v časoch pred kryptomenou. Požadovaním od odosielateľov, aby pred odoslaním e-mailu vykonali menší prepočet, by príjemcovia mohli znížiť spam. Tento prepočet by legitímneho odosielateľa nestál prakticky nič, ale rýchlo sa zistí, ak niekto hromadne posiela e-maily.


Čo je to dvojité míňanie?

K dvojitému výdavku dochádza vtedy, keď sa rovnaké prostriedky minú viackrát. Tento výraz sa používa takmer výlučne v súvislosti s digitálnymi peniazmi – koniec koncov by ste mali problém minúť rovnakú fyzickú hotovosť dvakrát. Keď dnes platíte za kávu, odovzdáte hotovosť pokladníkovi, ktorý ju pravdepodobne zamkne v pokladni. Nemôžete ísť do kaviarne cez cestu a zaplatiť za ďalšiu kávu rovnakým účtom.

V digitálnych hotovostných schémach existuje možnosť, že by ste mohli. Už ste určite duplikovali počítačový súbor – stačí ho skopírovať a prilepiť inde. Rovnaký súbor môžete poslať e-mailom desiatim, dvadsiatim, päťdesiatim ľuďom. 

Keďže digitálne peniaze sú len dáta, musíte ľuďom zabrániť kopírovať a míňať rovnaké jednotky na rôznych miestach. V opačnom prípade sa vaša mena okamžite zrúti. 

Ak sa chcete podrobnejšie pozrieť na dvojité míňanie, pozrite si Vysvetlenie dvojitého míňania.


Prečo je potrebný Proof of Work?

Ak ste si prečítali nášho sprievodcu technológiou blockchain, budete vedieť, že používatelia vysielajú transakcie do siete. Tieto transakcie sa však nepovažujú za platné okamžite. To sa stane len vtedy, keď sa pridajú do blockchainu. 

Blockchain je veľká databáza, ktorú môže vidieť každý používateľ, takže si môže skontrolovať, či sa finančné prostriedky už minuli. Predstavte si to takto: vy a traja priatelia máte poznámkový blok. Kedykoľvek chce jeden z vás vykonať prevod akýchkoľvek jednotiek, ktoré používate, zapíšte si to – Alice zaplatí Bobovi päť jednotiek, Bob zaplatí Carol dve jednotky atď.

Je tu ešte jedna zložitá vec – zakaždým, keď uskutočníte transakciu, odkazujete na transakciu, z ktorej prostriedky pochádzajú. Ak by teda Bob platil Carol dvoma jednotkami, záznam by v skutočnosti vyzeral takto: Bob zaplatí Carol dve jednotky z predchádzajúcej transakcie s Alicou.

Takže máme spôsob, ako sledovať jednotky. Ak sa Bob pokúsi uskutočniť ďalšiu transakciu s použitím tých istých jednotiek, ktoré práve poslal Carol, každý to bude okamžite vedieť. Skupina nepovolí pridanie transakcie do poznámkového bloku.

Teraz by to mohlo fungovať dobre v malej skupine. Všetci sa poznajú, a tak sa zrejme dohodnú, ktorý z kamarátov si má transakcie pridávať do poznámkového bloku. Čo ak chceme skupinu 10 000 účastníkov? Myšlienka poznámkového bloku nie je dobre škálovateľná, pretože nikto nechce dôverovať cudziemu, aby to robil.

Tu prichádza na rad Proof of Work. Zabezpečuje, že používatelia nemíňajú peniaze, ktoré nemajú právo minúť. Použitím kombinácie teórie hier a kryptografie umožňuje algoritmus PoW komukoľvek aktualizovať blockchain podľa pravidiel systému.


Ako funguje PoW?

Náš poznámkový blok vyššie je blockchain. Transakcie však nepridávame po jednej – namiesto toho ich zhromažďujeme do blokov. Transakcie oznámime sieti a používatelia, ktorí vytvárajú blok, ich zahrnú do kandidátskeho bloku. Transakcie sa budú považovať za platné, až keď sa ich kandidátsky blok stane potvrdeným blokom, čo znamená, že bol pridaný do blockchainu.

Pripojenie bloku však nie je lacné. Potvrdenie o práci vyžaduje, aby ťažiar (používateľ vytvárajúci blok) spotreboval časť svojich vlastných zdrojov na toto privilégium. Tým zdrojom je výpočtový výkon, ktorý sa používa na hashovanie údajov bloku, kým sa nenájde riešenie hádanky.

Hašovanie údajov bloku znamená, že ich prejdete cez hašovaciu funkciu, aby sa vygeneroval hash bloku. Hash bloku funguje ako „odtlačok prsta“ – ide o identitu vašich vstupných údajov a je jedinečný pre každý blok.

Je prakticky nemožné obrátiť hash bloku na získanie vstupných údajov. Keď však poznáte vstup, potvrdenie, že hash je správny, je triviálne. Stačí zadať vstup cez funkciu a skontrolovať, či je výstup rovnaký.

V Proof of Work musíte poskytnúť údaje, ktorých hodnota hash zodpovedá určitým podmienkam. Ale neviete, ako sa tam dostať. Vašou jedinou možnosťou je odovzdať vaše údaje cez hašovaciu funkciu a skontrolovať, či zodpovedajú podmienkam. Ak nie, budete musieť mierne zmeniť svoje údaje, aby ste získali iný hash. Zmena čo i len jedného znaku vo vašich údajoch bude mať za následok úplne iný výsledok, takže nie je možné predpovedať, aký by mohol byť výstup.

Výsledkom je, že ak chcete vytvoriť blok, hráte hádanku. Zvyčajne si vezmete informácie o všetkých transakciách, ktoré chcete pridať, a niektoré ďalšie dôležité údaje, potom to všetko hashujete. Ale keďže sa vaša množina údajov nezmení, musíte pridať časť informáciu, ktorá je premenlivá. V opačnom prípade by ste vždy dostali rovnaký hash ako výstup. Tieto premenné údaje nazývame nonce. Je to číslo, ktoré budete meniť pri každom pokuse, takže zakaždým získate iný hash. A tomu hovoríme ťažba.

Stručne povedané, ťažba je proces zhromažďovania údajov o blockchaine a ich hashovania spolu s nonce, kým nenájdete konkrétny hash. Ak nájdete hash, ktorý spĺňa podmienky stanovené protokolom, získate právo vysielať nový blok do siete. V tomto bode ostatní účastníci siete aktualizujú svoje blockchainy, aby zahrnuli nový blok.

Pre hlavné kryptomeny sú dnes podmienky neuveriteľne náročné na splnenie. Čím vyšší je hash rate v sieti, tým ťažšie je nájsť platný hash. To sa robí preto, aby sa zabezpečilo, že sa bloky nebudú dať nájsť príliš rýchlo.

Ako si viete predstaviť, pokus o uhádnutie obrovského množstva hashov môže byť vo vašom počítači nákladný. Plytváte výpočtovými cyklami a elektrinou. Ale protokol vás odmení kryptomenou, ak nájdete platný hash.

Zopakujme si, čo zatiaľ vieme:

  • Ťažba je pre vás drahá.

  • Ak vytvoríte platný blok, budete odmenení.

  • Keď používateľ pozná vstup, môže ľahko skontrolovať jeho hash – používatelia bez ťažby si môžu overiť, či je blok platný bez vynaloženia veľkého výpočtového výkonu.

Zatiaľ je všetko v poriadku. Ale čo keď sa pokúsite podvádzať? Čo vám bráni vložiť do bloku množstvo podvodných transakcií a vytvoriť platný hash?

Tu prichádza na rad kryptografia s verejným kľúčom. V tomto článku nepôjdeme do hĺbky, ale pozrite si Čo je to kryptografia s verejným kľúčom? aby sme získali komplexný pohľad na vec. Stručne povedané, používame niekoľko úhľadných kryptografických trikov, ktoré umožňujú každému používateľovi overiť, či má niekto právo presunúť prostriedky, ktoré sa pokúša minúť.

Keď vytvoríte transakciu, podpíšete ju. Ktokoľvek v sieti môže porovnať váš podpis s vaším verejným kľúčom a skontrolovať, či sa zhodujú. Tiež skontrolujú, či môžete skutočne minúť svoje prostriedky a či súčet vašich vstupov je vyšší ako súčet vašich výstupov (t. j. či nemíňate viac, ako máte).

Každý blok, ktorý obsahuje neplatnú transakciu, bude sieťou automaticky odmietnutý. Pokúšať sa podvádzať je drahé. Budete plytvať svojimi vlastnými zdrojmi bez akejkoľvek odmeny.

V tom spočíva krása Proof of Work: podvádzanie je drahé, ale čestné konanie je ziskové. Každý racionálny ťažiar sa bude snažiť o návratnosť investícií, takže možno očakávať, že sa bude správať spôsobom, ktorý zaručí výnosy.



Chcete začať s kryptomenou? Kúpte si bitcoiny na Binance!



Proof of Work verzus Proof of Stake

Existuje mnoho konsenzuálnych algoritmov, ale jedným z najočakávanejších je Proof of Stake (PoS). Koncept pochádza z roku 2011 a bol implementovaný v niektorých menších protokoloch. Zatiaľ však nedošlo k prijatiu v žiadnom z veľkých blockchainov.

V systémoch Proof of Stake sú ťažiari nahradení validátormi. Nie je tu žiadna ťažba a žiadne preteky v hádaní hashov. Namiesto toho sú používatelia náhodne vybraní – ak sú vybraní, musia navrhnúť (alebo „vytvoriť“) blok. Ak je blok platný, dostanú odmenu zloženú z poplatkov z transakcií bloku.

Nie je však možné vybrať hocijakého používateľa – protokol ich vyberá na základe množstva faktorov. Aby boli účastníci oprávnení, musia si zablokovať vklad, čo je vopred určená suma natívnej meny blockchainu. Stávka funguje ako kaucia: rovnako ako obžalovaní vložia veľkú sumu peňazí, aby ich odradili od vynechania súdneho procesu, validátori zablokujú stávku, aby odradili od podvádzania. Ak budú konať nečestne, ich podiel (alebo jeho časť) bude zobratý.

Proof of Stake má oproti Proof of Work určité výhody. Najpozoruhodnejším z nich je menšia uhlíková stopa – keďže v PoS nie sú potrebné výkonné ťažobné farmy, spotrebovaná elektrina je len zlomkom elektriny spotrebovanej v PoW. 

To znamená, že nedosahuje ani zďaleka také záznamy ako PoW. Hoci by to mohlo byť vnímané ako plytvanie, ťažba je jediným konsenzuálnym algoritmom, ktorý sa osvedčil vo veľkom rozsahu. Za niečo vyše desať rokov zabezpečila transakcie v hodnote biliónov dolárov. Ak chcete s istotou povedať, či PoS môže konkurovať jej bezpečnosti, musí byť staking najprv riadne otestovaný nanečisto. 


Záverečné myšlienky

Proof of Work bol pôvodným riešením problému s dvojitým výdavkom a ukázal sa ako spoľahlivý a bezpečný. Bitcoin dokázal, že nepotrebujeme centralizované subjekty na to, aby sme zabránili tomu, aby sa tie isté prostriedky minuli dvakrát. Šikovným využitím kryptografie, hašovacích funkcií a teórie hier sa môžu účastníci v decentralizovanom prostredí dohodnúť na stave finančnej databázy.