Algorytm konsensusu Leased Proof of Stake i protokół Waves-NG
Autor: Guy Brandon, współpracownik Waves.
Sieć Waves opiera się na algorytmie konsensusu dzierżawionego dowodu stawki (LPoS) w połączeniu z protokołem Waves-NG, co zapewnia wysoki stopień skalowalności i przepustowości transakcji.
Wstęp
Sieć Waves została uruchomiona w 2016 r. po ICO, które zebrało 30 000 BTC – około 16 milionów dolarów w tamtym czasie. Projekt rozwija kompleksowy ekosystem blockchain do wykorzystania w procesach biznesowych, z szerokim zestawem narzędzi obejmującym różne potrzeby – w tym łatwe tworzenie niestandardowych tokenów kryptowalutowych; proste inteligentne kontrakty; handel peer-to-peer na wbudowanej zdecentralizowanej giełdzie (DEX); oraz bezpieczny, wygodny sposób interakcji z dApps i usługami internetowymi za pośrednictwem wtyczki do przeglądarki Waves Keeper.
Skalowalność
Od samego początku Waves uznał, że skalowalność będzie wymagana do masowej adopcji blockchain i nadał priorytet rozwojowi technologii, aby rozwiązać ograniczenia istniejących blockchainów. Na przykład Bitcoin jest wysoce bezpieczny, ale 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 być używanym jako codzienna waluta na całym świecie. Rozwiązania drugiego poziomu, takie jak Lightning Network, są wymagane, aby Bitcoin mógł służyć temu celowi. Waves przyjął inne podejście, skupiając się początkowo na wysokiej skalowalności w łańcuchu, zanim rozważy aplikacje drugiego poziomu.
Leasing salda
Oryginalny algorytm konsensusu Waves był prostą implementacją Proof of Stake. Wszystkie 100 milionów tokenów WAVES zostało rozdystrybuowanych po ICO, a podaż jest stała: nie ma inflacji, jak w przypadku monet wydobywanych w ramach PoW. Dlatego walidatorzy bloków Waves (fałszerze, chociaż w ekosystemie Waves są zazwyczaj znani po prostu jako „górnicy”) otrzymują opłaty transakcyjne z bloków, które przetwarzają, ale nie nagrody za bloki.
System Leased Proof of Stake (LPoS) został w pełni uruchomiony w maju 2017 r., umożliwiając użytkownikom klienta Waves lite – tym, którzy nie uruchomili pełnego węzła – dzierżawienie swoich tokenów WAVES węzłom górniczym. Wydzierżawione WAVES są blokowane na koncie użytkownika i nie można ich przenieść ani nimi handlować. Mimo to tokeny pozostają pod pełną kontrolą posiadacza konta, a dzierżawy można anulować w dowolnym momencie. Biorąc pod uwagę techniczne koszty ogólne związane z uruchomieniem węzła górniczego i konieczność bycia online 24/7, tylko stosunkowo niewielka część społeczności Waves uruchamia węzły (listę generatorów bloków można znaleźć na stronie https://dev.pywaves.org/generators/).
Tokeny WAVES, które są dzierżawione do węzła wydobywczego, są używane do zwiększenia udziału górnika, co z kolei zwiększa szanse na znalezienie przez niego kolejnego bloku. System Leased Proof of Stake poprawia bezpieczeństwo sieci na co najmniej dwa sposoby. Po pierwsze, im więcej WAVES jest używanych do zabezpieczenia sieci, tym lepiej, ponieważ atakującemu trudniej jest zgromadzić tokeny niezbędne do przeprowadzenia ataku 51%. Po drugie, WAVES można dzierżawić do węzła z adresu cold storage użytkownika, ale sam węzeł – który pozostaje online – może mieć tylko minimalne saldo. Znacznie zmniejsza to ryzyko zhakowania tokenów WAVES z komputerów, które są online, ponieważ dzierżawione środki nie są przekazywane górnikowi.
Nowe podejście do konsensusu: Waves-NG
Dalsza modernizacja sieci miała miejsce w grudniu 2017 r. wraz z uruchomieniem Waves-NG. Był to nowy protokół oparty na propozycji Bitcoin-NG profesora informatyki Cornell Emina Gün Sirera.
Oryginalny protokół Bitcoin wybiera każdego górnika retrospektywnie. Po dodaniu bloku do łańcucha bloków górnicy rywalizują o znalezienie prawidłowego hasha dla następnego bloku, w oparciu o bieżący stan łańcucha bloków. Tymczasem nowo wygenerowane transakcje trafiają do puli pamięci (mempool), gdzie pozostaną oczekujące, dopóki górnik w końcu ich nie zbierze i nie zweryfikuje.
Chociaż zarówno protokoły Bitcoin, jak i Bitcoin-NG są uważane za systemy odporne na błędy bizantyjskie (BFT), ten drugi został zaproponowany w 2015 r. jako skalowalna alternatywa oparta na innym mechanizmie działania. W systemie Bitcoin-NG następny górnik jest wybierany z wyprzedzeniem, a ten górnik tworzy pusty „blok klucza” — który jest blokiem, który ostatecznie zostanie dodany do łańcucha bloków. Małe bloki zwane „mikroblokami” (składające się z kilku transakcji każdy) są dodawane w czasie niemal rzeczywistym do tego bloku klucza. Aby użyć codziennej analogii, jest to jak dodawanie kilku toreb z zakupami (mikrobloków) do wózka (bloku klucza), zanim pełny wózek zostanie ostatecznie przetoczony do kasy (dodany do łańcucha bloków). Oznacza to, że transakcje można dodać do łańcucha bloków w ciągu zaledwie kilku sekund, a jedynym rzeczywistym opóźnieniem jest opóźnienie sieci. Waves zaktualizował ten pomysł dla sieci proof-of-stake, tworząc protokół Waves-NG — pierwsze wdrożenie Bitcoin-NG dla otwartego, publicznego łańcucha bloków.
Kolejnym dodatkiem do ekosystemu są MassTransfery. Umożliwiają one zapakowanie do 100 przelewów w ramach jednej transakcji, przy obniżonych opłatach. Limit 100 transakcji na MassTransfer został wybrany jako kompromis pomiędzy dodaniem znacznej pojemności i wygody z jednej strony, a ograniczeniem możliwości wysyłania bardzo dużych partii tanich transakcji na raz z drugiej strony. Jeśli trzeba wykonać więcej przelewów, można przesłać wiele MassTransferów sekwencyjnie.
Innymi słowy, użytkownicy mogą po prostu wybrać MassTransfer jako inny rodzaj „transakcji wysyłania”, co pozwala im uwzględnić do 100 odbiorców w jednej transakcji. Ponadto adresy odbiorców można podać za pośrednictwem JSON lub przesłać z pliku CSV, co ułatwia i usprawnia przeprowadzanie dużych zrzutów lub cotygodniowych wypłat dla tych, którzy dzierżawią swoje WAVES węzłom górniczym. W połączeniu z Waves-NG funkcja MassTransfer umożliwiła bardzo wysoką przepustowość w sieci.
Przeprowadzono szereg testów obciążeniowych w sieci Waves, aby ocenić potencjał przepustowości nowego protokołu. W październiku 2018 r. przeprowadzono poważny test obciążeniowy w MainNet. Wykazano, że publiczny, otwarty protokół blockchain (nie tylko ograniczony i kontrolowany TestNet) może obsługiwać ponad 6,1 miliona transakcji w ciągu 24 godzin – średnio 4200 transakcji na minutę lub 71 transakcji na sekundę, przy czym szczytowa przepustowość sięga setek transakcji na sekundę.
Myśli końcowe
System Leased Proof-of-Stake umożliwiał zwykłym użytkownikom bez wiedzy technicznej pomoc w zabezpieczaniu sieci Waves, dzierżawiąc swoje WAVES pełnym węzłom bez utraty kontroli nad swoimi tokenami. Tymczasem Waves-NG umożliwił przepustowość do 100 TPS, co jest o rząd wielkości więcej niż w przypadku wielu blockchainów. Opłaty są niskie, ponieważ nie ma potrzeby płacenia górnikom nagrodami za bloki, aby zrekompensować im wysokie koszty energii elektrycznej i drogi sprzęt.
Skalowalność w łańcuchu była priorytetem dla Waves, ale istnieją ograniczenia w zakresie, w jakim każdy blockchain może skalować się w ten sposób ze względu na wymaganą pamięć masową i przepustowość. Deweloperzy Waves uważają, że obecne podejście można zoptymalizować, aby obsługiwać do 1000 TPS, zanim będą wymagane dalsze rozwiązania skalowania. Waves obecnie bada opcje rozwiązania skalowania drugiego poziomu obejmującego łańcuchy boczne, umożliwiające przetwarzanie dużej liczby transakcji w równoległym łańcuchu, ale ostatecznie zabezpieczone na głównym blockchainie Waves.


