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 Dec 12, 2022
8m

Spis Tre艣ci


Wprowadzenie

Proof of Work (w skr贸cie PoW) to mechanizm zapobiegania double-spendingowi. Wi臋kszo艣膰 g艂贸wnych kryptowalut u偶ywa PoW jako algorytmu konsensusu. W艂a艣nie to nazywamy metod膮 zabezpieczania rozproszonej ksi臋gi kryptowalut.
PoW by艂 pierwszym algorytmem konsensusu, kt贸ry pojawi艂 si臋 w kryptowalutach i do tej pory pozostaje dominuj膮cym. Zosta艂 wprowadzony przez Satoshiego Nakamoto w Whitepaper Bitcoina w 2008, ale sama technologia zosta艂a opracowana du偶o wcze艣niej.聽

HashCash Adama Backa to wczesny przyk艂ad algorytmu PoW w czasach sprzed kryptowalut. Wymagaj膮c od nadawc贸w wykonania niewielkiej ilo艣ci oblicze艅 przed wys艂aniem wiadomo艣ci e-mail, pozwalaj膮c odbiorcom ograniczy膰 spam. Obliczenia te praktycznie "nic nie kosztuj膮", ale szybko sumuj膮 si臋 dla kogo艣, kto masowo wysy艂a e-maile.


Czym jest double-spend?

Podw贸jne wydatkowanie (double-spend) wyst臋puje, gdy te same fundusze s膮 wydawane wi臋cej ni偶 jeden raz. Termin ten jest u偶ywany prawie wy艂膮cznie w kontek艣cie pieni臋dzy cyfrowych - w ko艅cu trudno by艂oby wyda膰 dwukrotnie t膮 sam膮 fizyczn膮 got贸wk臋. Kiedy p艂acisz za kaw臋, oddajesz got贸wk臋 kasjerowi, kt贸ry prawdopodobnie zamyka j膮 w kasie. Nie mo偶esz i艣膰 do kawiarni po drugiej stronie ulicy i zap艂aci膰 za kolejn膮 kaw臋 z tym samym banknotem.

W cyfrowych systemach kasowych istnieje taka mo偶liwo艣膰. Z pewno艣ci膮 duplikowa艂e艣 ju偶 plik komputerowy - wystarczy go skopiowa膰 i wklei膰. Mo偶esz wys艂a膰 ten sam plik do dziesi臋ciu, dwudziestu, pi臋膰dziesi臋ciu os贸b.

Poniewa偶 pieni膮dze cyfrowe to tylko dane, trzeba zapobiega膰 kopiowaniu i wydawaniu tych samych jednostek w r贸偶nych miejscach. W przeciwnym razie waluta upadnie w kr贸tkim czasie.

Je艣li chcesz zg艂臋bi膰 temat double-spendingu, sprawd藕 nasz artyku艂 pt.:"Double Spending wyja艣niony".


Dlaczego Proof of Work jest niezb臋dne?

Je艣li przeczytasz nasz przewodnik po technologii blockchain, b臋dziesz wiedzia艂, 偶e u偶ytkownicy transmituj膮 transakcje do sieci. Te transakcje nie s膮 jednak natychmiast uznawane za poprawne. Dzieje si臋 tak tylko wtedy, gdy zostan膮 dodane do blockchainu.聽
Blockchain to du偶a baza danych, kt贸r膮 ka偶dy u偶ytkownik mo偶e zobaczy膰, aby sprawdzi膰, czy 艣rodki zosta艂y wcze艣niej wydane. Wyobra藕 to sobie w ten spos贸b: Ty i trzej przyjaciele macie notatnik. Za ka偶dym razem, gdy jedno z was chce dokona膰 transferu jednostek, kt贸rych u偶ywacie, zapisujecie to 鈥 Alice p艂aci Bobowi pi臋膰 jednostek, Bob p艂aci Carol pi臋膰 jednostek itp.
Jest jeszcze jedna zawi艂o艣膰 - za ka偶dym razem, gdy dokonujesz transakcji, odnosisz si臋 do transakcji, z kt贸rej pochodz膮 艣rodki. Tak wi臋c, gdyby Bob p艂aci艂 Carol dwie jednostki, wpis wygl膮da艂by nast臋puj膮co: Bob p艂aci Carol pi臋膰 jednostek z wcze艣niejszej transakcji z Alice.

