Konsensus
Proces, w którym zdecentralizowana sieć uzgadnia wspólną wersję historii: poprawne bloki, kolejność transakcji i aktualny stan blockchaina.
Czym jest konsensus
Konsensus pozwala wielu niezależnym komputerom zgodzić się co do jednej historii bez centralnego administratora. W krypto chodzi o to, które transakcje się wydarzyły, w jakiej kolejności i który blok jest następnym poprawnym blokiem.
Bez konsensusu każdy węzeł mógłby widzieć inną wersję sald i transakcji. Sieć nie miałaby stabilnej podstawy do rozliczeń.
Mechanizm konsensusu łączy reguły techniczne, ekonomiczne zachęty i sposób wyboru łańcucha, który węzły uznają za kanoniczny.
Co obejmuje konsensus
- Walidacja
- Sprawdzanie, czy transakcje i bloki spełniają reguły protokołu.
- Produkcja bloków
- Zasady określające, kto może zaproponować następny blok.
- Sybil resistance
- Mechanizm utrudniający przejęcie sieci przez tworzenie wielu fałszywych tożsamości.
- Fork choice
- Reguła wyboru właściwej gałęzi, gdy pojawią się konkurencyjne bloki.
- Finality
- Poziom pewności, że zaakceptowana historia nie zostanie cofnięta.
Proof of work i proof of stake
W proof of work uczestnicy konkurują mocą obliczeniową. Bitcoin wybiera łańcuch z największą skumulowaną pracą, czyli z największym kosztem obliczeniowym włożonym w historię.
W proof of stake wpływ na produkcję i zatwierdzanie bloków wynika z zastakowanego kapitału oraz reguł protokołu. Walidatorzy mogą otrzymywać nagrody i ponosić kary.
Oba modele próbują rozwiązać ten sam problem: utrudnić tani atak na otwartą sieć i dać uczciwym węzłom sposób na uzgodnienie jednej historii.
Dlaczego fork choice ma znaczenie
Czasem dwa poprawne bloki mogą pojawić się prawie jednocześnie. Różne węzły przez chwilę widzą różne kandydaty na dalszą historię.
Fork choice mówi, którą gałąź węzły powinny uznać za właściwą. Dzięki temu sieć może wrócić do jednej wspólnej historii.
W Bitcoinie użytkownicy zwykle czekają na kolejne potwierdzenia, bo finality jest probabilistyczne. W Ethereum proof of stake finality opiera się na głosowaniach walidatorów i karach ekonomicznych.
Co konsensus zmienia dla użytkownika
Konsensus wpływa na to, jak szybko i jak pewnie można traktować transakcję jako rozliczoną.
- Określa, kiedy transakcja trafia do wspólnej historii sieci.
- Wpływa na ryzyko reorganizacji łańcucha.
- Decyduje, jakie ataki są ekonomicznie możliwe.
- Wpływa na czas finality i wymagania wobec węzłów.
- Tłumaczy, dlaczego ta sama liczba potwierdzeń ma inne znaczenie w różnych sieciach.
Przykład sporu o historię
- Dwa węzły widzą dwa różne poprawne bloki na tej samej wysokości.
- Przez krótki czas sieć ma dwie konkurencyjne gałęzie.
- Reguła fork choice wskazuje, którą gałąź węzły powinny dalej budować.
- Kolejne bloki wzmacniają jedną wersję historii.
- Transakcje z porzuconej gałęzi mogą wrócić do mempoola albo zostać uwzględnione później.
Najczęstsze błędne założenia
- Konsensus nie polega na ręcznym głosowaniu wszystkich użytkowników.
- Proof of work i proof of stake są częściami projektu konsensusu, a nie całym systemem bezpieczeństwa.
- Poprawny blok musi spełniać reguły walidacji, nawet jeśli zaproponował go silny miner albo duży walidator.
- Szybki czas bloku nie oznacza automatycznie szybkiej finality.
- Konsensus nie sprawdza, czy transakcja była rozsądna dla użytkownika. Sprawdza, czy była poprawna według reguł sieci.
Konsensus nadaje znaczenie potwierdzeniu
Potwierdzenie transakcji ma sens dlatego, że sieć ma reguły uzgadniania historii. Gdy czekasz na potwierdzenia albo finality, czekasz aż proces konsensusu zwiększy pewność rozliczenia.
Najczęstsze pytania
Proof of work i proof of stake są ważnymi mechanizmami w systemie konsensusu. Pełny konsensus obejmuje też walidację bloków, fork choice, zachęty, kary i zasady finality.
Bo działa bez jednego centralnego administratora. Węzły muszą mieć wspólne reguły, które pozwalają im uzgodnić jedną historię transakcji.
Zmniejsza ryzyko zmian przez reguły techniczne i koszty ekonomiczne. Poziom ochrony zależy od sieci, liczby potwierdzeń, finality i kosztu ataku.
Bitcoin używa proof of work i najcięższego łańcucha według skumulowanej pracy. Ethereum używa proof of stake, walidatorów, fork choice i finality opartej na głosowaniach oraz karach ekonomicznych.
