Czym jest algorytm konsensusu?
Strona Główna
Artykuły
Czym jest algorytm konsensusu?

Czym jest algorytm konsensusu?

Początkujący
Opublikowane Dec 13, 2018Zaktualizowane Aug 17, 2023
7m

Spis Treści


Wprowadzenie

Algorytm konsensusu jest mechanizmem, który pozwala użytkownikom lub maszynom koordynować ustawienia rozproszone. Musi upewnić się, że wszyscy użytkownicy w systemie mogą polegać na jednym "źródle prawdy", nawet jeśli niektórzy z nich zawiodą. Innymi słowy, system musi być tolerancyjny dla uszkodzeń (zobacz także: Bizantyjska tolerancja błędów).

W scentralizowanej konfiguracji pojedynczy podmiot ma władzę nad systemem. W większości przypadków może wprowadzać zmiany według własnego uznania - nie ma złożonego systemu zarządzania umożliwiającego osiągnięcie konsensusu między wieloma administratorami.

W zdecentralizowanym systemie jest to zupełnie inna historia. Załóżmy, że pracujemy z rozproszoną bazą danych - jak dojść do porozumienia w sprawie dodawanych wpisów?

Przezwyciężenie tego wyzwania w środowisku, w którym obcy sobie nie ufają, było być może najważniejszym wydarzeniem torującym drogę dla blockchainów. W tym artykule przyjrzymy się, dlaczego algorytmy konsensusu są kluczowe dla funkcjonowania kryptowalut i rozproszonych ksiąg rozrachunkowych.


Algorytmy konsensusu i kryptowaluty

W kryptowalutach salda użytkowników są rejestrowane w bazie danych – blockchainie. Ważne jest, aby każdy (a dokładniej każdy węzeł) utrzymywał identyczną kopię bazy danych. W przeciwnym razie wkrótce pojawią się sprzeczne informacje, które podważą cały cel sieci kryptowalut.
Kryptografia klucza publicznego zapewnia, że użytkownicy nie mogą wydawać sobie nawzajem monet. Wciąż musi istnieć jedno źródło prawdy, na którym polegają uczestnicy sieci, aby móc ustalić, czy środki zostały już wydane.
Satoshi Nakamoto, twórca Bitcoina, zaproponował system Proof of Work w celu koordynacji uczestników. Wkrótce zajmiemy się tym, jak działa PoW - na razie zidentyfikujemy niektóre typowe cechy wielu istniejących algorytmów konsensusu.
Po pierwsze, wymagamy od użytkowników, którzy chcą dodawać bloki (nazywamy ich weryfikatorami),dostarczenia stawki (stake). Stawka jest jakąś wartością, którą walidator musi "wyłożyć", co zniechęca go do nieuczciwego działania. Jeśli oszukują, stracą stake. Przykłady tego co mogą stracić obejmują moc obliczeniową, kryptowaluty, a nawet reputację. 
Dlaczego mieliby męczyć się ryzykując własne zasoby? Dostępna jest także nagroda. Zwykle składa się z ona natywnej kryptowaluty protokołu z opłat uiszczanych przez innych użytkowników, świeżo wygenerowanych jednostek kryptowaluty lub obu.
Ostatnią rzeczą, której potrzebujemy, jest przejrzystość. Musimy być w stanie wykryć, kiedy ktoś oszukuje. Idealnie byłoby, gdyby wytwarzanie bloków było kosztowne, ale tanie, aby je zweryfikować. Zapewnia to, że walidatorami są zwykli użytkownicy.


Rodzaje algorytmów konsensusu

Proof of Work (PoW)

Proof of Work (PoW) jest ojcem chrzestnym algorytmów konsensusu blockchain. Po raz pierwszy został zaimplementowany w Bitcoinie, ale faktyczna koncepcja istnieje już od pewnego czasu. W Proof of Work walidatorzy (zwani górnikami) hashują dane, które chcą dodać, dopóki nie utworzą określonego rozwiązania.
Hash to pozornie losowy ciąg liter i cyfr, który powstaje, gdy przepuszczasz dane przez funkcję haszującą. Jeśli ponownie przepuścisz te same dane, zawsze uzyskasz takie same wyniki. Zmiana choć jednego szczegółu spowoduje, że Twój hash będzie zupełnie inny.

Patrząc na wynik, nie jesteś w stanie powiedzieć, jakie informacje zostały wprowadzone do funkcji. Przydadzą się do udowodnienia, że znałeś dane wcześniej. Możesz dać komuś swój hash, a kiedy później ujawnisz dane, osoba ta może przepuścić je przez funkcję, aby upewnić się, że dane wyjściowe są takie same.