Teraz mamy spos贸b na 艣ledzenie jednostek. Je艣li Bob spr贸buje dokona膰 kolejnej transakcji przy u偶yciu tych samych jednostek, kt贸re w艂a艣nie wys艂a艂 do Carol, wszyscy b臋d膮 o tym natychmiast wiedzie膰. Grupa nie zezwoli na dodanie transakcji do notatnika.

Takie rozwi膮zanie mo偶e dzia艂a膰 dobrze w ma艂ej grupie. Wszyscy si臋 znaj膮, wi臋c prawdopodobnie uzgodni膮, kt贸ry ze znajomych powinien doda膰 transakcje do notatnika. Co je艣li chcemy stworzy膰 grup臋 10 000 uczestnik贸w? Pomys艂 na notatnik nie jest dobrze skalowany, poniewa偶 nikt nie chce zaufa膰 nieznajomemu, aby nim zarz膮dza艂.

Tutaj pojawia si臋 Proof of Work. Zapewnia, 偶e u偶ytkownicy nie wydaj膮 pieni臋dzy, kt贸rych nie maj膮 prawa wyda膰. Korzystaj膮c z po艂膮czenia teorii gier i kryptografii, algorytm PoW umo偶liwia ka偶demu aktualizacj臋 blockchainu zgodnie z regu艂ami systemu.


Jak dzia艂a PoW?

Nasz notatnik to blockchain. Nie dodajemy transakcji jednej po drugiej - zamiast tego 艂膮czymy je w bloki. Og艂aszamy transakcje w sieci, a nast臋pnie u偶ytkownicy tworz膮cy blok do艂膮cz膮 je do bloku kandyduj膮cego. Transakcje zostan膮 uznane za wa偶ne dopiero wtedy, gdy ich blok kandyduj膮cy stanie si臋 blokiem potwierdzonym, co oznacza, 偶e zosta艂 dodany do blockchaina.
Do艂膮czenie bloku nie jest jednak tanie. PoW wymaga, od g贸rnika (u偶ytkownik tworz膮cy blok) zu偶ywania cz臋艣ci w艂asnych zasob贸w. Zasobem tym jest moc obliczeniowa, kt贸ra jest wykorzystywana do hashowania danych bloku do momentu znalezienia rozwi膮zania.
Hashowanie danych bloku oznacza, 偶e przepuszczasz je przez funkcj臋 hashuj膮c膮, aby wygenerowa膰 hash bloku. Hash blokowy dzia艂a jak 鈥瀘dcisk palca鈥 - jest to to偶samo艣膰 danych wej艣ciowych i jest unikalny dla ka偶dego bloku.

Praktycznie niemo偶liwe jest odwr贸cenie hashu blokowego, aby uzyska膰 dane wej艣ciowe. Jednak znaj膮c dane wej艣ciowe, potwierdzenie, 偶e hash jest poprawny, jest banalne. Musisz tylko przes艂a膰 dane przez funkcj臋 i sprawdzi膰, czy dane wyj艣ciowe s膮 takie same.

W Proof of Work musisz poda膰 dane, kt贸rych hash spe艂nia okre艣lone warunki. Ale nie wiesz, jak tego dokona膰. Jedyn膮 opcj膮 jest przekazanie danych przez funkcj臋 hashuj膮c膮 i sprawdzenie, czy spe艂niaj膮 one okre艣lone warunki. Je艣li tak si臋 nie stanie, musisz nieco zmieni膰 swoje dane, aby uzyska膰 inny hash. Zmiana nawet jednego znaku w danych spowoduje zupe艂nie inny wynik, wi臋c nie mo偶na przewidzie膰, jaki mo偶e by膰 wynik.

