Lisk Consensus - DPoS
Ważne informacje¶
- Delegat to konto, które wykonało operację rejestracji delegata.
- Konto może głosować na dowolnego delegata za pomocą transakcji głosowania na delegata.
- Głosy własne (ang. self-vote) to głos, którą delegat oddał na siebie.
- Suma głosów to suma wszystkich głosów (łącznie z głosami oddanymi samodzielnie) oddanych na danego delegata.
- W zależności od oddanych głosów, każdy delegat ma przypisaną wagę delegata, która jest wskaźnikiem poparcia dla tego delegata w sieci.
- Waga delegata jest zawsze ograniczona przez 10-krotność głosów oddanych na siebie przez tego delegata.
Przykłady
-
Delegat X
Głosy całkowite: 100 000 LSK
Samogłosy: 7 000 LSK
Waga delegata: 70.000 LSK -
Delegat Y
Głosy ogółem: 120 000 LSK
Samogłos: 15 000 LSK
Waga delegata: 120 000 LSK
Z definicji tej wynika, że głosy własne stanowią zawsze co najmniej 10% wagi delegata, a zatem delegaci zawsze mają znaczny udział w grze1.
Wybór delegatów do forgowania¶
Bloki w protokole Lisk są grupowane w partie 103 kolejnych bloków, które są określane jako runda. Każda runda ma listę forgujących, która jest uporządkowaną listą 103 delegatów, którym wolno forgować blok w tej rundzie. Zaczynając od pierwszego delegata na liście forgujących, każdy delegat ma 10 sekundowe okno, w którym może wyforgować blok i rozesłać go do sieci. Jeśli każdy delegat na liście zdoła wykuć blok w swoim slocie, opierając się na bloku poprzedniego delegata, runda trwa 1030 sekund (około 17 minut).
Może się zdarzyć, że delegat przegapi slot bloku, co oznacza, że nie ma bloku dodanego do łańcucha przez delegata w wyznaczonym przez niego slocie bloku. W konsekwencji, koniec listy forgujących zostaje osiągnięty zanim do łańcucha zostaną dodane 103 bloki. W takim przypadku sloty blokowe są przydzielane ponownie od początku listy forgujących, aż do momentu wykucia 103 bloków.
Lista forgujących¶
W Lisk DPoS lista forgujących jest obliczana z uwzględnieniem wag delegatów oraz pewnych losowych wartości podawanych przez delegatów jako część ich bloku. 101 najlepszych delegatów według wagi delegata jest nazywanych aktywnymi delegatami, podczas gdy wszyscy inni delegaci z wagą delegata co najmniej 1011 (1000 LSK w Lisk Mainnet) są określani jako pozostający w gotowości delegaci (ang. standby delegates).
Banowanie nieproduktywnych delegatów¶
Jako mechanizm awaryjny, delegat, który nie wykuwa bloków przez dłuższy okres czasu, zostaje zbanowany. Ma to na celu uniknięcie sytuacji, w której delegat, który nie obsługuje węzła, prowadzi do częstego opuszczania slotów bloków. Dokładniej:
- Delegat zostaje zbanowany w przypadku, gdy opuści 50 kolejnych bloków, a wysokość ostatniego wykuwanego przez niego bloku różni się o więcej niż 260 000 od aktualnej wysokości łańcucha (blok ma 30 dni).
W momencie, gdy delegat zostaje zbanowany, zostaje on wykluczony z snapshotów wagi delegatów używanych do obliczania listy forgujących. Ban jest permanentny, ale właściciel konta delegata może przenieść swoje środki na inne konto i zarejestrować nowego delegata.
Lisk BFT - Ostateczność i gwarancje bezpieczeństwa
Dla bardziej zaawansowanych użytkowników:
https://lisk.com/documentation/lisk-sdk/protocol/consensus-algorithm.html#lisk_bft
-
https://lisk.com/documentation/lisk-sdk/protocol/consensus-algorithm.html ↩