De techniek achter Waves-NG

22 december, 2017, is het Waves-Next Generation protocol live gegaan. Daarmee kan de Waves blockchain momenteel 100 transacties/seconde aan en zal dit verder geupgrade worden naar meer dan 1000 transacties/seconde volgend jaar. In dit artikel wordt de technologie achter Waves-NG beschreven.

Een grote uitdaging voor Blockchaintechnologie is de schaalbaarheid. Als de technologie wereldwijd omarmd wil worden, dan zullen er meer transacties per seconde nodig zijn. Zie hieronder de schaalbaarheidsvergelijking tussen Bitcoin, Ethereum, Waves en Waves-NG:

Schaalbaarheisvergelijking
Blockchain Systeem Blok Tijd Blok Grootte TXs/s
Bitcoin 10 Minuten 1 MB 3-7 TX/s
Ethereum 15-30 Seconden 2-22 KB 2-22 TX/s
Waves 1 minuut 2-24 KB 1.6 Tx/s
Waves-NG 1 Minute/KeyBlock3 Seconden/MicroBlock 1 MB65535 TX/KeyBlock

200 TX/MicroBlock

1000 TX/s

Zwakten van huidige voorstellen om de schaalbaarheid te verhogen.

Blockchain systemen verwerken transacties, de maximale verwerkingssnelheid wordt bepaald door twee factoren: blok grootte en blok interval.

Het blok interval bepaalt de gemiddelde wachttijd tussen het creëren van twee blokken. Door het interval te verkleinen om zo te wachttijd te verlagen, zal ook de veiligheid van het systeem mee verlagen omdat de kans op een fork groter wordt, verschillende miners zullen namelijk dezelfde blok aan het het minen zijn. (figuur 1). Wanneer we de tijd per blok verlagen, creëren we een situatie waar een aanzienlijk aantal blokken in minder tijd klaar zijn dan dat het systeem tijd nodig heeft om blokken door te netwerk te laten gaan. Aangezien er dan meerdere blokken tegelijk door het netwerk gaan, kan je niet bepalen welke een echte blok is en dewelke een valse (fork) blok is. Transacties die meerdere bevestigingen zouden moeten hebben, zouden er plots veel minder hebben (of zelfs terugkeren naar de status onbevestigd).

Figuur 1, De blok frequentie verhogen met een vaste blokgrootte zal leiden tot een minder veilig systeem.

De doorvoersnelheid van een systeem is gebonden aan de maximum blokgrootte, het aantal maximaal opgenomen transacties alsook de duurtijd van elke nieuwe blok. Grotere blokken veroorzaken een langzamere doorstroming die tot meer orphaned bloks leiden. (verhoogde miner inefficiëntie). Een onbeperkt blokformaat kan bijvoorbeeld leiden tot een Denial-of-Service-aanval op het systeem door een blok te maken die zeer lang duurt om te valideren. Wanneer er gekozen wordt om de blokgrootte te vergroten om de doorvoer te verbeteren, zullen er netwerkspikes plaatsvinden om deze door te geven over het netwerk (Figuur 2).

Figuur 2, Een vergroting van de blok met een vaste frequentie zal leiden naar meer ophaned blokken tijdens netwerk pieken.

Klein overzicht van Bitcoin-NG

Bitcoin-NG is het ‘next-gen’ blockchain protocol, dat een alternatief bitcoin scaling oplossing biedt waarbij er geen sprake is van het vergroten van de blokken of het blokinterval in tijd verlaagt. Dit vermindert onder andere het risico op forks. Bitcoin-NG beschrijft dat standaard verwerkingen in Bitcoin kunnen worden verminderd met een alternatief blockchain protocol, waarbij een consensusvertraging en bandbreedte alleen op netwerkvlak beperkt worden. Het protocol splitst tijd in verschillende tijdsperioden (tijdperken). In elke periode wordt er dan een bepaalde “leider” verantwoordelijk voor het serialiseren van transacties (Figuur 3).

De leiders nemen de verantwoordelijkheid om blokken te genereren.

Sleutel blokken om de leider te kiezen.

Micro blokken voor grootboek verslagen.

Figuur 3: Bitcoin-NG tijdsperioden structuur met geserialiseerde transacties.
All transactions are part of the same block and are serialized together. In between blocks, the traditional Bitcoin system appears idle to an onlooker, as miners are working to discover the next block, but without apparent progress on the consensus front. In contradiction, with Bitcoin-NG, the key blocks can be small because they need to contain only the coinbase transaction which defines the public key that the miner will be using to sign micro blocks. Because a key block does not require Proof-of-Stake or Proof-of-Work, miners can not just produce one and expropriate the leadership at will. Following the key block, the leader frequently issues micro blocks by simply signing them with the private key corresponding to the public key named in the key block’s coinbase (Figure 4).

Figuur 4: Signproces van sleutel- en microblokken

Waves-NG Overlay

