Algorytm konsensusu Leased Proof of Stake i protokół Waves-NG 

Autorzy: Guy Brandon, współpracownik Waves.

Sieć Waves działa w oparciu o algorytm konsensusu leasingowanego dowodu stawki (LPoS) w połączeniu z protokołem Waves-NG, który zapewnia wysoki stopień skalowalności i przepustowości transakcji.


Przedmowa

Sieć Waves została uruchomiona w 2016 r. po ICO, w wyniku którego zebrano 30 000 BTC, co stanowiło wówczas około 16 milionów dolarów. W ramach projektu rozwijany jest kompleksowy ekosystem blockchain dla rozwiązań biznesowych z szeroką gamą narzędzi pokrywających różnorodne potrzeby, w tym łatwe tworzenie niestandardowych tokenów, inteligentne kontrakty, handel peer-to-peer na wbudowanej zdecentralizowanej giełdzie (DEX), a także bezpieczny i wygodny sposób interakcji z dApps i usługami internetowymi za pomocą wtyczki do przeglądarki Waves Keeper.


Skalowalność

Od samego początku istnienia Waves firma zdawała sobie sprawę, że dla masowego przyjęcia technologii blockchain należy poprawić skalowalność i określiła priorytety rozwoju technologii, aby wyeliminować ograniczenia istniejących blockchainów. Na przykład Bitcoin jest bardzo bezpieczny, ale jest stosunkowo wolny i może obsługiwać tylko około 7 transakcji na sekundę (TPS). W związku z tym Bitcoin nie jest wystarczająco wydajny, aby można go było wykorzystać jako codzienną walutę. Rozwiązanie drugiego poziomu, takie jak Lightning Network, jest niezbędne, aby Bitcoin mógł to zrealizować. W Waves przyjęto inne podejście, które początkowo skupiało się na wysokiej skalowalności łańcucha, zanim zaczęto rozważać aplikacje drugiego poziomu.


Leasing salda

Początkowy algorytm konsensusu w Waves był prostą implementacją Proof of Stake. Wszystkie 100 milionów tokenów WAVES zostało rozesłane po ICO, a ich całkowita liczba jest stała, bez inflacji, jak to ma miejsce w przypadku monet w PoW. W związku z tym walidatorzy w Waves (forgerzy, chociaż zwykle nazywani są 'górnikami') jako nagrodę otrzymują opłatę za transakcje w bloku, a nie nagrodę.

