Czym Jest Proof of Work (PoW)?
Strona G艂贸wna
Artyku艂y
Czym Jest Proof of Work (PoW)?

Czym Jest Proof of Work (PoW)?

艢rednio zaawansowany
Opublikowane Dec 6, 2018Zaktualizowane Apr 18, 2024
10m

Najwa偶niejsze informacje

  • Proof of Work (PoW) to mechanizm konsensusu stworzony po to, aby zapobiega膰 podw贸jnemu wydatkowaniu w systemach p艂atno艣ci cyfrowych.

  • PoW to bardzo wa偶na cz臋艣膰 procesu kopania, kt贸ry polega na dodawaniu nowych blok贸w transakcji do sieci blockchain i tworzeniu nowych jednostek kryptowaluty.

  • Protok贸艂 PoW s艂u偶y do zabezpieczania sieci blockchain i danych w przypadku bitcoina oraz wielu innych kryptowalut.

Wprowadzenie

Kr贸tko m贸wi膮c, Proof of Work (PoW) to mechanizm konsensusu stworzony po to, aby zapobiega膰 podw贸jnemu wydatkowaniu w systemach p艂atno艣ci cyfrowych. Protok贸艂 PoW s艂u偶y do zabezpieczania sieci blockchain i danych w przypadku bitcoina oraz wielu innych kryptowalut. Takie mechanizmy s膮 cz臋sto nazywane algorytmami konsensusu lub mechanizmami konsensusu, poniewa偶 zasada ich dzia艂ania polega na tym, 偶e wiele stron osi膮ga konsensus bez konieczno艣ci ufania sobie nawzajem.

Mechanizm Proof of Work by艂 pierwszym stworzonym algorytmem konsensusu i nadal jest jednym z najwa偶niejszych obok Proof of Stake (PoS). Mechanizm PoW zaprezentowa艂 w bia艂ej ksi臋dze Bitcoina z 2008 roku Satoshi Nakamoto, ale sama technologia powsta艂a du偶o wcze艣niej.

HashCash Adama Backa to jeden z pierwszych przyk艂ad贸w algorytmu Proof of Work z czas贸w przed kryptowalutami. Poniewa偶 zmusza nadawc贸w do wykonywania pewnej drobnej ilo艣ci oblicze艅 przed wys艂aniem wiadomo艣ci e-mail, odbiorcy s膮 w stanie ograniczy膰 spam. Takie obliczenia nie kosztuj膮 prawowitego nadawc臋 praktycznie nic, ale szybko si臋 kumuluj膮, je偶eli kto艣 wysy艂a maile masowo.

Czym jest podw贸jne wydatkowanie?

Podw贸jne wydatkowanie ma miejsce przy wielokrotnym wydawaniu tych samych 艣rodk贸w. Termin ten stosuje si臋 prawie wy艂膮cznie w kontek艣cie pieni膮dza cyfrowego 鈥 w ko艅cu trudno by艂oby dwa razy wyda膰 t臋 sam膮 fizyczn膮 got贸wk臋.聽

Kiedy dzi艣 p艂acisz za kaw臋, przekazujesz got贸wk臋 kasjerowi, kt贸ry najcz臋艣ciej zamyka j膮 w kasie. Nie mo偶esz p贸j艣膰 do kawiarni po drugiej stronie ulicy i zap艂aci膰 za kolejn膮 kaw臋 tym samym banknotem. Jednak w cyfrowych systemach got贸wkowych istnieje taka mo偶liwo艣膰.聽

Na pewno zdarzy艂o Ci si臋 kiedy艣 skopiowa膰 plik na komputerze przy u偶yciu polece艅 kopiuj i wklej. Mo偶na te偶 艂atwo wys艂a膰 ten sam plik poczt膮 elektroniczn膮 do dziesi膮tek os贸b. Poniewa偶 pieni膮dz cyfrowy to tylko dane, trzeba zapobiega膰 ich podw贸jnemu wydatkowaniu, tj. kopiowaniu i wydawaniu tych samych jednostek w r贸偶nych miejscach. Cyfrowy system p艂atno艣ci, kt贸ry nie zapobiega podw贸jnemu wydatkowaniu, w mgnieniu oka upada.

Bardziej szczeg贸艂owe informacje na temat podw贸jnego wydatkowania znajdziesz w artykule Wyja艣nienie podw贸jnego wydatkowania.

