Czym jest algorytm konsensusu?
Strona G艂贸wna
Artyku艂y
Czym jest algorytm konsensusu?

Czym jest algorytm konsensusu?

Pocz膮tkuj膮cy
Opublikowane Dec 13, 2018Zaktualizowane Jun 13, 2024
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 鈥瀐akowania鈥 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.