fbpx

Czym jest PoW – Proof of Work?

Proof of Work to protokół, którego główną funkcją jest zapobieganie atakom DoS (ang. Denial of Service, czyli odmowa/ blokada usługi) – atak, polegający na wysyłaniu nieprawidłowych zapytań, które prowadzą do zajęcia wszystkich wolnych zasobów komputera lub sieci.

Krótka Historia Proof of Work

Proof of Work (PoW) istniał już przed Bitcoinem, i sposób działania został po raz pierwszy opublikowany przez Cynthia Dwork i Moni Naor już w roku 1993, natomiast termin “proof of work” został rozpowszechniony przez Markusa Jakobsson oraz Ari Juels w dokumencie z roku 1999. To właśnie ten protokół umożliwił w 2008 stworzyć system Bitcoina ponieważ umożliwiał rozproszony konsensus bez potrzeby pośredników.

Tradycyjne metody płatności odbywają się za pomocą pośredników takich jak Visa, PayPal czy banki. Wszyscy wiemy jak to działa: Wysyłamy przelew do kolegi Michała, bank pobiera z naszego konta 100 PLN i powiększa saldo Michała o kwotę 100 PLN. Problem w tym, że wszystko powierzamy pośrednikowi i musimy mu ufać w 100%. Żyjemy w czasach gdy organizacje zaufania publicznego tracą zaufanie. Powiedzenie “masz to jak w banku” jest nieadekwatne do tej instytucji i co najwyżej może oznaczać pewne koszty i prowizje.

Stworzeniu Bitcoina przyświecała idea aby móc przekazywać sobie wartość z dowolnego miejsca na świecie bez konieczności korzystania z pośredników. Jednak skąd algorytm ma wiedzieć, że wysyłamy komuś pieniądze jeśli żaden urzędnik nie przebija pieczątki na dokumencie? 

Wszystko dzieje się za pomocą mocy obliczeniowej komputerów, która jest wykorzystywana do obliczenia wysoce zasobożernych i skomplikowanych danych (transakcji), które łączone są w bloki będące częścią rozproszonej księgi głównej zwanej blockchain.  

Obliczanie tych bloków danych z informacjami (np. transakcjami) nazywamy “mining”, czyli kopanie. Inną popularną nazwą jest również “górnictwo cyfrowe”.

Proof of Work w teorii

Są to problemy lub “puzle”, które wymagają wiele mocy obliczeniowej do rozwiązania. Zagadek lub układanek jest kilka:

  • funkcja hash – czyli jak znając output (wyjście) odnaleźć input (wejście)
  • faktoryzacja całkowitoliczbowa – proces, w którym liczba złożona jest rozkładana na mniejsze liczby całkowite a następnie upraszczana do liczb pierwszych.
  • jak znaleźć łańcuch wartości funkcji hash – jeśli serwer wykryje próbę ataku DoS (odmowa usługi) to potrzebuje on kalkulacji funkcji hash od niektórych węzłów w określonej kolejności.

Kluczowym elementem układanek jest fakt, że poprawne rozwiązanie obliczenia jest bardzo trudne i wymaga dużej mocy obliczeniowej, natomiast jego poprawność jest łatwa do zweryfikowania przez sieć. Wszyscy kopacze w sieci konkuruję ze sobą aby być pierwszym, kto prawidłowo rozwiąże problem w zamian za co otrzymają nagrodę (block reward).

Kolejnym ważnym aspektem jest to aby układanka nie była ani zbyt łatwa ani zbyt trudna – a dostosowana do wielkości sieci. Jeśli do sieci dołączy więcej komputerów (więcej mocy obliczeniowej), algorytm automatycznie sprawi aby rozwiązanie zagadki matematycznej dla górników było trudniejsze, po to by blok mógł zostać obliczony w określonym czasie (np. w przypadku BTC jest to 10 minut) a nie krócej. Jeśli bloki byłyby łatwiejsze do obliczenia to podatność na ataki lub włamania wzrasta drastycznie. Jeśli natomiast blok zostanie wykopany zbyt wolno, sieć spowalnia. Trudność kopania wyrażana jest w hash-rate (im większy, tym więcej mocy obliczeniowej potrzeba na wykopanie każdego bloku).

Proof of Work w praktyce