System Leased Proof of Stake (LPoS) został całkowicie uruchomiony w maju 2017 roku, co pozwoliło użytkownikom klienta lite Waves, tym którzy nie mogą uruchomić pełnego węzła, wynajmować swoje tokeny WAVES dla węzłów górniczych. Wynajmowane tokeny są zablokowane na koncie użytkownika i nie mogą być przekazywane ani wymieniane. Niemniej jednak pozostają pod pełną kontrolą ich właściciela, a wynajem może być anulowany w dowolnym momencie. Biorąc pod uwagę techniczne koszty związane z uruchomieniem węzła górniczego i potrzebę bycia online 24/7, tylko stosunkowo niewielka część społeczności Waves uruchamia je (lista walidatorów jest dostępna pod adresem https://dev.pywaves.org/generators/).

Wynajmowane tokeny WAVES są używane do zwiększenia udziału górnika, co z kolei zwiększa jego szanse na znalezienie następnego bloku. System Leased Proof of Stake zwiększa bezpieczeństwo sieci co najmniej na dwa sposoby. Po pierwsze, im więcej WAVES jest używanych w sieci, tym lepiej, ponieważ atakującemu trudniej jest zgromadzić tokeny potrzebne do ataku 51%. Po drugie, WAVES mogą być przekazane w wynajem węzłowi z zimnego portfela użytkownika, ale sam węzeł, który pozostaje podłączony do sieci, musi mieć tylko minimalny saldo. To znacznie zmniejsza ryzyko włamania do tokenów WAVES z komputerów podłączonych do sieci, ponieważ wynajmowane środki nie są przekazywane górnikowi.


Nowe podejście do konsensusu z Waves-NG

Dalsza aktualizacja sieci miała miejsce w grudniu 2017 roku wraz z uruchomieniem Waves-NG. Był to nowy protokół oparty na Bitcoin-NG, stworzony przez profesora Cornell IT Emine Gün Sirera.

Oryginalny protokół Bitcoina wybiera każdego górnika retrospektywnie. Po dodaniu bloku do blockchaina górnicy konkurują ze sobą, aby znaleźć ważny hash dla następnego bloku, opierając się na aktualnym stanie łańcucha. W międzyczasie nowo utworzone transakcje trafiają do puli pamięci (mempool), gdzie będą czekać, aż jeden z górników je zbierze i zweryfikuje.

I chociaż oba te protokoły, zarówno Bitcoin, jak i Bitcoin-NG, są uważane za systemy zadań bizantyjskich generałów (BFT), to ostatni został zaproponowany w 2015 roku jako alternatywa do poprawy skalowalności, oparty na innym mechanizmie pracy. W systemie Bitcoin-NG następny górnik jest wybierany z wyprzedzeniem i tworzy pusty kluczowy blok (key block) - jest to blok, który ostatecznie zostanie dodany do blockchaina. Do tego kluczowego bloku dodawane są małe bloki, zwane mikroblokami (składającymi się z kilku transakcji). Na przykład, przypomina to dodawanie kilku paczek z zakupami (mikrobloków) do wózka (kluczowego bloku), zanim się on wypełni i ostatecznie trafi do kasy (zostanie dodany do blockchaina). Oznacza to, że transakcje mogą być dodawane do blockchaina w zaledwie kilka sekund, z jedynym rzeczywistym opóźnieniem związanym z siecią. Firma Waves zaktualizowała proof of stake, tworząc protokół Waves-NG, to pierwsza interpretacja Bitcoin-NG dla otwartego, publicznego blockchaina.

Kolejnym dodatkiem do ekosystemu były MassTransfers. Umożliwia to zapakowanie do 100 przelewów w ramach jednej transakcji z obniżoną prowizją. Ograniczenie do 100 TPS dla MassTransfer zostało wybrane jako kompromis między znaczną pojemnością a wygodą oraz ograniczeniem możliwości wysyłania bardzo dużych partii tanich transakcji. Jeśli konieczne jest wykonanie większej liczby przelewów, kilka MassTransfers może być realizowanych kolejno.

Innymi słowy, użytkownicy mogą po prostu wybrać MassTransfer jako inny typ wysyłania transakcji, co pozwala im na dołączenie do 100 odbiorców w jednym przelewie. Ponadto adresy odbiorców mogą być dostarczane w plikach z rozszerzeniem JSON lub CSV, co ułatwia i przyspiesza przeprowadzanie dużych airdropów lub cotygodniowych wypłat dla tych, którzy udostępniają swoje WAVES w dzierżawę dla węzłów górniczych. W połączeniu z Waves-NG funkcja MassTransfer zapewnia bardzo wysoką przepustowość sieci.

W sieci Waves przeprowadzono szereg testów w celu oceny przepustowości nowego protokołu. W październiku 2018 roku przeprowadzono test obciążeniowy mainnetu. Pokazało to, że publiczny, otwarty protokół blockchain może obsługiwać ponad 6,1 miliona transakcji dziennie i średnio 4200 TPS na minutę lub 71 TPS na sekundę, przy maksymalnej przepustowości osiągającej 100+ transakcji na sekundę.


Podsumowanie

System Leased Proof-of-Stake pozwolił zwykłym użytkownikom pomóc w ochronie sieci Waves, przekazując swoje tokeny WAVES węzłom, nie tracąc nad nimi kontroli. Jednocześnie Waves-NG zapewnia przepustowość do 100 TPS, co jest znacznie więcej niż w wielu blockchainach. Transakcje są również tańsze, ponieważ nie ma potrzeby płacenia górnikom nagrody za blok, aby zrekompensować ich koszty energii i drogiego sprzętu.

Skalowalność łańcucha jest priorytetem dla Waves, ale istnieją pewne ograniczenia dla innych sieci blockchain z takim samym podejściem w związku z wymaganym wolumenem pamięci i przepustowości. Programiści Waves uważają, że można ją zoptymalizować, aby wspierała do 1000 TPS, zanim będą potrzebne dodatkowe rozwiązania. Obecnie Waves poszukuje różnych opcji skalowania drugiego poziomu, w tym sidechain, co umożliwi przetwarzanie dużej liczby transakcji w równoległym łańcuchu i ostatecznie zabezpieczenie go za pomocą głównego.