Dlaczego mechanizm Proof of Work jest niezb臋dny?

Je偶eli masz za sob膮 lektur臋 artyku艂u o technologii blockchain, wiesz, 偶e u偶ytkownicy kryptowalut nieustannie rozg艂aszaj膮 w sieci transakcje. Transakcje te nie s膮 jednak od razu uznawane za wa偶ne. Ma to miejsce dopiero po ich potwierdzeniu i dodaniu do blockchain.

Np. blockchain Bitcoina funkcjonuje jako publiczna baza danych transakcji (ledger), do kt贸rej ma dost臋p ka偶dy u偶ytkownik. Mo偶na to sobie wyobrazi膰 w ten spos贸b: Prowadzisz wraz z tr贸jk膮 znajomych zeszyt, w kt贸rym zapisujecie swoje transakcje w bitcoinie. Za ka偶dym razem, kiedy kt贸re艣 z Was chce zrobi膰 przelew na dowoln膮 warto艣膰, zapisujecie to:

Alice p艂aci Bobowi 5 BTC; Bob p艂aci Carol 2 BTC itd.

Ale za ka偶dym razem, kiedy realizujecie transakcj臋, odnosicie si臋 do transakcji, z kt贸rej te 艣rodki pochodz膮. Gdyby wi臋c Bob zap艂aci艂 Carol 2 BTC, faktyczny wpis wygl膮da艂by nast臋puj膮co:聽

Bob p艂aci Carol 2 BTC, kt贸re pochodz膮 z wcze艣niejszej transakcji z Alice.

W ten spos贸b jeste艣my w stanie kontrolowa膰 przep艂yw jednostek BTC. Je偶eli Bob podejmie pr贸b臋 realizacji kolejnej transakcji przy u偶yciu tych samych 2 BTC, kt贸re w艂a艣nie wys艂a艂 Carol, wszyscy od razu si臋 o tym dowiedz膮. Grupa nie pozwoli na dodanie transakcji do zeszytu, poniewa偶 te 2 BTC zosta艂y ju偶 wydane.

Takie rozwi膮zanie mo偶e si臋 zatem sprawdza膰 w ma艂ej grupie. Wszyscy si臋 znaj膮, wi臋c prawdopodobnie ustal膮, kto ma wpisywa膰 transakcje do zeszytu. Ale co je偶eli chcemy mie膰 grup臋 10 000 uczestnik贸w? Pomys艂 z zeszytem si臋 dobrze nie skaluje, poniewa偶 nikt nie chce powierza膰 pieczy nad zeszytem komu艣 nieznajomemu.

I tu pojawia si臋 mechanizm Proof of Work. Daje gwarancj臋, 偶e u偶ytkownicy nie b臋d膮 wydawa膰 pieni臋dzy, kt贸rych nie maj膮 prawa wydawa膰. Poprzez po艂膮czenie teorii gier i kryptografii algorytm PoW umo偶liwia ka偶demu aktualizacj臋 blockchaina zgodnie z zasadami systemu.

Jak dzia艂a PoW?

Wyobra藕my sobie, 偶e nasz zeszyt z powy偶szego przyk艂adu to sie膰 blockchain. Nie dodajemy jednak transakcji kolejno 鈥 zamiast tego wrzucamy je razem w bloki. Rozg艂aszamy transakcje w sieci, a nast臋pnie u偶ytkownicy tworz膮cy blok w艂膮czaj膮 je do bloku kandyduj膮cego. Transakcje zostaj膮 uznane za wa偶ne dopiero wtedy, kiedy ich blok kandyduj膮cy stanie si臋 blokiem potwierdzonym, co b臋dzie oznacza膰, 偶e zosta艂 dodany do bazy danych sieci blockchain.

Zatwierdzanie transakcji i do艂膮czanie nowych blok贸w to tzw. g贸rnictwo. Jest kosztowne i trudne, ale mo偶e r贸wnie偶 dawa膰 satysfakcj臋. Nagroda blokowa sk艂ada si臋 z op艂at transakcyjnych od u偶ytkownik贸w i nowych bitcoin贸w tworzonych przez protok贸艂.聽

