Wyjaśniamy decentralizację: przegląd 10 najpopularniejszych algorytmów konsensusu

Karolina Kondrak

8 min czytania

13 kwietnia 2023

Technologia Blockchain jest oparta na koncepcji decentralizacji. W tradycyjnym scentralizowanym systemie, pojedynczy podmiot, taki jak rząd lub królow, firma czy szef ma decyzyjną władzę i kontrolę. Z kolei w systemie zdecentralizowanym, takim jak blockchain, nie ma jednego centralnego organu, który sprawuje nadzór, a mimo to transakcje dokonywane w blockchainie są uważane za wysoce bezpieczne i w zweryfikowane. Jak to jest możliwe?

W tym właśnie miejscu z pomocą przychodzą metody konsensusu.

Jest ich sporo, a każda z nich ma swoje wady i zalety, które znacząco przekłądają się na ich bezpieczeństwo, skalowalność i energooszczędność. Wybór odpowiedniej metody konsensusu jest ważnym zagadnieniem dla programistów i samych użytkowników.

W tym wpisie na blogu omówimy niektóre z najbardziej rozpowszechnionych, a także te mniej popularne metody konsensusu stosowane w technologii blockchain.

Czym jest decentralizacja?

Technologia Blockchain jest systemem zdecentralizowanym. Jest on kontrolowany przez sieć użytkowników sieci (w odróżnieniu od systemu z pojedynczym organem nadzorującym), a wszelkie zmiany wprowadzane do systemu muszą być zatwierdzone przez całość lub większość sieci.

Metody konsensusu służą do zapewnienia, że wszystkie węzły w sieci blockchain są zgodne co do stanu sieci. Są one mechanizmem, za pośrednictwem którego węzły w sieci osiągają porozumienie w sprawie ważności transakcji i aktualnego stanu rejestru. To pozwala na zawieranie bezpiecznych i przejrzystych transakcji bez pośredników.

Czym jest konsensus?

W kontekście blokchaina konsensus odnosi się do procesu uzgadniania jednej wersji prawdy. Algorytmy konsensusu czuwają nad tym, aby można mieć pewność, że wszystkie węzły w sieci zgadzają, że pewien konkretny zestaw transakcji i stan rejestru jest są prawdziwe i obowiązujące.

Dlaczego konsensus jest ważny?

Algorytmy konsensusu są kluczowe dla sieci blockchain z kilku powodów:

  1. Bezpieczeństwo. Algorytmy konsensusu dają pewność, że wszystkie węzły akceptują dokładnie ten sam układ transakcji i że te transakcje są wiążące. Zapobiega to oszustwom i innym szkodliwym działaniom.

  2. Decentralizacja. Algorytmy konsensusu pozwalają na zdecentralizowane podejmowanie decyzji. Żaden pojedynczy podmiot nie kontroluje sieci, dzięki czemu jest ona bardziej odporna na ataki i nieprawidłowości.

  3. Przejrzystość. Algorytmy konsensusu gwarantują, że wszystkie węzły mają dostęp do tych samych informacji. Sprzyja to przejrzystości i zmniejsza ryzyko błędów i konfliktów.

Przegląd najpowszechniejszych metod konsensusu

1. Proof of Work (PoW)

Proof of Work to metoda konsensusu stosowana w sieci Bitcoin. W PoW węzły ścigają się ze sobą, by jak najszybciej rozwiązać skomplikowane zadanie matematyczne. Pierwszy węzeł, który rozwiąże zagadkę, dostaje możliwość dodania nowego bloku do blockchaina i otrzymania nagrody w postaci kryptowaluty. Rozwiązanie skomplikowanego zadania nazywane jest hashem. Aby go uzyskać potrzeba dużej ilości mocy obliczeniowej. Proces ten nazywany jest wydobywaniem (mining).

Główną wadą PoW jest wysokie zapotrzebowanie na energię elektryczną i moc obliczeniową. To sprawia, że jest raczej powolny i drogi w użyciu. Nie jest to również najbardziej przyjazna dla środowiska metoda.

W kwestii bezpieczeństwa, z jednej storny PoW jest podatny na atak 51%. Oznacza to, że jeśli użytkownik lub ich grupa przejmie więcej niż 50% całkowitej mocy wydobywczej, będzie mieć możliwość dokonywania zmian w konkretnym bloku.

Z dugiej strony wysokie koszty wydobycia sprawiają, że również ataki wiążą się z dużymi nakładami finansowymi, stąd też metoda ta oferuje względnie duży poziom bezpieczeństwa. Jest to również protokół, który jest sprawdzony na szeroką skalę, ze względu na wiek i ropowszechenienie. W ramach Bitcoina, bezpiecznie przechował on ponad 1 trylion USD.

