Wat is een consensus algoritme?

Wat is een consensus algoritme?
Anycoin Direct

Door Anycoin Direct

Als je deze termen voor de eerste keer zo ziet zul je je even achter de oren krabben. Een consensus algoritme? Wat is dat nou weer? Na het volgen van deze les zul je niet alleen weten wat het is, maar ook welke vormen er allemaal van zijn.

Korte samenvatting

✔️ Consensus betekent in het kader van cryptocurrency het eens zijn over de toestand van een blockchain.

✔️ Een algoritme is een manier om een wiskundig of computergerelateerd probleem op te lossen.

✔️ Een consensus algoritme zorgt ervoor dat de validatoren een correct nieuw block produceren in een blockchain.

Consensus algoritme

Een consensus algoritme bestaat uit twee woorden, waarvan het eerste woord redelijk gemakkelijk uit te leggen is. Consensus betekent overeenstemming oftewel het met elkaar eens zijn.

In het kader van cryptocurrency betekent consensus het eens zijn over de toestand van een blockchain.

En nou komt het lastige gedeelte. Iedereen kent het woord algoritme wel, maar wat betekent het nou eigenlijk precies?

Een algoritme is een manier om een wiskundig of computer-gerelateerd probleem op te lossen. Hierbij werkt men vanuit een begintoestand naar het einddoel door het toepassen van eenduidig gedefinieerde instructies. Dat is nog een hele mond vol. Dat kan gemakkelijker!

Het doel van een algoritme is een probleem oplossen. De instructies van een goed algoritme werken zo dat het einddoel zo efficiënt mogelijk behaald wordt.

Het woord algoritme wordt op dit moment gebruikt voor alle eindige procedures om problemen op te lossen of taken uit te voeren.

Als we spreken van een consensus algoritme hebben we het dus over een set instructies die ertoe leiden dat consensus bereikt wordt tussen de deelnemers aan een blockchain netwerk. Deze deelnemers moeten de staat van het blockchain netwerk bijhouden (valideren) en altijd in meerderheid eens zijn dat de nieuwe staat van het netwerk klopt.

In gewone mensentaal zou je kunnen zeggen dat een computerprogramma (algoritme) ervoor zorgt dat deelnemers (validatoren) het eens worden over een bepaalde uitkomst (de staat van de blockchain).

Een voorbeeld van een algoritme is dat van Euclides met betrekking tot de algemene deler:

Zo lang A en B niet gelijk zijn: trek van het grootste van de twee het andere af. Zodra ze gelijk zijn is de grootste gemene deler a (of b).

En dit is dan nog een simpel voorbeeld!

Het woord algoritme komt uit oude tijden. Het is een verbastering van de naam van een Perzisch wiskundige uit de 8e eeuw, Al-Chwarizmi. Het eerst bekende algoritme voor een computer werd geschreven in 1842 door Ada Lovelace, de dochter van lord Byron.

Hoe werkt een consensus algoritme? 

Een consensus algoritme zorgt ervoor dat de validatoren samen zorgen voor een correct nieuw block in een blockchain. Het verhoogt de veiligheid van een blockchain en zorgt ervoor dat een blockchain geen onderhoud nodig heeft, alles gaat vanzelf. Dit noemen we gedecentraliseerd, omdat het netwerk geen centrale instantie nodig heeft om alles te controleren, zoals bijvoorbeeld bij een bank.

Een nieuw block in een blockchain bevat transacties en nieuwe munten. Als een meerderheid van de validatoren het eens zijn over welke transacties er zijn geweest sinds het laatste gemaakte block en wie het nieuwe block mag maken, zal de aangewezen validator dit block gaan maken en is de keten met één blok groter geworden.

Welke varianten van een consensus algoritme zijn er?

Proof of work

Validatoren die een nieuw block mogen maken worden op allerlei manieren gekozen. De bekendste manier is proof of work (mining). Daarbij mag degene die een moeilijke cryptografische puzzel als eerste heeft opgelost het nieuwe block maken als een meerderheid van zijn collega’s (ook miners of validatoren) het eens zijn (consensus) dat dit nieuwe block correct is. Dit algoritme is heel veilig gebleken, al is het vanwege het energieverbruik niet duurzaam. Door het ontstaan van grote mining pools ontstaat er centralisatie.

Proof of stake