W Proof of Work protokół określa warunki, dla których blok jest ważny. Może na przykład ustalić, że tylko blok, którego skrót zaczyna się od 00, będzie ważny. Jedynym sposobem dla górnika, aby stworzyć taki, który pasuje do tej kombinacji, jest użycie brute-force. Mogą modyfikować parametry w swoich danych, aby uzyskać inny wynik dla każdej próby odgadnięcia, dopóki nie uzyskają odpowiedniego hashu. 
W przypadku dużych łańcuchów bloków poprzeczka jest ustawiona niezwykle wysoko. Aby konkurować z innymi górnikami, potrzebujesz magazynu pełnego specjalnego sprzętu haszującego (ASIC), aby mieć szansę na wyprodukowanie prawidłowego bloku.
Stawką podczas wydobycia jest koszt tych maszyn i energii elektrycznej potrzebnej do ich działania. Układy ASIC są zbudowane w jednym celu, więc nie mają zastosowania poza wydobywaniem kryptowalut. Jedynym sposobem na odzyskanie początkowej inwestycji jest wydobywanie, które daje znaczną nagrodę, jeśli uda się dodać nowy blok do blockchainu.

Sprawdzenie, czy rzeczywiście utworzono właściwy blok, jest proste. Nawet jeśli wypróbowałeś tryliony kombinacji, aby uzyskać odpowiedni skrót, wystarczy, że raz prześlesz dane przez funkcję. Jeśli Twoje dane wygenerują prawidłowy hash, zostanie on zaakceptowany i otrzymasz nagrodę. W przeciwnym razie sieć go odrzuci, a Ty stracisz czas i prąd.


Proof of Stake (PoS)

Proof of Stake (PoS) został zaproponowany we wczesnych dniach Bitcoina jako alternatywa dla Proof of Work. W systemie PoS nie ma śladu po górnikach, specjalistycznym sprzęcie ani o ogromnym zużyciu energii. Wszystko czego potrzebujesz to zwykły komputer.
Cóż, nie do końca. Nadal musisz włożyć trochę zasobów. W PoS nie proponujesz zewnętrznego zasobu (takiego jak prąd czy sprzęt), ale wewnętrzny - kryptowalutę. Reguły różnią się w zależności od protokołu, ale na ogół ustalona jest minimalna ilość środków, które musisz posiadać, aby kwalifikować się do stakingu.

Następnie zamrażasz swoje fundusze w portfelu (nie można ich przenosić, gdy stakujesz). Zazwyczaj uzgadniasz z innymi weryfikatorami, jakie transakcje przejdą do następnego bloku. W pewnym sensie obstawiasz który blok zostanie wybrany, a protokół wybierze jeden.

Jeśli Twój blok zostanie wybrany, otrzymasz część opłat transakcyjnych, w zależności od stawki. Im więcej środków zablokujesz, tym więcej zyskasz. Ale jeśli spróbujesz oszukać, proponując nieprawidłowe transakcje, stracisz część (lub całość) stawki. Dlatego mamy podobny mechanizm do PoW - uczciwe działanie jest bardziej opłacalne niż nieuczciwe.
Zasadniczo nie ma świeżo utworzonych monet w ramach nagrody dla walidatorów. Rodzima waluta blockchain musi być zatem emitowana w inny sposób. Można tego dokonać albo przez wstępną dystrybucję (tj. ICO lub IEO), albo przez uruchomienie protokołu z PoW przed późniejszym przejściem do PoS.

Do tej pory czysty PoS był stosowany tylko w mniejszych kryptowalutach. Dlatego nie jest jasne, czy może służyć jako realna alternatywa dla PoW. Choć wydaje się teoretycznie poprawny, w praktyce może być zupełnie inaczej.

Po wdrożeniu, PoS w sieci o dużej wartości staje się polem do "zabawy" w teorię gier i zachęty finansowe. Każdy, kto ma wiedzę na temat „hakowania” systemu PoS, zrobiłby to tylko, gdyby mógł na tym skorzystać - dlatego jedynym sposobem na sprawdzenie, czy jest to możliwe, jest faktyczne odpalenie sieci.
Wkrótce zobaczymy PoS przetestowane na dużą skalę - Casper zostanie wdrożony w ramach szeregu aktualizacji sieci Ethereum (zwanych wspólnie Ethereum 2.0).


Inne algorytmy konsensusu

Proof of Work i Proof of Stake są najbardziej popularnymi algorytmami konsensusu. Istnieje natomiast wiele innych, wszystkie z własnymi zaletami i wadami. Sprawdź następujące artykuły:


Przemyślenia końcowe

Mechanizmy osiągania konsensusu są niezbędne do funkcjonowania systemów rozproszonych. Wielu uważa, że największą innowacją w Bitcoinie było użycie Proof of Work, aby umożliwić użytkownikom uzgodnienie wspólnego zestawu "faktów".

Algorytmy konsensusu stanowią dziś podstawę nie tylko cyfrowych systemów pieniądza, ale także blockchainów, umożliwiając programistom uruchamianie kodu w rozproszonej sieci. Są teraz kamieniem węgielnym technologii blockchain i mają kluczowe znaczenie dla długoterminowej rentowności różnych istniejących sieci.

Spośród wszystkich algorytmów konsensusu PoW pozostaje dominującą opcją. Alternatywa, która jest bardziej niezawodna i bezpieczniejsza, nie została jeszcze zaproponowana. To powiedziawszy, istnieje ogromna ilość badań nad zamiennikami PoW i prawdopodobnie zobaczymy ich więcej w nadchodzących latach.