2. Proof of Stake (PoS)

Proof of Stake to metoda konsensusu stosowana w wielu nowszych sieciach blockchain. W PoS węzły, które mogą zatwierdzić transakcje, są wybierane na podstawie różnych losowo wybranych atrybutów, takich jak np. wiek lub ilość posiadanych kryptowalut na danym adresie. Aby wziąć udział w procesie budowania łańcucha, użytkownicy muszą zdeponować, czy też zablokować, określoną liczbę monet (jest to tzw. staking). Węzły z większą ilością monet będą mieć w tym przypadku wyższą szansę, że zostaną wybrane do zatwierdzenia transakcji. Nagrodą za zatwierdzanie transakcji jest procent opłat transakcyjnych, a w niektórych przypadkach kryptowalut także jej określona jednostka.

PoS jest algorytmem, który relatywnie łatwo można dostosować do konkretnych potrzeb użytkowych. Dlatego też istenieje wiele mechanizmów konsensusu w różnych blockchainach, opartych na tym algorytmie (niektóre z nich opisane są poniżej).

Odnośnie do zalet PoS, na pewno jest on metodą szybszą i bardziej energooszczędną niż PoW: nie wymaga on od użytkowników rozwiązywania skomplikowanych zagadek matematycznych. Jest też bardziej skalowalny, gdyż nie opiera się w takim zakresie na mocnych, fizycznych maszynach w celu uzyskania konsensusu.

PoS często jest postrzegany jako bardziej decentralizujący mechanizm i łatwiej dostępny szerszemu gronu zainteresowanych. Jednak tu również istnieje ryzyko monopolizowania sieci: węzły z większą ilością kryptowalut mają potencjalnie większą siłę przebicia i wpływ w sieci. Część kryptowalut opartych na Proof of Stake nie ma ograniczeń na kwoty stawiane przez poszczególnych walidatorów.

Proof of Stake i Proof of Work - porównanie

Proof of Work i Proof of Stake: porównanie najważniejszych zagadnień.

3. Delegated Proof of Stake (DPoS)

Delegated Proof of Stake to odmiana PoS używana w niektórych sieciach blockchain. W DPoS użytkownicy, interesariusze posiadający określoną kryptowalutę, wybierają walidatorów, którym powierzają zastakowane monety. Walidatorzy, zwani też delegatami, są odpowiedzialni za zatwierdzanie transakcji. Delegaci otrzymują nagrodę za swoją pracę.

Metoda ta jest szybsza i bardziej wydajna niż PoS i PoW, ponieważ eliminuje potrzebę zatwierdzania transakcji przez wszystkie węzły. Nie wymaga też od węzłów rozwiązywania złożonych problemów matematycznych. DPoS jest bardziej skalowalny, gdyż jest w stanie przetwarzać więcej transakcji na sekundę (TPS). Próg wejścia jest stosunkowo niski, z tego względu DPoS jest postrzegany jako jeden z najbardziej demokratycznych i zdecentralizowanych algorytmów konsensusu.

W kwestii zagrożeń, DPoS polega na mniejszej grupie węzłów znanych jako delegaci, czypoświadczający, do zatwierdzania transakcji, co może zwiększyć potencjał centralizacji. Algorytm jest podatny na szkodliwe ataki, takie jak Sybil, gdzie można uzyskać kontrolę nad znaczną liczbą węzłów, co potencjalnie pozwala na manipulowanie siecią.

4. Practical Byzantine Fault Tolerance (BFT)

Practical Byzantine Fault Tolerance to metoda konsensusu, która nawiazuje do zagadnienia problemu bizantyjskich generałów z teorii gier, gdzie generałowie próbują ustalić wspólne, skoordynowane działanie i stoi przed nimi problem efektywnej komunikacji.

Koncepcja ta zakłada, że aby nie ponieść porażki, kluczowe jest podjęcie jednakowej decyzji przez różne strony, bez względu na to czy decyzją będzie atak czy wycofanie się.

W PBFT węzły wymieniają się wiadomościami i głosują nad ważnością transakcji. Algorytm przechodzi przez kilka etapów, w tym fazę żądania, fazę wstępnego przygotowania, fazę przygotowania, fazę zobowiązania i fazę odpowiedzi. Podczas każdej fazy węzły komunikują się ze sobą i próbują osiągnąć porozumienie w sprawie ważności transakcji. Jeśli węzeł nie zadziała lub będzie działał na szkodę systemu, pozostałe węzły mogą go zidentyfikować i wykluczyć z procesu konsensusu.