Waves-NG is based on the Bitcoin-NG protocol that serializes transactions and offers important improvements in the transaction latency (lower latency) and bandwidth (higher throughput) compared to Bitcoin without sacrificing other properties or increasing number of forks. Waves approaches this scalability matter by providing the miner with the ability to farm a block during the time of mining with a continuous approach. This continuous block increment is called a liquid block. The liquid block is unalterable over time once the next liquid block referencing the previous one is created and appended. The main and core idea of Waves-NG is to split the liquid block into two types: Key blocks and micro blocks. The process of creating liquid blocks works as followed:

De miner node krijgt toestemming om een blok te maken.

De miner node maakt en verstuurt de sleutelblok (dewelke geen transacties bevat).

De miner node maakt en verstuurt elke 3 seconden micro blokken (dewelke nu wel transacties bevatten zoals in normale blokken met een referentie naar de vorige micro/sleutelblok).

Miners zzukllen deze blokken minen en onmiddelijk op het netwerk zetten tot de nieuwe sleutel blok versschijnt met een referentie naar de liquide blok.

Waves-NG with Proof-of-Stake Protocol

Waves platform gebruikt een Proof-of-Stake i.p.v. een Proof-of-Work model wat resulteert in een andere aanpak voor de implementatie van Bitcoin-NG. De miner is in staat om de gegenereerde blok bij nieuwe transacties bij te werken en deze transacties aan het netwerk te sturen tegen lage blokgeneratiekosten door gebruik te maken van Proof-of-Stake. Bij Proof-of-Work is het duurder om transacties te serialiseren, omdat het oplossen van de blokpuzzel veel rekenkracht vereist. Als gevolg daarvan zal de Waves blockchain in staat zijn om duizenden transacties per minuut te verwerken en het gedecentraliseerde concept te behouden. Na een succesvolle implementatie van Waves-NG met lage transactiekosten en maximale doorvoer, zal het Waves-netwerk klaar zijn voor high-load toepassingen.

Leider blokken

Ook wel Sleutel blokken genoemd. Deze blokken worden gegenereerd met Proof-of-Stake (PoS) maar bevatten geen transacties. Ze fungeren als een mechanisme om leiders te kiezen en bevatten een publieke sleutel om de gekozen leiden te identificeren. Elk blok heeft naast andere velden ook een header met een unieke referentie van zijn voorganger d.m.v. een cryptografische hash van de header van zijn voorganger. (kan een sleutel- of microblok zijn.) Net als bij Bitcoin, voordat een sleutelblok geldig kan zijn, moet de cryptografische hash van zijn header kleiner zijn dan de doelwaarde. In tegenstelling tot Bitcoin bevat een sleutelblok een publieke sleutel die in de volgende microblokken gebruikt wordt om transacties te ondertekenen.

Micro blokken

Zodra een node een sleutelblok genereert, wordt het de leider. Als leider mag de node microblokken genereren met een ingestelde snelheid die kleiner is dan een vooraf gedefinieerd maximum.

Deze microblokken bevatten de ledger entries zonder een Proof-of-Stake requirement en de blokken worden uitsluitend gegenereerd door de gekozen leider voor die bepaalde cyclus.

Deze cyclus voor het genereren van blokken wordt geïnitieerd door een leidersblok. De enige vereiste is om de microblokken te ondertekenen met de privésleutel van de gekozen leider.

De microblokken kunnen met een zeer hoge snelheid worden gegenereerd door de gekozen leider (Miner), wat resulteert in hogere prestaties en transactiesnelheid.

Om een geldig microblok te hebben, moeten alle invoeren geldig zijn volgens de specificatie van de state machine, verder moet ook de signature van de miner geldig zijn.

Waves-NG Beloningsysteem

Miner beloningen bestaan uit twee delen. Ten eerste geeft elk sleutelblok zijn maker een bepaald bedrag. Ten tweede brengt ledger entry een vergoeding met zich mee. Deze vergoeding wordt gedeeld door de leider die deze entry in een microblok plaatst en de volgende leider die het volgende sleutelblok genereert. Om deelnemers te motiveren om het protocol te volgen, gebruikt Waves-NG het volgende systeem: Elke transactie betaalt een vergoeding aan het systeem dat opnieuw wordt verdeeld onder minder: 40% aan de huidige leider en 60% aan de volgende. Tot slot, als een leider de keten doorkruist door twee microgolven met dezelfde ouder te genereren, wordt hij gestraft door het intrekken van de inkomsten; wie de fraude detecteert wint een nominale vergoeding (figuur 5).

Figuur 5: Chainstructuur van het Waves-NG protocol. Micro blokken (circels) worden gesigned met de private sleutel die overeenkomt met de publieke sleutel van de laatste sleutelblok. (vierkanten). De fee wordt verdeeld als volgt: 40% voor de huidige leider en 60% voor de volgende.

Bron: http://www.waveswiki.org/index.php?title=Waves_NG_Protocol

Advertisements