Wstęp

Algorytm konsensusu to mechanizm umożliwiający użytkownikom lub maszynom koordynację w środowisku rozproszonym. Musi zapewnić, że wszyscy agenci w systemie będą mogli zgodzić się na jedno źródło prawdy, nawet jeśli niektórzy agenci zawiodą. Innymi słowy, system musi być odporny na awarie (patrz także: Bizantyjskie wyjaśnienie tolerancji na awarie).

W systemie scentralizowanym władzę nad systemem sprawuje jedna jednostka. W większości przypadków mogą wprowadzać zmiany według własnego uznania – nie ma jakiegoś skomplikowanego systemu zarządzania umożliwiającego osiągnięcie konsensusu wśród wielu administratorów. 

Ale w zdecentralizowanej konfiguracji to zupełnie inna historia. Załóżmy, że pracujemy z rozproszoną bazą danych – jak osiągnąć porozumienie w sprawie dodawania wpisów?

Pokonanie tego wyzwania w środowisku, w którym nieznajomi sobie nie ufają, było być może najważniejszym osiągnięciem torującym drogę blockchainom. W tym artykule przyjrzymy się, jak algorytmy konsensusu są niezbędne dla funkcjonowania kryptowalut i rozproszonych rejestrów.

Algorytmy konsensusu i kryptowaluta

W kryptowalutach salda użytkowników są rejestrowane w bazie danych – blockchainie. Istotne jest, aby każdy (a dokładniej każdy węzeł) utrzymywał identyczną kopię bazy danych. W przeciwnym razie wkrótce otrzymasz sprzeczne informacje, co podważy cały cel sieci kryptowalut.

Kryptografia klucza publicznego gwarantuje, że użytkownicy nie będą mogli wydawać sobie nawzajem monet. Nadal jednak potrzebne jest jedno źródło prawdy, na którym mogą polegać uczestnicy sieci, aby móc ustalić, czy środki zostały już wydane.

Satoshi Nakamoto, twórca Bitcoina, zaproponował system Proof of Work do koordynowania uczestników. Wkrótce zajmiemy się działaniem PoW – na razie zidentyfikujemy niektóre wspólne cechy wielu istniejących algorytmów konsensusu.

Po pierwsze, wymagamy, aby użytkownicy chcący dodać bloki (nazwiemy ich walidatorami) podawali stawkę. Stawką jest pewna wartość, którą walidator musi zaproponować, a która zniechęci go do nieuczciwego działania. Jeśli oszukają, stracą swoją stawkę. Przykładami są moc obliczeniowa, kryptowaluta, a nawet reputacja. 

Dlaczego mieliby zawracać sobie głowę ryzykowaniem własnych zasobów? Cóż, dostępna jest również nagroda. Zwykle składa się z natywnej kryptowaluty protokołu i składa się z opłat uiszczanych przez innych użytkowników, świeżo wygenerowanych jednostek kryptowaluty lub obu.

Ostatnią rzeczą, jakiej potrzebujemy, jest przejrzystość. Musimy umieć wykryć, kiedy ktoś oszukuje. W idealnym przypadku produkcja bloków powinna być dla nich kosztowna, a ich walidacja tania dla każdego. Dzięki temu zwykli użytkownicy mają pewność, że walidatorzy są kontrolowani.

Rodzaje algorytmów konsensusu

