Algoritmus pronajatého Proof of Stake Consensus Algorithm a protokol Waves-NG

Autor: Guy Brandon, přispěvatel Waves.

Síť Waves funguje na pronajatém proof-of-stake (LPoS) konsensuálním algoritmu kombinovaném s protokolem Waves-NG, což umožňuje vysoký stupeň škálovatelnosti a transakční propustnost.


Úvod

Síť Waves byla spuštěna v roce 2016 po ICO, které získalo 30 000 BTC – v té době kolem 16 milionů dolarů. Projekt vyvíjí komplexní blockchainový ekosystém pro použití v obchodních procesech se širokou sadou nástrojů pokrývajících různé potřeby – včetně snadného vytváření vlastních tokenů kryptoměn; přímé chytré smlouvy; peer-to-peer obchodování na vestavěné decentralizované burze (DEX); a bezpečný a pohodlný způsob interakce s dApps a webovými službami prostřednictvím zásuvného modulu prohlížeče Waves Keeper.


Škálovatelnost

Od samého začátku si Waves uvědomoval, že pro masové přijetí blockchainu bude nutná škálovatelnost, a upřednostnil vývoj technologie, která by řešila omezení stávajících blockchainů. Například bitcoin je vysoce bezpečný, ale relativně pomalý a může podporovat pouze přibližně 7 transakcí za sekundu (TPS). Bitcoin jako takový není dostatečně efektivní, aby mohl být používán jako každodenní měna po celém světě. Aby bitcoiny sloužily tomuto účelu, jsou vyžadována řešení druhé úrovně, jako je Lightning Network. Společnost Waves zvolila jiný přístup a nejprve se zaměřila na vysokou škálovatelnost v řetězci, než zvažovala aplikace druhé úrovně.


Zůstatkový leasing

Původní konsensuální algoritmus Waves byl jednoduchou implementací Proof of Stake. Všech 100 milionů tokenů WAVES bylo distribuováno po ICO a nabídka je pevná: nedochází k žádné inflaci, jako je tomu u coinů těžených PoW. Proto validátoři bloků Waves (falšovatelé, i když jsou v ekosystému Waves obvykle známí jednoduše jako „těžaři“) dostávají transakční poplatky z bloků, které zpracovávají, ale žádné odměny za bloky.