Aby łatwiej zapamiętać cały proces ubierzmy to wszystko w krótką opowieść. Załóżmy, iż zlecam Tobie i kilku innym osobom zadanie układania puzzli, a temu kto poprawnie ułoży cały zestaw zapłacę 12.5 BTC. Pojedyncze puzzle symbolizują transakcje, każda z nich musi się zgadzać i pasować do całej układanki (bloku). Dodatkowo każda z układanek musi pasować do innych układanek. Oczywiście Tych puzzli jest cała masa więc sam nie dam rady sprawdzić czy dobrze je ułożyliście. Z tego powodu cała sieć będzie sprawdzać (za pomocą algorytmów matematycznych) czy puzzle zostały poprawnie ułożone. Dlatego zależy Ci aby układać ich jak najwięcej ale poprawnie i w taki sposób, aby inni mogli łatwo zweryfikować czy układanka się zgadza. Jeśli wszystko będzie w porządku, czeka na Ciebie nagroda a jeśli coś pomylisz to nie otrzymasz zapłaty.

    1. Transakcje są grupowane w tzw. bloki.
    1. Kopacze weryfikują czy transakcje w każdym z bloków są prawidłowe. Aby tego dokonać miner musi rozwiązać trudne i zasobożerne obliczenia – proof of work.
    1. Pierwszy, który rozwiąże tę zagadkę otrzymuje nagrodę (block reward).
  1. Zweryfikowane transakcje są przechowywane w blockchainie (rozproszonej księdze głównej)  

Jak Proof of Work zapewnia bezpieczeństwo sieci?

Podstawową funkcją obronną PoW jest obrona przed atakami typu DoS. Algorytm PoW narzuca pewne ograniczenia na sieć, przez co ataki tego typu wymagałyby zużycia wielu zasobów do osiągnięcia jakichkolwiek efektów.

Konsensus w sieci jest ustalany głosem większości. Jako, że wszystkie maszyny w sieci działają w oparciu o ten sam algorytm to jedynym co sprawia, że współzawodniczą one ze sobą jest różna ilość mocy obliczeniowej jaką posiada każdy z węzłów (węzłem jest pojedynczy górnik, który może mieć nawet kilka tysięcy koparek). Sposób, w jaki działa Proof of Work sprawia, że transakcje, które mają już określony “wiek” nie mogą zostać zanegowane. Każdy kolejny blok łączy się z poprzednim. Jeśli ktoś w sieci wykopie blok, którego suma kontrolna hash nie będzie zgadzała się z pozostałymi blokami z łańcucha to taki blok zostanie nie zostanie prawidłowo potwierdzony – a w konsekwencji odrzucony.

Sieć musi być zdecentralizowana nie bez powodu, ponieważ jeśli jakaś osoba lub grupa osób zdobędzie więcej niż 50% mocy obliczeniowej sieci to mogą oni nadpisywać kolejne bloki nieprawidłowymi informacjami. O ile w przypadku dużych sieci takich jak Bitcoin, byłoby to niezwykle kosztowe a przez co mało prawdopodobne tak w przypadku mniejszych sieci jest to możliwe. Więcej na temat ataków 51% przeczytasz tutaj: LINK

Koszty utrzymania sieci PoW

W miarę jak coraz więcej maszyn kopie BTC to przesyłanie środków staje się droższe, ponieważ komputery (górnicy) muszą otrzymywać większą nagrodę niż ich koszty prądu. Każda transakcji BTC zużywa obecnie tyle prądu co 30 gospodarstw domowych przez cały dzień, a całkowite zużycie prądu przez sieć wzrosło 7x od marca 2017 do lipca 2018. Na dzień pisania tego artykułu sieć BTC w przybliżeniu zużywa 72 TWh – jest to więcej niż zużywa cała Austria (która wśród wszystkich krajów świata plasuje się na 40 miejscu pod kątem całkowitego zużycia energii elektrycznej). Warto nadmienić, że problem ten dotyczy wyłącznie blockchainów wykorzystujących algorytm PoW. Proof of Stake jest znacznie bardziej energooszczędny.

Inną popularną metodą kopania (a ściślej mówiąc forgowania), która w dodatku jest o wiele bardziej energooszczędna jest Proof of Stake (PoS).

Nie przegap ważnych informacji!

Otrzymuj najważniejsze informacje
i ekskluzywne materiały na temat kryptowalut.

Invalid email address
Pamiętaj, że możesz wypisać się w każdej chwili.

Komentarze (Brak)

Zostaw Swój Komentarz

bitcoin
Bitcoin (BTC) $ 3,415.71
ripple
XRP (XRP) $ 0.300183
ethereum
Ethereum (ETH) $ 88.19
stellar
Stellar (XLM) $ 0.113098
tether
Tether (USDT) $ 1.01
bitcoin-cash
Bitcoin Cash (BCH) $ 99.25
eos
EOS (EOS) $ 1.85
bitcoin-sv
Bitcoin SV (BSV) $ 88.35
litecoin
Litecoin (LTC) $ 23.76
tron
TRON (TRX) $ 0.013346