Dowód pracy (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 jakiegoś czasu. W Proof of Work walidatorzy (zwani górnikami) mieszają dane, które chcą dodać, dopóki nie utworzą konkretnego rozwiązania.

Hash to pozornie losowy ciąg liter i cyfr tworzony podczas przepuszczania danych przez funkcję skrótu. Jeśli jednak ponownie przepuścisz przez nie te same dane, zawsze otrzymasz ten sam wynik. Zmień chociaż jeden szczegół, a Twój skrót będzie zupełnie inny.

Patrząc na dane wyjściowe, nie można stwierdzić, jakie informacje zostały wprowadzone do funkcji. Są zatem przydatne do udowodnienia, że ​​znałeś dane przed określonym czasem. Możesz dać komuś jego skrót, a kiedy później ujawnisz dane, ta osoba będzie mogła przeprowadzić je przez funkcję, aby upewnić się, że wynik jest taki sam.

W Proof of Work protokół określa warunki, które decydują o ważności bloku. Może na przykład powiedzieć, że ważny będzie tylko blok, którego skrót zaczyna się od 00. Jedynym sposobem, w jaki górnik może stworzyć taki, który pasuje do tej kombinacji, jest użycie danych wejściowych metodą brute-force. Mogą modyfikować parametr w swoich danych, aby uzyskać inny wynik dla każdego odgadnięcia, dopóki nie uzyskają odpowiedniego skrótu. 

W przypadku głównych łańcuchów bloków poprzeczka jest ustawiona niewiarygodnie wysoko. Aby konkurować z innymi górnikami, potrzebujesz magazynu pełnego specjalnego sprzętu mieszającego (ASIC), aby mieć szansę na wyprodukowanie prawidłowego bloku.

Twoją stawką podczas wydobycia jest koszt tych maszyn i energia elektryczna potrzebna do ich uruchomienia. Układy ASIC są zbudowane w jednym celu, więc nie mają zastosowania w zastosowaniach innych niż wydobywanie kryptowalut. Jedynym sposobem na odzyskanie początkowej inwestycji jest wydobycie, co daje znaczną nagrodę, jeśli pomyślnie dodasz nowy blok do łańcucha bloków.

Sprawdzenie, czy rzeczywiście utworzyłeś właściwy blok, jest banalne dla sieci. Nawet jeśli wypróbowałeś biliony kombinacji, aby uzyskać odpowiedni skrót, wystarczy, że raz przeprowadzisz dane przez funkcję. Jeśli Twoje dane wygenerują prawidłowy skrót, zostanie on zaakceptowany, a Ty otrzymasz nagrodę. W przeciwnym razie sieć go odrzuci, a Ty będziesz tracić czas i prąd na darmo.

Dowód stawki (PoS)

Proof of Stake (PoS) został zaproponowany na początku istnienia Bitcoina jako alternatywa dla Proof of Work. W systemie PoS nie ma pojęcia górników, specjalistycznego sprzętu ani ogromnego zużycia energii. Wszystko czego potrzebujesz to zwykły komputer.

Cóż, nie wszystkie. Nadal musisz dodać trochę skórki do gry. W PoS nie udostępniasz zasobu zewnętrznego (takiego jak prąd czy sprzęt), ale wewnętrzny – kryptowalutę. Zasady różnią się w zależności od protokołu, ale ogólnie rzecz biorąc, istnieje minimalna kwota środków, którą musisz posiadać, aby kwalifikować się do obstawiania.

Stamtąd zamykasz swoje środki w portfelu (nie można ich przenosić podczas obstawiania). Zazwyczaj zgadzasz się z innymi walidatorami co do tego, jakie transakcje zostaną uwzględnione w następnym bloku. W pewnym sensie obstawiasz blok, który zostanie wybrany, a protokół wybierze jeden.

Jeśli wybrany zostanie Twój blok, otrzymasz część opłat transakcyjnych, w zależności od Twojej stawki. Im więcej środków zablokujesz, tym więcej możesz zyskać. Jeśli jednak spróbujesz oszukać, proponując nieprawidłowe transakcje, stracisz część (lub całość) swojej stawki. Mamy zatem podobny mechanizm jak w PoW – uczciwe działanie jest bardziej opłacalne niż działanie nieuczciwe.

Generalnie nie ma świeżo stworzonych monet w ramach nagrody dla walidatorów. Natywna waluta blockchainu musi zatem zostać wyemitowana w jakiś inny sposób. Można tego dokonać albo poprzez początkową dystrybucję (tj. ICO lub IEO), albo poprzez uruchomienie protokołu z PoW przed późniejszym przejściem do PoS.

Do tej pory czysty Proof of Stake został wdrożony tylko w mniejszych kryptowalutach. Dlatego nie jest jasne, czy może służyć jako realna alternatywa dla PoW. Choć teoretycznie wydaje się to rozsądne, w praktyce będzie zupełnie inaczej. 

Po wdrożeniu PoS w sieci o dużej wartości system staje się polem gry dla teorii gier i zachęt finansowych. Każdy, kto ma wiedzę na temat „zhakowania” systemu PoS, prawdopodobnie zrobiłby to tylko wtedy, gdyby mógł na tym zyskać – dlatego jedynym sposobem sprawdzenia, czy jest to wykonalne, jest aktywna sieć.

Wkrótce będziemy świadkami testów PoS na dużą skalę – Casper zostanie wdrożony w ramach serii aktualizacji sieci Ethereum (znanej łącznie jako Ethereum 2.0).

Inne algorytmy konsensusu

Dowód pracy i Proof of Stake to najczęściej omawiane algorytmy konsensusu. Ale istnieje wiele innych, każdy z własnymi zaletami i wadami. Sprawdź następujące artykuły:

  • Wyjaśnienie opóźnionego dowodu wykonania pracy

  • Wyjaśnienie konsensusu dotyczącego leasingu Dowód udziałów

  • Wyjaśnienie dowodu upoważnienia

  • Wyjaśniono dowód poparzenia

  • Wyjaśnienie delegowanego dowodu stawki

  • Wyjaśnienie konsensusu dotyczącego hybrydowego PoW/PoS

Zamykające myśli

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

Algorytmy konsensusu stanowią dziś podstawę nie tylko systemów pieniądza cyfrowego, ale także łańcuchów bloków, umożliwiając programistom uruchamianie kodu w sieci rozproszonej. Stanowią obecnie kamień węgielny technologii blockchain i mają kluczowe znaczenie dla długoterminowej rentowności różnych istniejących sieci.

Spośród wszystkich algorytmów konsensusu dominującą ofertą pozostaje Proof of Work. Nie zaproponowano jeszcze alternatywy, która byłaby bardziej niezawodna i bezpieczniejsza. To powiedziawszy, istnieje ogromna ilość badań i rozwoju nad zamiennikami PoW i prawdopodobnie zobaczymy ich więcej w nadchodzących latach.