W mechanizmie Proof of Work g贸rnik (u偶ytkownik tworz膮cy blok) musi inwestowa膰 zasoby, np. energi臋 elektryczn膮 i moc obliczeniow膮, w hashowanie danych swojego bloku kandyduj膮cego dop贸ki nie uda si臋 znale藕膰 rozwi膮zania zagadki.

Hashowanie danych bloku polega na przepuszczaniu go przez funkcj臋 skr贸tu w celu wygenerowania skr贸tu bloku. Skr贸t bloku pe艂ni funkcj臋 鈥瀘dcisku palca鈥 鈥 jest identyfikatorem danych wej艣ciowych i w przypadku ka偶dego bloku jest inny.

Innymi s艂owy, aby utworzy膰 prawid艂owy skr贸t, g贸rnik musi zweryfikowa膰 i zebra膰 oczekuj膮ce transakcje, zorganizowa膰 je w blok kandyduj膮cy i przepu艣ci膰 dane bloku przez funkcj臋 skr贸tu. Je偶eli uda mu si臋 znale藕膰 prawid艂owy skr贸t do swojego bloku kandyduj膮cego, rozg艂asza go w sieci, dodaje do blockchaina i odbiera nagrody za kopanie.

Kiedy g贸rnik rozg艂asza sw贸j blok kandyduj膮cy i skr贸t w sieci, inni uczestnicy sieci powtarzaj膮 haszowanie, aby sprawdzi膰, czy dane wyj艣ciowe s膮 faktycznie prawid艂owe.聽

O ile do znalezienia prawid艂owego skr贸tu konieczne s膮 niezliczone pr贸by hashowania, potwierdzenie, czy wygenerowany skr贸t jest poprawny to drobnostka. Trzeba tylko przes艂a膰 te same dane wej艣ciowe (dane bloku) za pomoc膮 funkcji skr贸tu i sprawdzi膰, czy dane wyj艣ciowe s膮 takie same.

W przypadku algorytmu Proof of Work trzeba poda膰 dane, kt贸rych skr贸t spe艂nia okre艣lone warunki. Z tym 偶e nie wiadomo, jak do tego doj艣膰. Jedyna mo偶liwo艣膰 to przepu艣ci膰 dane przez funkcj臋 skr贸tu i sprawdzi膰, czy spe艂niaj膮 warunki. Je偶eli nie, trzeba je nieznacznie zmieni膰, aby uzyska膰 inny skr贸t. Zmiana nawet jednego znaku w danych daje zupe艂nie inny wynik, wi臋c nie da si臋 przewidzie膰, jakie mog膮 by膰 dane wyj艣ciowe.

W rezultacie aby utworzy膰 blok trzeba troch臋 pospekulowa膰. Zazwyczaj zbiera si臋 informacje o wszystkich transakcjach, kt贸re maj膮 zosta膰 dodane, oraz inne wa偶ne dane, a nast臋pnie hashuje wszystko razem. Poniewa偶 jednak dane si臋 nie zmieniaj膮, trzeba doda膰 informacj臋, kt贸ra jest zmienna. W przeciwnym razie jako wynik zawsze wychodzi ten sam skr贸t. Te zmienne dane to tzw. warto艣膰 jednorazowa. Jest to liczba, kt贸r膮 zmieniamy przy ka偶dej pr贸bie, dzi臋ki czemu za ka偶dym razem wychodzi nam inny skr贸t.

Podsumowuj膮c: kopanie to zbieranie danych w sieci blockchain oraz ich hashowanie wraz z warto艣ci膮 jednorazow膮 do chwili odnalezienia okre艣lonego skr贸tu. Je偶eli uda si臋 odnale藕膰 skr贸t, kt贸ry b臋dzie spe艂nia膰 warunki okre艣lone przez protok贸艂, otrzymujemy prawo do rozg艂oszenia nowego bloku w sieci. W贸wczas pozostali uczestnicy sieci uaktualniaj膮 swoje blockchainy o nowy blok.

W przypadku aktualnie najwi臋kszych kryptowalut warunki niezwykle trudno spe艂ni膰. Im wy偶sza moc haszowania sieci, tym trudniej znale藕膰 prawid艂owy skr贸t. Ma to dawa膰 gwarancj臋, 偶e wyszukiwanie blok贸w nie b臋dzie przebiega膰 zbyt szybko.