Een andere bekende manier om dit te doen is door proof of stake, waarvan er veel varianten zijn. Hierbij wordt een bepaalde validator aangewezen of uitgeloot die het nieuwe block mag maken, als een meerderheid van de validatoren (nodes) het eens zijn dat het nieuwe block correct is. Bij proof of stake moet je munten at stake zetten, oftewel inzetten en vasthouden. De veiligheid van dit algoritme zit in het feit dat de mensen die het netwerk veilig moeten houden coins verliezen als ze dat niet doen en daarom is het zeer veilig. Wel is het zo dat mensen met veel coins steeds rijker worden en meer invloed op een netwerk krijgen.

Delegated proof of stake

Een kleine groep validatoren zetten veel munten at stake en mensen met minder coins zetten hun coins in bij deze delegates. De gedelegeerden krijgen een groot aantal munten erbij, die ze delen met de mensen die hen gedelegeerd hebben. Dit consensus algoritme zorgt voor democratisch gekozen validatoren en is goed schaalbaar. Het kan wel zorgen voor vriendjespolitiek, waarbij een kleine groep elkaar de bal toespeelt en er centralisatie van invloed optreedt.

Proof of burn

Dit is een nogal raar consensus mechanisme waarbij je meer kans hebt op het toevoegen van een block als je meer coins verbrandt. Het verbranden van coins betekent ze vernietigen, bijvoorbeeld door ze naar het verkeerde netwerk te sturen of iets dergelijks. Uiteraard zal de inflatie nogal laag zijn als er zo veel coins verbrand worden, maar aangezien mensen er niet van houden om hun coins te vernietigen zal het wel nooit erg populair worden.

Proof of capacity

Dit consensus mechanisme staat ook bekend onder de naam proof of space. Hoe meer ruimte je op je harde schijf toevoegt aan een netwerk, hoe meer kans er is dat je daar een beloning voor krijgt. Het voordeel van dit mechanisme is dat het energiezuinig is. Nadelen zijn dat je enorme harde schijven nodig hebt en deze goed moet beveiligen tegen malware en virussen.

Proof of authority

Je zet hierbij niet je coins op het spel maar je naam, oftewel je reputatie. Wie zijn verantwoordelijkheden niet neemt zal bekend worden gemaakt als een slechte validator, waarbij andere netwerken je kunnen gaan mijden. Vooral big bags en exchanges kunnen zich dit niet veroorloven. Omdat validatoren hun naam niet op het spel willen zetten zullen ze zich goed gedragen. Doordat ze zich zo goed gedragen zullen zij ook de meeste autoriteit hebben en dus de meeste coins krijgen, waardoor er centralisatie ontstaat.

Proof of participation

Dit consensus algoritme werkt ook met reputatie, maar dan onder de validatoren en nodes. Hoe beter ze zich inzetten voor een netwerk, hoe vaker ze gekozen zullen worden om nieuwe coins te munten. Het is een van de eerlijkste mechanismen, al werken vrij weinig belangrijke munten er mee.

Proof of elapsed time

Waar de meeste blockchains permissieloos zijn, dat wil zeggen dat je geen toestemming nodig hebt om mee te mogen doen aan een netwerk, is dit consensus mechanisme er een waar je wel toestemming nodig hebt. In dit algoritme worden validatoren random aangewezen om munten te mogen toevoegen aan de blockchain op basis van wie als eerste wakker wordt, na het beginnen van de “slaaptijd” (elapsed time). Het is eerlijk, verbruikt weinig stroom, maar je hebt wel toestemming nodig om mee te mogen doen, hetgeen altijd een risico inhoudt van censuur.

Delayed proof of work

Hierbij wordt de hashing power van grotere netwerken gebruikt om het kleinere netwerk te beschermen tegen aanvallen. Hierdoor heeft het netwerk een grotere veiligheid.

Effective proof of stake

Hierbij worden vroege stakers, die als het betrouwbaarst worden gezien, het vaakst aangewezen om nieuwe coins te munten. Er wordt wel nog gezorgd voor beloningen voor nieuwkomers, zodat niet alle coins zich gaan centraliseren.

Pure proof of stake

Dit is een algoritme op basis van een loterij, waarbij iedereen evenveel “loten” krijgt om mee te doen op basis van zijn coins at stake. Uiteraard winnen de stakers met de meeste loten het vaakst. Het is een zeer gedecentraliseerd systeem.

Bonded proof of stake

Bij dit consensus mechanisme zet je je coins vast voor een bepaalde tijd. Hoe meer je er vast zet, hoe meer stemmen je mag indienen. Een nadeel van deze methode is dat stakers in de tijd dat hun coins vastzitten veel geld kunnen verliezen als de coin instort of de bearmarkt ze minder waard maakt.

Nominated proof of stake

