Koncepcja algorytmu Proof-of-Work (dowdów pracy) została pierwotnie opracowana w 1993 roku w celu zapobiegania atakom na infrastrukturę i usługi sieciowe przy użyciu metod takich jak DDoS czy Spam. Koncepcja zakłada, że użytkownik wykonuje określoną pracę (czynności odczytu) w celu uzyskania pełnego dostępu do niej. Praca ta jest zazwyczaj związana z obliczeniami komputerowymi.
W 2009 roku Bitcoin wprowadził innowacyjny sposób wykorzystania koncepcji Proof-of-Work jako algorytmu konsensusu sprawdzania transakcji i emisji nowych bloków do sieci blokowej.
Koncepcja Proof-of-Work rozprzestrzeniłasię i stała się szeroko stosowanym algorytmem konsensusu przez wiele kryptawalut.
Na czym polega Proof-of-Work?
Krótko mówiąc, koncepcja zakłada, że górnicy w sieci konkurują ze sobą w rozwiązywaniu złożonych zagadek matematycznych. Rozwiązywanie zagadek jest trudne. Kiedy górnik znajdzie rozwiązanie zagadki, wysyła informację o niej do sieci (wraz z blokiem transakcyjnym), a wszyscy inni górnicy sprawdzają, czy rozwiązanie jest poprawne.
Spójrzmy na poniższy przykład
Bitcoin to system oparty na technologii blockchain, który jest utrzymywany przez zbiorową pracę węzłów zdecentralizowanych. Niektóre z tych węzłów znane są jako górnicy i odpowiadają za dodawanie nowych bloków do sieci. Aby to zrobić, górnicy muszą spróbować odgadnąć pseudoliczbową liczbę (lub nonce ). Liczba ta, w połączeniu z danymi podanymi w bloku i przekazywanymi przez funkcję mieszania, musi dawać wynik, który odpowiada określonym warunkom, na przykład, musi to być hash rozpoczynający się od czterech zer. Po znalezieniu pasującego wyniku, inne węzły weryfikują poprawność wyniku, a górnicy, którzy rozwiążą zagadkę, otrzymują nagrodę blokową.
Biorąc pod uwagę powyższe, nie jest możliwe dodanie nowego bloku do głównego łańcucha w sieci bez uprzedniego znalezienia poprawnej nonce, co z kolei generuje hash bloku. Każdy zatwierdzony w sieci blockchain blok zawiera block hash, który reprezentuje pracę wykonaną przez górnika. To stamtąd pochodzi określenie dowód pracy.
Proof-of-Work pomaga chronić sieć przed wieloma wektorami ataków na nią. Udany atak na sieć opartą na PoW wymagałby dużej mocy obliczeniowej i czasu na wykonanie odpowiednich obliczeń, a zatem byłby nieefektywny, ponieważ koszty byłyby większe niż potencjalne nagrody za atak na sieć.
Jednym z problemów z Proof-of-Work jest to, że wydobycie blokowe wymaga drogiego sprzętu komputerowego, który zużywa duże ilości energii. Co więcej, skomplikowane obliczenia algorytmów gwarantują jedynie bezpieczeństwo sieci, które nie może być dalej wykorzystywane (przynajmniej w tym momencie).
Mimo, że Proof of Work nie jest najbardziej efektywnym podejściem, jest to nadal jedna z najpopularniejszych metod budowania konsensusu w sieciach blokowych. Istnieją już alternatywne metody i podejścia, które próbują rozwiązać problemy w PoW, ale tylko czas pokaże, które z nich zastąpi Proof-of-Work.