Spis Treści
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.
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.
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).
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:
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.