Leasade insatsbevis-konsensusalgoritmer och Waves-NG-protokollet
Författare: Guy Brandon, Waves-medarbetare.
Waves-nätverket fungerar med leasade insatsbevis-konsensusalgoritmer kombinerad med Waves-NG-protokollet, vilket möjliggör en hög grad av skalbarhet och transaktionsgenomströmning.
Introduktion
Waves-nätverket lanserades 2016 efter en ICO som samlade in 30 000 BTC – cirka 16 miljoner USD vid den tiden. Projektet utvecklar ett omfattande blockkedje-ekosystem för användning i affärsprocesser, med en omfattande verktygslåda som täcker olika behov – inklusive enkelt skapande av anpassade kryptovalutatoken; enkla smarta kontrakt; peer-to-peer-handel på en inbyggd decentraliserad börs (DEX); och ett säkert, bekvämt sätt att interagera med DApps och webbtjänster via Waves Keeper-webbläsarplugin.
Skalbarhet
Från början insåg Waves att skalbarhet skulle krävas för blockkedjeantagande i stor skala och prioriterade utvecklingen av teknik för att hantera begränsningarna hos befintliga blockkedjor. Till exempel är Bitcoin mycket säkert, men relativt långsamt, och kan bara stödja cirka 7 transaktioner per sekund (TPS). Som sådan är Bitcoin inte tillräckligt effektivt för att användas som en vardaglig valuta över hela världen. Andra nivålösningar som Lightning Network krävs för att Bitcoin ska tjäna detta syfte. Waves har tagit ett annat tillvägagångssätt och initialt fokuserat på hög skalbarhet på kedjan innan de överväger applikationer i andra klass.
Balansuthyrning
Waves ursprungliga konsensusalgoritm var en enkel insatsbevis-implementering. Alla 100 miljoner WAVES-token fördelades efter ICO, och utbudet är fast: det finns ingen inflation, som det finns med arbetsbevis-myntade coin. Därför får Waves blockvaliderare (förfalskare, även om de vanligtvis bara kallas ”miners” inom Waves ekosystem) transaktionsavgifter från blocken de bearbetar, men inga blockbelöningar.
Det leasade insatsbevis-systemet (Leased Proof of Stake/LPoS) lanserades helt i maj 2017, vilket gjorde det möjligt för användare av Waves lite-klienten – de som inte körde en fullständig nod – att leasa sina WAVES-token till utvinningsnoder. LeasWAVES är låsta i användarens konto och kan inte överföras eller handlas. Ändå förblir token i kontoinnehavarens fulla kontroll och leasingavtalet kan avbrytas när som helst. Med tanke på de tekniska omkostnader som är förknippade med att köra en utvinningsnod och behovet av att vara online dygnet runt, kör bara en relativt liten del av Waves-communityn noder (en lista över blockgeneratorer finns på https://dev.pywaves.org/generators/).
WAVES-token som hyrs ut till en utvinningsnod används för att öka minerns intressevikt, vilket i sin tur ökar chansen att minern hittar nästa block. Leasade insatsbevis-systemet förbättrar nätverkssäkerheten på minst två sätt. För det första, ju fler WAVES som används för att säkra nätverket desto bättre, eftersom det blir svårare för en angripare att samla de token som krävs för att utföra en 51 %-ig attack. För det andra kan WAVES leasas till en nod från en användares kalla förvaringsadress, men själva noden – som förblir online – kanske bara har en minimal balans. Detta minskar betydligt risken för att WAVES-token hackas från datorer som är online, eftersom de leasade tillgångarna inte överförs till minern.
Ett nytt tillvägagångssätt för konsensus: Waves-NG
En ytterligare uppgradering av nätverket skedde i december 2017 med lanseringen av Waves-NG. Detta var ett nytt protokoll baserat på Bitcoin-NG-förslaget av Cornell IT-professor Emin Gün Sirer.
Det ursprungliga Bitcoin-protokollet väljer varje miner retroaktivt. Efter att ett block har lagts till i blockkedjan tävlar miners om att hitta en giltig hash för nästa block, baserat på blockkedjans nuvarande tillstånd. Under tiden går nyligen skapade transaktioner in i minnespoolen (mempool), där de kommer att förbli väntande tills en miner så småningom samlar in och validerar dem.
Även om både Bitcoin- och Bitcoin-NG-protokollet betraktas som bysantinskt feltoleranta-system (BFT), föreslogs det 2015 som ett skalbart alternativ baserat på en annan arbetsmekanism. På ett Bitcoin-NG-system väljs nästa miner i förväg och denna miner skapar ett tomt ”nyckelblock” – vilket är blocket som slutligen läggs till blockkedjan. Små block som kallas ”mikroblock” (bestående av några transaktioner vardera) läggs till i nästan realtid till detta nyckelblock. För att använda en vardaglig analogi är det som att lägga till flera påsar med shopping (mikroblock) till en vagn (nyckelblock) innan hela vagnen slutligen rullas till kassan (läggs till blockkedjan). Detta innebär att transaktioner kan läggas till blockkedjan på bara några sekunder, med den enda verkliga fördröjningen är nätverkslatens. Waves uppdaterade denna idé för ett insatsbevis-nätverk och skapade Waves-NG-protokollet – den första distributionen av Bitcoin-NG för en öppen, offentlig blockkedja.
Ett ytterligare tillägg till ekosystemet har varit massöverföringar. Dessa gör att upp till 100 överföringar kan paketeras inom en enda transaktion, med reducerade avgifter. Gränsen på 100 txs per massöverföring valdes som en kompromiss mellan att lägga till betydande kapacitet och bekvämlighet å ena sidan, och å andra sidan begränsa möjligheten att skicka mycket stora partier av lågkostnadstransaktioner på en gång. Om fler överföringar behöver göras kan flera massöverföringar skickas in i följd.
Med andra ord kan användare helt enkelt välja en massöverföring som en annan ”Skicka transaktion”-typ, så att de kan inkludera upp till 100 mottagare i en enda transaktion. Dessutom kan mottagaradresserna tillhandahållas via JSON eller laddas upp från en CSV-fil, vilket gör det enkelt och effektivt att genomföra stora airdrops eller utföra veckovisa utbetalningar till dem som hyr ut sina WAVES till utvinningsnoder. Kombinerat med Waves-NG möjliggjorde massöverföringsfunktionen en mycket hög genomströmningshastighet i nätverket.
Ett antal stresstester har genomförts på Waves-nätverket för att mäta genomströmningspotentialen för det nya protokollet. I oktober 2018 genomfördes ett stort stresstest på MainNet. Detta visade att det offentliga, öppna blockkedjeprotokollet (inte bara ett begränsat och kontrollerat TestNet) kunde stödja över 6,1 miljoner transaktioner inom en 24-timmarsperiod - i genomsnitt 4 200 txs per minut eller 71 txs per sekund, med maximal genomströmning som når hundratals transaktioner per sekund.
Sammanfattningsvis
Leasade insatsbevis-system gjorde det möjligt för användare att utan teknisk expertis hjälpa till att säkra Waves-nätverket genom att leasa sina WAVES till fulla noder utan att förlora kontrollen över sina token. Samtidigt möjliggjorde Waves-NG en genomströmning på upp till 100 TPS, vilket är en storleksordning fler än många blockkedjor. Avgifterna är låga eftersom det inte finns något behov av att betala miners med blockbelöningar för att kompensera dem för höga elkostnader och dyr hårdvara.
Skalbarhet på kedjan har varit en prioritet för Waves, men det finns gränser i vilken utsträckning som någon blockkedja kan skala på detta sätt på grund av den lagring och bandbredd som krävs. Waves utvecklare tror att det nuvarande tillvägagångssättet kan optimeras för att stödja upp till 1 000 TPS innan ytterligare skalningslösningar krävs. Waves utforskar för närvarande alternativ för en andra nivås skalningslösning som involverar sidokedjor, vilket gör att ett stort antal transaktioner kan bearbetas på en parallell kedja men i slutändan säkras på den huvudsakliga Waves-blockkedjan.