Algorytm ten oferuje wiele plusów: wysoki poziom odporności na błędy, nawet w obecności wadliwych lub złośliwych węzłów. Metoda ta jest szybsza i bardziej wydajna niż PoW i PoS, ponieważ nie wymaga rozwiązywania skomplikowanych obliczeń. PBFT może być stosowany w sieciach blockchain z uprawnieniami, gdzie węzły są znane i zaufane, dzięki czemu nadaje się do przypadków użycia w przedsiębiorstwach.

PBFT może być zasobochłonny, wymaga sporego obciążenia sieciowego, aby zapewnić porozumienie między węzłami. Natomiast może być kłopotliwy w kwestii skalowalności, przez fakt dużej ilości komunikacji. Nie jest też odpowiedni dla dużych publicznych sieci blockchain, w których węzły mogą nie być znane lub zaufane.

5. Proof of Authority (PoA)

Proof of Authority (PoA) to algorytm konsensusu stosowany w niektórych sieciach blockchain, w których walidacja bloku jest przeprowadzana przez wybraną grupę węzłów znanych walidatorami. Są oni określani i autoryzowani przez administratorów sieci, a ich tożsamość jest publicznie znana.

W przeciwieństwie do innych mechanizmów konsensusu, takich jak Proof of Work (PoW) lub Proof of Stake (PoS), PoA nie wymaga od węzłów rozwiązywania złożonych problemów matematycznych lub posiadania dużych ilości kryptowaluty do zatwierdzania transakcji. Zamiast tego reputacja i wiarygodność osób zatwierdzających działa jako zabezpieczenie przed szkodliwą działalnością w sieci.

Inne Proofy

Co z innymi algorytmami "proof of" używanymi w kryptowalutach i systemach blockchain? Choć nie wszystkie z nich są tak szeroko rozpowszechnione lub uważane za równie bezpieczne jak ich bardziej popularni kuzyni PoW i PoS, to warto mieć je na uwadze. Są one bowiem dowodem na to, że badania i rozwój w dziedzinie blockchain i kryptowalut są w toku i mogą one zyskać na znaczeniu w przyszłości, w miarę pojawiania się nowych scenariuszy i przykładów użycia.

6. Proof of Burn (PoB)

Jest to algorytm konsensusu, który polega na celowym niszczeniu ("spalaniu") kryptowaluty, aby udowodnić stopień zaangażowania węzła w sieć. Im więcej kryptowaluty węzeł spali, tym bardziej prawdopodobne jest, że zostanie wybrany do zatwierdzania transakcji i tworzenia nowych bloków.

7. Proof of Capacity (PoC)

W tym algorytmie węzły udowadniają swoje zaangażowanie w sieć poprzez przydzielenie części miejsca na dysku twardym do przechowywania danych blockchain.

8. Proof of Elapsed Time (PoET)

Ten algorytm konsensusu jest używany w niektórych sieciach blockchain i wymaga, aby węzły odczekały losowo określoną ilość czasu, zanim zostaną dopuszczone do zatwierdzania transakcji i tworzenia nowych bloków.

9. Proof of Importance (PoI)

Jest to algorytm konsensusu stosowany w sieci kryptowalut NEM, który uwzględnia "ważność" węzła w oparciu o czynniki takie jak ilość posiadanej kryptowaluty, liczba przetworzonych transakcji oraz reputacja węzła w sieci.

10. Proof of Reputation (PoR)

Ten algorytm jest używany w niektórych aplikacjach blockchain, aby zapewnić, że tylko węzły o dobrej reputacji w sieci są dozwolone do zatwierdzania transakcji i tworzenia nowych bloków.

Wnioski

W przestrzeni technologii blockchain mechanizmy konsensusu stanowią trzon bezpiecznych i zdecentralizowanych systemów. Mechanizmy te służą do tego, aby mieć pewność, że wszystkie węzły w sieci zgadzają się co do tego samego zestawu transakcji i aktualnego stanu rejestru. Wybór algorytmu konsensusu jest decyzją natury technicznej, która może mieć znaczący wpływ na wydajność sieci, zużycie energii i bezpieczeństwo. Z tego względu istotne jest, aby deweloperzy przeprowadzili dokładną ewaluację i wybrali algorytm konsensusu, który pasuje do konkretnych wymagań ich sieci.

Konsensus jest krytycznym elementem technologii blockchain. Ogólnie rzecz biorąc, każda metoda ma swoje zalety i wady, a wybór właściwej metody konsensusu może mieć znaczący wpływ na jej bezpieczeństwo, skalowalność i efektywność energetyczną.

Karolina Kondrak

Copywriterka, tłumaczka, lingwistka. Kreatywny umysł o nieustannie poszerzającym się spektrum zainteresowań: od technologii kosmicznych po nowe techniki haftowania. Ponad wszystkie wybija się jedno: zamiłowanie do języka.