Proof-of-Work i Proof-of-Stake – to dwa najczęściej stosowane algorytmy konsensusu w sieci blockchain. Mechanizmy te są kluczowe dla funkcjonowania walut wirtualnych, ponieważ zapobiegają niepożądanym sytuacjom, takim jak double spending czy zbyt częste hard forki. Który z nich jest lepszy?
Spis treści
Czemu służą algorytmy konsensusu?
Najpierw przyjrzyjmy się fundamentom blockchaina. Jego dwa najważniejsze filary to decentralizacja i niezmienność rejestru. Jest to rozproszona baza danych, za której utrzymywanie i poprawne funkcjonowanie odpowiadają komputery w sieci blockchain, zwane również “węzłami”. Wszystkie węzły mają zapisaną całą historię transakcji w blockchainie. Stąd technologia blockchain nazywana jest również “rozproszoną księgą transakcji”. Z uwagi na jej zdecentralizowany charakter sieci nie można wyłączyć lub zniszczyć poprzez “wyjęcie” jakiegokolwiek centralnego serwera. Bo takiego serwera po prostu nie ma.
Wszystkie transakcje w blockchainie są łączone w tzw. bloki. Umożliwia to program protokołów, a żaden istniejący blok nie może być usunięty ani zmodyfikowany. Dodanie nowego bloku jest jedynym sposobem aktualizacji blockchaina, a każdy węzeł może to zrobić bez żadnego organu nadzorującego.
Jeśli węzeł zlekceważy powszechnie obowiązujące standardy i samoistnie stworzy blok, to pozostałe węzły go zignorują i nie zostanie on dodany do sieci. Jeśli jednak ten sam węzeł nadal będzie tworzył bloki z pominięciem reguł blockchaina, a kilka innych węzłów dołączy do niego w tym procederze, to w społeczności powstanie spór. Wówczas może ona zdecydować się na tzw. hard fork, czyli przywrócenie stanu sieci sprzed powstania sporu. Jednak częste hard forki wpływają na stabilność sieci.
Jednocześnie istnieją także złośliwe węzły, które poprzez różnego rodzaju ataki mogą wywołać fałszywe transakcje. Najczęstszą jest tzw. double spending, czyli dwukrotne wydanie tej samej kryptowaluty. Aby się ustrzec przed tymi dwoma sytuacjami, wymagane są właśnie algorytmy konsensusu.
Już wiemy, czym jest i jak działa blockchain, oraz jaką rolę w tej sieci odgrywają algorytmy konsensusu Proof-of-Work (PoW) i Proof-of-Stake (PoS). Przybliżmy sobie zatem różnice i podobieństwa tych dwóch mechanizmów.
PoW: tworzenie bloków
Cynthia Dwork i Moni Naor po raz pierwszy opisali algorytm Proof-of-Work w 1993 roku. Ale nazwę, z której dzisiaj korzystamy, nadał mu Markus Jakobsson dopiero sześć lat później. Najbardziej znaną implementacją Proof-of-Work jest bitcoin. Dlatego to tej kryptowaluty użyjemy do wyjaśnienia koncepcji.
Transakcje w blockchainie bitcoina są zgrupowane w tzw. mempool, albo inaczej puli pamięci. Natomiast każdy nowy blok jest tworzony co 10 minut. Transakcje wymagają weryfikacji, a robią to górnicy kryptowalutowi. Dlatego proces weryfikacji transakcji nazywany jest “miningiem”, tudzież “kopaniem”.
Użytkownik inicjujący transakcję dostarcza jej dane do górnika, który następnie przystępuje do weryfikacji transakcji, włączając ją do następnego bloku. Za każdą zatwierdzoną transakcję górnicy są wynagradzani ułamkiem bitcoina. W związku z tym ze sobą rywalizują – udany górnik to taki, który wyprzedza innych w tej grze i rozwiązuje trudne równania matematyczne, używając ogromnej mocy obliczeniowej. Po wykonaniu zadania górnik ogłasza rozwiązanie w sieci, inne węzły je weryfikują, po czym tworzą nowy blok.
PoW: bezpieczeństwo
Zagadka kryptograficzna zawsze jest trudna dla górnika, ale z biegiem czasu jest on w stanie rozwikłać ją coraz szybciej. W związku z tym sieć dokonuje zmiany co dwa tygodnie, aby uczynić proces bardziej złożonym. Za każdym razem to zwiększa zapotrzebowanie na moc obliczeniową, która jest konieczna do znalezienia odpowiedzi.
Dlatego przeprowadzenie ataku poprzez przechwycenie mocy obliczeniowej w tej sieci jest zbyt kosztowne, a haker w końcu wyda więcej, niż jest w stanie zarobić. Dlatego blockchain działający na algorytmie konsensusu Proof-of-Work uważany jest za bardzo bezpieczny.
PoW: minusy algorytmu
Wysokie bezpieczeństwo wiąże się jednak z równie dużymi kosztami. Stale rosnąca moc obliczeniowa węzłów wymaga coraz więcej energii elektrycznej. Bitcoin nie jest poparty żadnym materialnym aktywem, a takie obciążenie dla środowiska negatywnie odbija się na wizerunku całej branży. Również zaangażowanie wszystkich węzłów w proces walidacji transakcji wpływa na skalowalność i przepustowość sieci.
Poza tym indywidualnym górnikom trudno jest stale modernizować swój sprzęt, aby rozwiązywać coraz trudniejsze równania matematyczne i płacić wyższe rachunki za prąd. Dlatego dziś mamy do czynienia z rosnącą centralizacją wydobycia, w której dominują duże, zorganizowane platformy wydobywcze. Taka pośrednia centralizacja jest sprzeczna z podstawową zasadą blockchaina, czyli decentralizacją.
PoS: działanie algorytmu
A teraz przejdźmy do algorytmu konsensusu Proof-of-Stake. W przypadku tego mechanizmu grupa węzłów decyduje się na walidację transakcji poprzez stawianie lub inaczej stackowanie własnych kryptowalut. Użytkownicy nazywani są zaś “stackerami”. Ten proces możemy opisać jako “blokowanie” swoich tokenów, żeby następnie, w różnych odstępach czasu, protokół losowo przypisał prawo do zatwierdzenia bloku dla jednego z uczestników sieci. Jest to zatem ułatwiona i pasywna wersja górnictwa kryptowalut, które znamy z citcoina.
Szansa na bycie wylosowanym nie zależy od tego, kto i jak szybko tworzy blok. Prawdopodobieństwo wyboru jest wprost proporcjonalne do ilości zablokowanych monet. Oznacza to, że im więcej kryptowalut jest blokowanych przez konkretny węzeł, tym większa szansa na to, że właśnie ten podmiot zostanie wylosowany jako walidator bloków, czyli “minter”, i wynagrodzony.
PoS: zalety
Proces zatwierdzania transakcji w blockchainie opartym na Proof-of-Stake nazywany jest “forgingiem”. Tutaj wszystkie kryptowaluty już są stworzone i nie ma potrzeby, aby je wydobywać. Eliminuje to konieczność rozwiązywania skomplikowanej zagadki kryptograficznej. Konieczne przestają też być ciągła modernizacja sprzętu i pokrywanie gwałtownie rosnących kosztów energii.
W tym przypadku w proces walidacji transakcji nie angażuje się cała sieć, tylko niewielka grupa użytkowników. Dzięki temu znacznie rośnie poziom skalowalności blockchaina poszczególnych kryptowalut.
Algorytmy konsensusu: PoW vs. PoS
Proof-of-Work to dobrze przetestowany mechanizm, używany w wielu projektach kryptowalutowych. Ataki na blockchain wykorzystujący ten algorytm są praktycznie niemożliwe przy dzisiejszej technologii obliczeniowej. Jednak wysokie koszty energii, zwiększone obciążenie środowiska, rosnąca centralizacja operacji wydobywczych i niska przepustowość sieci sprawiają, że w dłuższej perspektywie Proof-of-Work staje się zwyczajnie nieopłacalny.
Natomiast algorytm Proof-of-Stake zapewnia bardziej skalowalny blockchain z wyższą przepustowością sieci. Kilka dużych projektów kryptowalutowych, takich jak np. Ethereum czy DASH już przeniosło się na ten mechanizm.
Z drugiej strony Proof-of-Stake postrzegany jest jako mniej bezpieczny niż całkowicie zdecentralizowany algorytm Proof-of-Work. Teoretycznie jest możliwe, że jeden użytkownik kupi większość danej kryptowaluty, zostanie stackerem i w ramach ataku będzie zatwierdzał błędne transakcje. Jednak gospodarka rynkowa ma na to naturalny środek zapobiegawczy – cena drastycznie wzrośnie, gdy ktoś spróbuje kupić tak ogromną liczbę tokenów.
Może się również zdarzyć, że przeciętny stacker będzie celowo walidował fałszywe transakcje. Aby z tym walczyć projekt Ethereum, w ramach planowanego przejścia na Proof-of-Stake, zaprojektował protokół “Casper”. Zakłada on kary dla nieuczciwych użytkowników w postaci konfiskaty stackowanych kryptowalut i zakazanie im stackowania w przyszłości.
Dlatego po udanej implementacji algorytmu Proof-of-Stake w głównym protokole Ethereum jest bardzo prawdopodobne, że społeczność kryptowalutowa uwierzy w zdolność tego mechanizmu do utrzymania bezpieczeństwa sieci. To może przechylić szalę na korzyść Proof-of-Stake i tylko czas pokaże, czy te algorytmy konsensusu również w przyszłości będą walczyć o miano najpopularniejszego mechanizmu sieci blockchain.