W rezultacie, je艣li chcesz utworzy膰 blok, grasz w zgadywanie. Zazwyczaj bierzesz informacje o wszystkich transakcjach, kt贸re chcesz doda膰 i kilka innych wa偶nych danych, a nast臋pnie 艂膮czysz je wszystkie razem. Poniewa偶 Tw贸j zestaw danych si臋 nie zmieni, musisz doda膰 zmienn膮. W przeciwnym razie zawsze uzyskasz taki sam hash. Te zmienne dane nazywamy nonce. Jest to liczba, kt贸r膮 zmieniasz przy ka偶dej pr贸bie, wi臋c za ka偶dym razem dostajesz inny hash. To w艂a艣nie nazywamy wydobyciem.

Podsumowuj膮c, wydobywanie to proces gromadzenia danych blockchainu i hashowanie ich wraz z nonceami, dop贸ki nie znajdziesz okre艣lonego hashu. Je艣li znajdziesz ten, kt贸ry spe艂nia warunki okre艣lone w protokole, masz prawo do emisji nowego bloku do sieci. W tym momencie inni uczestnicy sieci aktualizuj膮 swoje blockchainy, aby uwzgl臋dni膰 nowy blok.

W przypadku dzisiejszych g艂贸wnych kryptowalut warunki s膮 niezwykle trudne do spe艂nienia. Im wy偶szy hash rate w sieci, tym trudniej jest znale藕膰 poprawny hash. Ma to na celu zapewnienie, 偶e bloki nie zostan膮 znalezione zbyt szybko.

Jak mo偶esz sobie wyobrazi膰, pr贸ba odgadni臋cia ogromnych ilo艣ci hashy mo偶e by膰 kosztowna dla twojego komputera. Marnujesz cykle obliczeniowe i elektryczno艣膰, ale protok贸艂 nagrodzi ci臋 kryptowalut膮, je艣li znajdziesz prawid艂owy hash.

Podsumujmy to co mamy:

  • Wydobywanie jest kosztowne.
  • Zostajesz nagrodzony je艣li wydob臋dziesz prawid艂owy blok.
  • Znaj膮c dane wej艣ciowe, u偶ytkownik mo偶e 艂atwo sprawdzi膰 sw贸j hash - u偶ytkownicy nieb臋d膮cy g贸rnikami mog膮 sprawdzi膰, czy blok jest poprawny, bez zu偶ywania du偶ej mocy obliczeniowej.

Na razie w porz膮dku. Ale co, je艣li spr贸bujesz oszukiwa膰? Co powstrzyma Ci臋 przed w艂o偶eniem do bloku szeregu nieuczciwych transakcji i wygenerowaniem poprawnego hashu?

W艂a艣nie tu pojawia si臋 kryptografia z kluczem publicznym. Nie zag艂臋bimy si臋 w ten temat tutaj, ale sprawd藕 Co to jest kryptografia z kluczem publicznym? dla kompleksowego spojrzenia na temat. Kr贸tko m贸wi膮c, stosujemy kilka schludnych sztuczek kryptograficznych, kt贸re pozwalaj膮 ka偶demu u偶ytkownikowi sprawdzi膰, czy kto艣 ma prawo przenie艣膰 艣rodki, kt贸re pr贸buje wyda膰.
Podczas tworzenia transakcji podpisujesz j膮. Ka偶dy w sieci mo偶e por贸wna膰 tw贸j podpis z kluczem publicznym i sprawdzi膰, czy pasuje. Sprawdz膮 tak偶e, czy rzeczywi艣cie mo偶esz wyda膰 swoje fundusze i czy suma twoich wej艣膰 jest wy偶sza ni偶 suma twoich wyj艣膰 (tj. Czy nie wydajesz wi臋cej ni偶 masz).

Ka偶dy blok zawieraj膮cy nieprawid艂ow膮 transakcj臋 zostanie automatycznie odrzucony przez sie膰. Kosztowna jest nawet pr贸ba oszukiwania. Zmarnujesz w艂asne zasoby bez 偶adnej nagrody.