Hierbij nomineren stakers de validatoren om nieuwe blocks te maken. Wie de meeste stemmen krijgt mag dat doen.  Er kan sprake zijn van vriendjespolitiek, waarbij minder goede validatoren toch de meeste stemmen krijgen. Van de andere kant is het een simpel systeem dat weinig energie verbruikt en snel werkt.

Proof of stake time

Hoe langer je een coin staket, hoe groter je beloningen. Hierdoor krijg je zeer betrouwbare validatoren, maar die hebben op een gegeven moment wel alle coins, want niemand doet ze nog weg. Door het gebrek aan aanbod kan de interesse wegvallen en de prijs zelfs kelderen.

Leased proof of stake

Hierbij leasen stakers coins van validatoren, waarna ze een gedeelte krijgen van de opbrengsten van de blocks die zo’n validator toevoegt. Een voordeel is dat je geen grote hoeveelheden in hoeft te zetten om mee te kunnen doen. Een nadeel is dat je zelf validatoren moet gaan beoordelen, voordat je coins gaat leasen van een validator.

Anonymous proof of stake

Dit algoritme houdt je identiteit verborgen, zodat je anoniem kunt staken en beloningen kunt krijgen. Dit soort coins kunnen in sommige landen verboden worden juist vanwege de kans op witwassen en fraude.

Hybrid proof of stake

Combineert proof of work en proof of stake. Het probeert het beste te halen uit beide werelden.

Delegated proof of contribution

Hoe meer je voor een netwerk doet, hoe groter de kans is dat je nieuwe blocks mag maken of coins ontvangt. Zowel de stemmer als de genomineerde krijgen beloningen van het netwerk.

Secure proof of stake

Dit algoritme werkt zowel met aantal coins at stake als rating van de validator. Er wordt een RNG gebruikt die niet te voorspellen of te beïnvloeden is. Dit is een behoorlijk eerlijk systeem.

Tresholded proof of stake

Dit is een soort veilingsysteem, waarbij stakers voor bepaalde tijd munten mogen toevoegen in proportie met de grootte van hun bod. Aangezien er veel mensen uitgekozen worden met een rol en dus munten is dit een behoorlijk gedecentraliseerd systeem. De treshold betekent dat je een berekende drempel moet inzetten om mee te mogen doen voor een beloning.

Roll delegated proof of stake

Hierbij worden gedelegeerden via een RNG uitgekozen om een nieuw block toe te voegen aan de blockchain. Dit voorkomt vriendjespolitiek.

Proof of coverage

Dit consensus mechanisme checkt of je inderdaad het netwerk onderhoudt op de plaats waar je zegt dat je bent. Participanten in dit netwerk zenden en ontvangen signalen en worden hiervoor beloond. Het is een goedkope, weinig stroom verslindende manier om coins toe te voegen. Nadeel is wel dat plekken overbevolkt kunnen raken met miners of juist het omgekeerde, waardoor inkomsten tot een minimum kunnen slinken.

Proof of history

Dit algoritme werkt met timestamps (houdt de tijd bij) waarop een block gemaakt wordt. Door het gebruiken van de blockhoogte (geeft aan waar in de blockchain het block staat) wordt het netwerk veel sneller. Bitcoin maakt bijvoorbeeld gebruik van twee tijdstempels.

Proof of importance

Dit is een van de rare jongens onder de Romeinen. Je moet veel coins staken, als je belangrijk wordt geacht kun je veel nieuwe coins harvesten. Belangrijk word je als je veel coins hebt, ze lang in bezit hebt en als je veel aan handelen doet met de coin. Keep off the grass! Dit verzin je toch niet?

Delegated proof of broker

Hierbij word je een broker als je een bepaald aantal coins over meerdere exchanges verdeelt. De software van het netwerk gaat dan automatisch trade routes uitvoeren via de liquiditeitsaggregator van de accounts van de broker. Stakers kunnen een broker uitkiezen, die voor aantrekkelijke beloningen moet zorgen. Dit principe is heel snel en schaalbaar.

Proof of transfer

Dit is een consensus algoritme dat gebruik maakt van twee blockchains. Validatoren hevelen coins over (transfer) om te bieden op het winnen van een soort loterij om de leider te worden en nieuwe blocks te mogen minen.

Proof of storage

Algoritme dat bewijst dat je iets volledig vanaf je computer runt.

Proof of activity

Dit consensus algoritme is een combinatie van proof of stake en proof of work, waarbij alle miners tot overeenstemming moeten komen en dus alle transacties echt zijn. Dit is een zeer veilig systeem, al kan opschalen een probleem worden.

Test je kennis

Vraag: 1/5Welk gedeelte van een blockchain netwerk moet consensus bereiken over een nieuw te vormen block?
A2/3
B1/2
C1/3
DMeerderheid