艁atwo sobie wyobrazi膰, 偶e pr贸ba odgadni臋cia ogromnej liczby skr贸t贸w na w艂asnym komputerze mo偶e by膰 kosztowna. Marnujemy cykle obliczeniowe i pr膮d. Ale je偶eli odnajdziemy prawid艂owy skr贸t, protok贸艂 nagradza nas kryptowalut膮.

Podsumujmy, co wiemy do tej pory:

  • G贸rnictwo jest trudne i kosztowne, ale zapewnia bezpiecze艅stwo sieci.

  • G贸rnicy, kt贸rym uda si臋 wyprodukowa膰 poprawny blok, dostaj膮 w nagrod臋 nowo wyemitowane kryptowaluty, a tak偶e op艂aty transakcyjne.

  • Wygenerowanie prawid艂owego skr贸tu zajmuje troch臋 czasu, ale inni u偶ytkownicy mog膮 艂atwo sprawdzi膰 jego poprawno艣膰, powtarzaj膮c hashowanie.

No dobrze. Ale co je偶eli spr贸bujemy oszuka膰 system? Kto nam zabroni umie艣ci膰 w bloku kilka nieprawid艂owych transakcji i utworzy膰 prawid艂owy skr贸t?

W tym miejscu pojawia si臋 kryptografia klucza publicznego. Nie b臋dziemy si臋 tutaj zag艂臋bia膰 w szczeg贸艂y, ale w artykule pt. Czym jest kryptografia klucza publicznego? znajdziesz kompleksowe wyja艣nienie. Kr贸tko m贸wi膮c, jest kilka zgrabnych sztuczek kryptograficznych, dzi臋ki kt贸rym ka偶dy u偶ytkownik jest w stanie zweryfikowa膰, czy dana osoba ma prawo do przes艂ania 艣rodk贸w, kt贸re pr贸buje wyda膰.

Kiedy tworzysz transakcj臋, podpisujesz j膮. Ka偶da osoba w sieci mo偶e por贸wna膰 Tw贸j podpis z kluczem publicznym i sprawdzi膰, czy s膮 zgodne. Sprawdzi r贸wnie偶, czy rzeczywi艣cie mo偶esz wydawa膰 swoje 艣rodki i czy suma Twoich nak艂ad贸w nie przewy偶sza sumy wyj艣ciowej (tj. czy nie wydajesz wi臋cej ni偶 masz).

Sie膰 automatycznie odrzuci ka偶dy blok, kt贸ry b臋dzie zawiera膰 nieprawid艂ow膮 transakcj臋. Kosztowna jest nawet sama pr贸ba oszukania systemu. B臋dziesz marnowa膰 w艂asne zasoby bez 偶adnej nagrody.

Na tym polega pi臋kno mechanizmu Proof of Work: dzi臋ki niemu oszukiwanie jest drogie, a uczciwe dzia艂anie si臋 op艂aca. Ka偶dy racjonalnie my艣l膮cy g贸rnik d膮偶y do zysku z inwestycji, wi臋c mo偶na si臋 spodziewa膰, 偶e b臋dzie dzia艂a艂 w spos贸b, kt贸ry z wi臋kszym prawdopodobie艅stwem przyniesie dochody.

Proof of Work (PoW) a Proof of Stake (PoS)

Jest wiele algorytm贸w konsensusu opr贸cz PoW, ale jednym z najpopularniejszych jest mechanizm Proof of Stake (PoS). Koncepcja wywodzi si臋 z roku 2011 i zosta艂a wdro偶ona w sieci Ethereum oraz kilku innych protoko艂ach.

W systemach Proof of Stake g贸rnik贸w zast臋puj膮 walidatorzy. Nie ma tu kopania ani wy艣cigu o to, kto pierwszy odgadnie skr贸t. Wyb贸r u偶ytkownik贸w jest bowiem losowy 鈥 u偶ytkownik wybrany musi zaproponowa膰 (czy te偶 opracowa膰) blok. Je偶eli blok b臋dzie wa偶ny, nale偶y si臋 nagroda z艂o偶ona z op艂at od transakcji danego bloku.