Systém Leased Proof of Stake (LPoS) byl plně spuštěn v květnu 2017 a umožňuje uživatelům klienta Waves lite – těm, kteří neprovozovali úplný uzel – pronajímat své WAVES tokeny těžebním uzlům. Pronajaté VLNY jsou uzamčeny na uživatelském účtu a nelze je převádět ani obchodovat. Tokeny však zůstávají plně pod kontrolou majitele účtu a leasingy lze kdykoli zrušit. Vzhledem k technické režii spojené s provozováním těžebního uzlu a potřebě být online 24/7 provozuje uzly pouze relativně malá část komunity Waves (seznam generátorů bloků lze nalézt na https://dev.pywaves.org /generátory/).

Tokeny WAVES, které jsou pronajaty těžebnímu uzlu, se používají ke zvýšení sázkové váhy těžaře, což zase zvyšuje šance, že těžař najde další blok. Systém Leased Proof of Stake zlepšuje zabezpečení sítě minimálně dvěma způsoby. Za prvé, čím více WAVES se použije k zabezpečení sítě, tím lépe, protože pro útočníka je těžší nashromáždit tokeny potřebné k provedení 51% útoku. Za druhé, WAVES lze pronajmout uzlu z adresy chladného úložiště uživatele, ale samotný uzel – který zůstává online – může mít jen minimální zůstatek. To výrazně snižuje riziko hacknutí tokenů WAVES z počítačů, které jsou online, protože pronajaté prostředky nejsou převedeny na těžaře.


Nový přístup ke konsenzu: Waves-NG

K dalšímu upgradu sítě došlo v prosinci 2017 se spuštěním Waves-NG. Jednalo se o nový protokol založený na návrhu Bitcoin-NG profesora IT Cornella Emina Gün Sirera.

Původní bitcoinový protokol vybírá každého těžaře zpětně. Po přidání bloku do blockchainu těžaři soutěží o nalezení platného hashe pro další blok na základě aktuálního stavu blockchainu. Mezitím se nově vygenerované transakce přesunou do paměťového fondu (mempool), kde zůstanou nevyřízené, dokud je těžař nakonec neshromáždí a neověří.

Přestože protokoly Bitcoin i Bitcoin-NG jsou považovány za byzantské systémy odolné proti chybám (BFT), poslední jmenovaný byl navržen v roce 2015 jako škálovatelná alternativa založená na jiném pracovním mechanismu. V systému Bitcoin-NG je další těžař vybrán předem a tento těžař vytvoří prázdný „blok klíče“ – což je blok, který bude nakonec přidán do blockchainu. K tomuto klíčovému bloku se v téměř reálném čase přidávají malé bloky zvané „mikrobloky“ (každý se skládá z několika transakcí). Abychom použili každodenní analogii, je to jako přidat několik tašek s nákupem (mikrobloky) do vozíku (klávesnice), než se celý vozík nakonec odveze k pokladně (přidá se do blockchainu). To znamená, že transakce mohou být přidány do blockchainu během několika sekund, přičemž jediným skutečným zpožděním je latence sítě. Společnost Waves aktualizovala tuto myšlenku na síť proof-of-stake a vytvořila protokol Waves-NG – první nasazení Bitcoin-NG pro otevřený, veřejný blockchain.

Dalším přírůstkem do ekosystému byl MassTransfers. Ty umožňují zabalit až 100 převodů v rámci jedné transakce se sníženými poplatky. Limit 100 txs na MassTransfer byl zvolen jako kompromis mezi přidáním významné kapacity a pohodlí na jedné straně a omezením možnosti posílat velmi velké dávky levných transakcí najednou na straně druhé. Pokud je třeba provést více převodů, lze odeslat více hromadných převodů postupně.

Jinými slovy, uživatelé si mohou jednoduše vybrat MassTransfer jako jiný druh „Odeslat transakce“, což jim umožní zahrnout až 100 příjemců do jedné transakce. Kromě toho mohou být adresy příjemců poskytnuty prostřednictvím JSON nebo nahrány ze souboru CSV, takže je snadné a efektivní provádět velké výsadky nebo provádět týdenní výplaty těm, kteří pronajímají své WAVES těžebním uzlům. V kombinaci s Waves-NG umožnila funkce MassTransfer velmi vysokou propustnost v síti.

Na síti Waves byla provedena řada zátěžových testů, aby se posoudil potenciál propustnosti nového protokolu. V říjnu 2018 byl na MainNet proveden velký zátěžový test. To prokázalo, že veřejný, otevřený blockchain protokol (nikoli pouze omezený a kontrolovaný TestNet) může podporovat více než 6,1 milionu transakcí během 24 hodin – v průměru 4 200 txs za minutu nebo 71 txs za sekundu, přičemž špičková propustnost dosahuje stovky transakce za sekundu.


Závěrečné myšlenky

Systém Leased Proof-of-Stake umožnil každodenním uživatelům bez technických znalostí pomoci zabezpečit síť Waves tím, že pronajal své WAVES úplným uzlům, aniž by ztratili kontrolu nad svými tokeny. Mezitím Waves-NG umožnil propustnost až 100 TPS, což je řádově více než mnoho blockchainů. Poplatky jsou nízké, protože není potřeba platit těžařům blokové odměny, které jim kompenzují vysoké náklady na elektřinu a drahý hardware.

On-chain škálovatelnost byla pro Waves prioritou, ale existují limity v rozsahu, v jakém může jakýkoli blockchain škálovat tímto způsobem kvůli požadované úložišti a šířce pásma. Vývojáři Waves se domnívají, že současný přístup lze optimalizovat tak, aby podporoval až 1 000 TPS, než budou zapotřebí další škálovací řešení. Společnost Waves v současné době zkoumá možnosti řešení pro škálování druhé úrovně zahrnující postranní řetězce, které umožňují zpracovávat velké množství transakcí v paralelním řetězci, ale nakonec zajistit na hlavním blockchainu Waves.