Leased Proof of Stake-konsensusalgoritme og Waves-NG-protokollen
Forfatter: Guy Brandon, Waves-bidragyder.
Waves-netværket opererer med en Leased Proof of Stake-konsensusalgoritme (LPoS) kombineret med Waves-NG-protokollen, hvilket giver mulighed for en høj grad af skalerbarhed og transaktionsdataoverførselshastighed.
Introduktion
Waves-netværket blev lanceret i 2016 efter en ICO, der rejste 30.000 BTC – omkring 16 millioner dollars på daværende tidspunkt. Projektet udvikler et omfattende blockchain-økosystem til brug i forretningsprocesser med en stor værktøjskasse, der dækker forskellige behov – herunder nem oprettelse af brugerdefinerede kryptovaluta-tokens; ligetil smart contracts; peer-to-peer-handel på en indbygget decentraliseret Exchange (DEX); og en sikker, praktisk måde at interagere med dApps og webtjenester gennem Waves Keeper-browser-plug-in'et.
Skalerbarhed
Fra starten erkendte Waves, at skalerbarhed ville være påkrævet for massiv blockchain-adoption, og prioriterede udviklingen af teknologi til at løse eksisterende blockchains' begrænsninger. For eksempel er Bitcoin meget sikker, men relativt langsom og kan kun understøtte omkring 7 transaktioner pr. sekund (TPS). Som sådan er Bitcoin ikke effektiv nok til at blive brugt som en dagligdagsvaluta verden over. Løsninger på andet niveau såsom Lightning Network er nødvendige for, at Bitcoin kan tjene dette formål. Waves har valgt en anden tilgang og fokuserer i første omgang på høj on-chain-skalerbarhed, før de overvejer applikationer på andet niveau.
Balance-leasing
Waves' oprindelige konsensusalgoritme var en simpel Proof of Stake-implementering. Alle 100 millioner WAVES-tokens blev distribueret efter ICO'en, og udbuddet er fast: Der er ingen inflation, som der er med PoW-minede coins. Derfor modtager Waves' blokvalidatorer (forgers, selvom de typisk blot kaldes "minere" i Waves' økosystem) transaktionsgebyrer fra de blokke, de behandler, men ingen block rewards.
LPoS-systemet (Leased Proof of Stake) blev fuldt ud lanceret i maj 2017, så brugere af Waves-lite-klienten – dem, der ikke kørte en fuld node – kunne lease deres WAVES-tokens til mining-noder. Leasede WAVES er låst fast på brugerens konto og kan ikke overføres eller byttes. Tokenerne forbliver dog under kontoindehaverens fulde kontrol, og leasingkontrakterne kan opsiges når som helst. På grund af de tekniske omkostninger, der er forbundet med at drive en mining-node, og behovet for at være online 24/7, er det kun en relativt lille del af Waves-fællesskabet, der driver noder (en liste over blokgeneratorer kan findes på https://dev.pywaves.org/generators/).
WAVES-tokens, der leases til en mining-node, bruges til at øge minerens stakeweight, hvilket øger chancerne for, at den pågældende miner finder den næste blok. Leased Proof of Stake-systemet forbedrer netværkssikkerheden på mindst to måder. For det første er det sådan, at jo flere WAVES der bruges til at sikre netværket, jo bedre, fordi det bliver sværere for en angriber at akkumulere de tokens, der er nødvendige for at udføre et 51 %-angreb. For det andet kan WAVES leases til en node fra en brugers cold storage-adresse, men selve noden – som forbliver online – har måske kun en minimal saldo. Det reducerer betydeligt risikoen for, at WAVES-tokens bliver hacket fra computere, der er online, da de leasede midler ikke overføres til mineren.
En ny tilgang til konsensus: Waves-NG
Der blev foretaget en yderligere opgradering af netværket i december 2017 med lanceringen af Waves-NG. Det var en ny protokol baseret på Bitcoin-NG-forslaget fra Emin Gün Sirer, IT-professor på Cornell.
Den oprindelige Bitcoin-protokol vælger hver miner efterfølgende. Når en blok er blevet tilføjet blockchainen, konkurrerer minerne om at finde en gyldig hash til den næste blok, baseret på blockchainens aktuelle tilstand. I mellemtiden går nygenererede transaktioner ind i hukommelsespoolen (mempool), hvor de forbliver afventende, indtil en miner til sidst indsamler og validerer dem.
Selvom både Bitcoin- og Bitcoin-NG-protokollerne betragtes som BFT-systemer (byzantinsk fejltolerance), blev sidstnævnte foreslået i 2015 som et skalerbart alternativ baseret på en anden arbejdsmekanisme. På et Bitcoin-NG-system er den næste miner valgt på forhånd, og denne miner opretter en tom "nøgleblok", som er den blok, der i sidste ende vil blive føjet til blockchainen. Små blokke kaldet "mikroblokke" (bestående af et par transaktioner hver) føjes til denne nøgleblok næsten i realtid. For at bruge en hverdagsanalogi svarer det til at føje flere indkøbsposer (mikroblokke) til en indkøbsvogn (nøgleblok), før hele vognen til sidst køres til kassen (føjes til blockchainen). Det betyder, at transaktioner kan føjes til blockchainen på blot et par sekunder, hvor den eneste reelle forsinkelse er netværkslatens. Waves opdaterede denne idé for et Proof of Stake-netværk og skabte Waves-NG-protokollen – den første udrulning af Bitcoin-NG for en åben, offentlig blockchain.
En yderligere tilføjelse til økosystemet har været MassTransfers. Disse gør det muligt at samle op til 100 overførsler i en enkelt transaktion med reducerede gebyrer. Grænsen på 100 tx'er pr. MassTransfer blev valgt som et kompromis mellem på den ene side at tilføje betydelig kapacitet og bekvemmelighed og på den anden side at begrænse muligheden for at sende meget store partier af billige transaktioner på én gang. Hvis der skal foretages flere overførsler, kan der indsendes flere MassTransfers efter hinanden.
Med andre ord kan brugerne simpelthen vælge en MassTransfer som en anden slags "Send transaktion", så de kan inkludere op til 100 modtagere i en enkelt transaktion. Desuden kan modtageradresserne leveres via JSON eller overføres fra en CSV-fil, hvilket gør det nemt og effektivt at foretage store airdrops eller udføre ugentlige udbetalinger til dem, der leaser deres WAVES til mining-noder. Kombineret med Waves-NG muliggjorde MassTransfer-funktionen en meget høj dataoverførselshastighed på netværket.
Der er blevet udført en række stresstest på Waves-netværket for at måle den nye protokols kapacitetspotentiale. I oktober 2018 blev der gennemført en større stresstest på MainNet. Den viste, at den offentlige, åbne blockchain-protokol (ikke bare et begrænset og kontrolleret TestNet) kunne understøtte over 6,1 millioner transaktioner inden for en 24-timers periode – et gennemsnit på 4.200 tx'er pr. minut eller 71 tx'er pr. sekund, med en spidsbelastning på flere hundrede transaktioner pr. sekund.
Sammenfatning
Leased Proof of Stake-systemet gjorde det muligt for almindelige brugere uden teknisk ekspertise at hjælpe med at sikre Waves-netværket ved at lease deres WAVES til fulde noder uden at miste kontrollen over deres tokens. I mellemtiden muliggjorde Waves-NG en dataoverførselshastighed på op til 100 TPS, hvilket er højere end mange blockchains. Gebyrerne er lave, fordi der ikke er behov for at betale minere med block rewards for at kompensere dem for høje eludgifter og dyr hardware.
Skalerbarhed på chainen har været en prioritet for Waves, men der er grænser for, hvor meget en blockchain kan skalere på denne måde på grund af den lagring og båndbredde, der kræves. Waves' udviklere mener, at den nuværende tilgang kan optimeres til at understøtte op til 1.000 TPS, før det bliver nødvendigt med løsninger til yderligere skalering. Waves undersøger i øjeblikket mulighederne for en skaleringsløsning på andet niveau, der involverer sidechains, så et stort antal transaktioner kan behandles på en parallel chain, men i sidste ende sikres på den primære Waves-blockchain.