Nie mo偶na jednak wybra膰 dowolnego u偶ytkownika 鈥 protok贸艂 dokonuje wyboru wed艂ug wielu czynnik贸w. Aby si臋 zakwalifikowa膰, uczestnicy musz膮 zablokowa膰 stawk臋, czyli z g贸ry okre艣lon膮 kwot臋 natywnej waluty sieci blockchain. Stawka pe艂ni funkcj臋 podobn膮 do kaucji s膮dowej. Oskar偶eni wyk艂adaj膮 du偶膮 sum臋 pieni臋dzy, co ma ich zniech臋ci膰 do unikania procesu, i analogicznie walidatorzy zamra偶aj膮 stawk臋, co ma ich zniech臋ci膰 do oszukiwania. Je偶eli b臋d膮 post臋powa膰 nieuczciwie, ich stawka (lub jej cz臋艣膰) przepada.

Proof of Stake ma pewne przewagi nad protoko艂em Proof of Work. Najbardziej widoczn膮 jest mniejszy 艣lad w臋glowy 鈥 poniewa偶 w PoS nie trzeba tworzy膰 farm g贸rniczych o du偶ej mocy, zu偶ycie pr膮du stanowi tylko u艂amek nak艂ad贸w energetycznych potrzebnych w przypadku PoW.聽

PoS nie ma jednak takiej renomy jak PoW. Wprawdzie mo偶e si臋 wydawa膰, 偶e to marnotrawstwo, ale g贸rnictwo to jedyny algorytm konsensusu, kt贸ry sprawdza si臋 w boju od ponad dekady. Od chwili uruchomienia protok贸艂 PoW sieci Bitcoin zabezpiecza transakcje o warto艣ci bilion贸w dolar贸w. Aby da艂o si臋 z ca艂膮 pewno艣ci膮 stwierdzi膰, czy PoS jest mu w stanie dor贸wna膰 pod wzgl臋dem bezpiecze艅stwa, trzeba odpowiednio przetestowa膰 staking w d艂u偶szej perspektywie.

Wnioski Ko艅cowe

Mechanizm Proof of Work by艂 pierwotnym rozwi膮zaniem problemu podw贸jnego wydatkowania i okaza艂 si臋 niezawodny oraz bezpieczny. Bitcoin stanowi dow贸d na to, 偶e aby zapobiega膰 dwukrotnemu wydawaniu tych samych 艣rodk贸w, nie s膮 potrzebne podmioty scentralizowane. Dzi臋ki sprytnemu wykorzystaniu kryptografii, funkcji skr贸tu i teorii gier uczestnicy zdecentralizowanego ekosystemu mog膮 uzgadnia膰 stan finansowej bazy danych.

Dalsza Lektura

Wy艂膮czenie odpowiedzialno艣ci: Niniejsza tre艣膰 jest prezentowana u偶ytkownikowi w stanie jakim jest, wy艂膮cznie w celach og贸lnoinformacyjnych i edukacyjnych, bez jakichkolwiek gwarancji ani zapewnie艅. Nie nale偶y jej interpretowa膰 jako porady finansowej, prawnej ani innego rodzaju porady specjalistycznej. Nie ma ona r贸wnie偶 charakteru zach臋ty do zakupu jakiegokolwiek konkretnego produktu ani us艂ugi. U偶ytkownik powinien zasi臋gn膮膰 w艂asnej porady u odpowiednich zawodowych doradc贸w. Je偶eli artyku艂 jest napisany przez osob臋 z zewn膮trz, nale偶y pami臋ta膰, 偶e wyra偶one pogl膮dy s膮 pogl膮dami tej osoby i nie musz膮 odzwierciedla膰 pogl膮d贸w Akademii Binance. Wi臋cej informacji mo偶na znale藕膰 w naszym pe艂nym wy艂膮czeniu odpowiedzialno艣ci tutaj. Ceny aktyw贸w cyfrowych bywaj膮 zmienne. Mo偶liwe, 偶e warto艣膰 Twojej inwestycji spadnie lub wzro艣nie i nie odzyskasz zainwestowanej kwoty. Ponosisz wy艂膮czn膮 odpowiedzialno艣膰 za swoje decyzje inwestycyjne, a Akademia Binance nie ponosi odpowiedzialno艣ci za ewentualne straty. To nie jest porada z zakresu finans贸w, prawa ani innej dziedziny. Aby uzyska膰 wi臋cej informacji, zapoznaj si臋 z naszymi Warunkami U偶ytkowania i Ostrze偶eniem o Ryzyku.