Na tym polega pi臋kno Proof of Work: oszustwo jest drogie, ale uczciwe dzia艂anie jest op艂acalne. Ka偶dy racjonalny g贸rnik b臋dzie szuka艂 zwrotu z inwestycji (ROI), wi臋c mo偶na oczekiwa膰, 偶e zachowaj膮 si臋 w spos贸b gwarantuj膮cy doch贸d.



Chcesz zacz膮膰 swoj膮 przygod臋 z kryptowalutami? Kup Bitcoina na Binance!



Proof of Work vs. Proof of Stake

Istnieje wiele algorytm贸w konsensusowych, ale jednym z najbardziej oczekiwanych jest Proof of Stake (PoS). Koncepcja pochodzi z 2011 roku i zosta艂a wdro偶ona w niekt贸rych mniejszych protoko艂ach, ale 偶aden wi臋kszy blockchain nie zaimplementowa艂 jeszcze tego rozwi膮zania.

W systemach Proof of Stake g贸rnicy zast臋powani s膮 walidatorami. Nie ma tam 偶adnego wydobycia i wy艣cigu, aby zgadywa膰 hashe. Zamiast tego u偶ytkownicy s膮 wybierani losowo - je艣li zostan膮 wybrani, musz膮 zaproponowa膰 (lub 鈥瀢yku膰鈥) blok. Je艣li blok jest wa偶ny, otrzymaj膮 nagrod臋 sk艂adaj膮c膮 si臋 z op艂at transakcyjnych bloku.

Jednak nie ka偶dy mo偶e zosta膰 wybrany - protok贸艂 wybiera na podstawie wielu czynnik贸w. Aby si臋 zakwalifikowa膰, uczestnicy musz膮 zablokowa膰 stawk臋 (stake), kt贸ra jest z g贸ry okre艣lon膮 kwot膮 natywnej waluty blockchainu. Stawka dzia艂a jak kaucja: podobnie jak oskar偶eni wk艂adaj膮 du偶膮 sum臋 pieni臋dzy, aby zniech臋ci膰 ich do pomini臋cia procesu, osoby zatwierdzaj膮ce blokuj膮 stake, aby zniech臋ci膰 ich do oszukiwania. Je艣li dzia艂aj膮 nieuczciwie, ich stawka (lub jej cz臋艣膰) zostanie zabrana.
PoS ma pewne zalety w por贸wnaniu z PoW. Najbardziej zauwa偶alny jest mniejszy 艣lad w臋glowy - poniewa偶 nie ma potrzeby farm g贸rniczych o du偶ej mocy w PoS, zu偶yta energia elektryczna jest tylko u艂amkiem tej zu偶ywanej w PoW.聽

To powiedziawszy, nadal pozostaje w tyle za PoW. Chocia偶 mo偶e to by膰 postrzegane jako marnotrawstwo, wydobycie jest jedynym algorytmem konsensusu, kt贸ry sprawdzi艂 si臋 na du偶膮 skal臋. W nieco ponad dekad臋 zapewni艂 transakcje warte biliony dolar贸w. Aby z ca艂膮 pewno艣ci膮 stwierdzi膰, czy PoS mo偶e konkurowa膰 z PoW w kwestiach bezpiecze艅stwa, staking musi zosta膰 odpowiednio przetestowany "na wolno艣ci".


Przemy艣lenia ko艅cowe

Proof of Work by艂 oryginalnym rozwi膮zaniem problemu podw贸jnego wydatkowania i okaza艂 si臋 niezawodny i bezpieczny. Bitcoin udowodni艂, 偶e nie potrzebujemy scentralizowanych podmiot贸w, aby zapobiec dwukrotnemu wydaniu tych samych funduszy. Dzi臋ki sprytnemu wykorzystaniu kryptografii, funkcji hashuj膮cych i teorii gier uczestnicy w zdecentralizowanym 艣rodowisku mog膮 uzgodni膰 stan finansowej bazy danych.