Czym jest Proof of Work (PoW)?
HomeArticles

Czym jest Proof of Work (PoW)?

Średnio zaawansowany
4mo ago
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 „odcisk 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 „wykuć”) 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.