Consensus mechanismen

Wat is een consensus mechanisme?

Een consensus mechanisme is een systeem bij blockchains (en andere gedistribueerde processen) om op een fout-tolerante manier gezamenlijk tot een overeenkomst te komen over de huidige staat van het netwerk en de geldigheid van alle data in dat netwerk.  

In gecentraliseerde systemen, zoals databases van bedrijven of overheden, heeft 1 enkele centrale entiteit autoriteit en controle over de data en staat van het netwerk. Deze entiteit heeft de volledige verantwoordelijkheid over alle informatie en bezit alleenrecht om op elk moment veranderingen aan te brengen in het systeem.  

Publieke blockchains zijn echter gedecentraliseerd, en bestaan zonder 1 enkele autoriteit of eigenaar van het netwerk. Om dergelijke blockchains efficiënt te kunnen laten werken, waarbij er een volledige consensus is tussen iedereen binnen het netwerk, is er nood aan een robuust, betrouwbaar en functioneel systeem die verzekert dat alle data, transactiegeschiedenis en boekhouding eerlijk en transparant wordt opgeslaan en geverifieerd. Om dit te kunnen waarmaken in een dermate dynamisch systeem als blockchain databases, zijn consensus mechanismen tot het leven geroepen. Consensus mechanismen bestaan uit een set van regels die de rol van elke participant in het netwerk bepalen, zodat op een transparante manier tot een gezamenlijke overeenkomst kan worden gekomen over de echtheid van alle data in het netwerk, zonder de tussenkomst van een derde partij of autoriteit. Het is een vorm van zelfregulatie, die een antwoord biedt op het byzantijnse generalen probleem, met een enorm hoge tolerantie tegen fouten, slechte bedoelingen van deelnemers, of aanvallen tegen het netwerk.

Omdat de veiligheid en onveranderlijkheid van een blockchain is gebaseerd op het stelselmatig toevoegen van nieuwe blokken met transacties aan de volledige ketting van blokken (zie hoe werkt een blockchain), omvat een consensus mechanisme in blockchain systemen de regels rond het toevoegen en valideren van nieuwe blokken.

Bovenstaande figuur illustreert hoeveel verschillende consensus mechanismen er bestaan! Hieronder bespreken we de belangrijkste.

Proof-of-Work (POW) is het meest gebruikte consensus mechanisme met de langst lopende geschiedenis en wordt gebruikt in netwerken als Bitcoin, Litecoin,,… Deze vorm van consensus wordt nog steeds aanzien als de meest veilige en geteste vorm van consensus bij blockchains. Bij dit systeem kan ieder die dit wil de rol opnemen van ‘miner’, waarbij hij/zij beslist om een computer ten dienste te stellen van het netwerk in ruil voor een economische vergoeding. Deze computer zal enorm veel berekeningen maken, wat zoveel tijd en electriciteit zal kosten zodat niemand deze werklast later zal kunnen (noch willen) nadoen om data te vervalsen. Vandaar de naam Proof-of-Work, omdat bij dit proces miners de verantwoordelijkheid krijgen om nieuwe blokken toe te voegen en hiervoor moeten bewijzen dat hiervoor veel werk verricht is.

Meer informatie rond het proces van minen vind je hier.

Proof-of-Stake (PoS) is een meer recent consensus mechanisme, die voornamelijk in het leven is geroepen als alternatief op PoW om minder elektriciteit en energie te verbruiken. Bij dit systeem zullen alle participanten van het netwerk zelf de verantwoordelijkheid dragen over de juiste staat van het netwerk. Hoe meer munten een participant bezit van de blockchain, hoe zwaarder zijn/haar stem zal doorwegen bij het maken van beslissingen, en dus hoe meer kans hij/zij heeft om een nieuwe blok toe te voegen. Veel geuite kritieken op PoS zijn dat het vooral het sparen van munten in de hand werkt, alsook dat het leidt tot een plutocratie (waarbij rijken aan de macht zijn). Bekende blockchains die PoS hanteren als consensus mechanisme zijn EOS, Cardano en Dash.

Leased Proof-of-Stake (LPoS) is een variant van PoS, die poogt het probleem op te lossen dat participanten met zeer weinig munten in een PoS weinig tot geen stem kunnen uitbrengen. LPoS lost dit op door de mogelijkheid te bieden aan deze participanten om hun (weinig aantal) munten te ‘leasen’ aan grotere spelers in het netwerk, om toch zo een grotere kans te krijgen om een blok toe te voegen. Waves is een voorbeeld van een blockchain die dit mechanisme hanteert.

Delegated Proof-of-Stake (dPos) is een gelijkaardige oplossing voor het PoS mechanisme als LPoS, met het verschil dat participanten met weinig munten kiezen welke node blokken mag toevoegen in het netwerk. Ze delegeren dus hun verantwoordelijkheid, zonder zeggenschap volledig te verliezen. Bitshares is een voorbeeld van een blockchain met een dPoS consensus mechanisme.

Nog een alternatief voor PoS is Proof-of-Authority (PoA), waarbij nieuwe blokken worden gevalideerd en toegevoegd door goedgekeurde nodes, gekend als “validators”. Nodes moeten het recht verdienen om validator te worden, en koppelen hun eigen reputatie en identiteit aan hun node. Dit zorgt voor een sterkte aansporing bij de validators om het transactieproces eerlijk en transparant te laten verlopen.

Proof-of-Activity (POA) probeert dan weer een efficiënte hybridesysteem te vormen tussen PoW en PoS, en de goede eigenschappen van beide te bundelen. Bij dit consensus mechanisme zullen miners, vergelijkbaar met PoW,  eerst een cryptografische puzzel oplossen om een blok te creëren. Deze blok bevat echter nog geen enkele transactie, en wordt na het minen gevuld en gevalideerd door ‘validators’ van het netwerk volgens een PoS systeem. De opbrengsten van het volledige validatieproces worden dan ook gedeeld tussen miners en validators. Decred is een voorbeeld van een blockchain die dit consensus mechanisme hanteert.

Proof-of-Importance is een consensus mechanisme gebruikt door bijvoorbeeld NEM. Bij dit systeem wordt het aantal transacties dat een node verricht, alsook de waarde van de transacties, in rekening gebracht bij het bepalen hoeveel recht deze entiteit heeft om blokken te mogen toevoegen. Hoe vaker en hoe meer waarde er wordt overgedragen door een node, hoe betrouwbaarder deze is en hoe meer stemrecht deze krijgt van het netwerk.

Het eerste consensus mechanisme die een praktische oplossing vormde voor het Byzantijnse Generalen Probleem is Practical Byzantine Fault Tolerance (pBFT). De blockchain HyperLedger gebruikt dit systeem, waarbij de nodes die verantwoordelijk zijn voor het netwerk vooraf worden geselecteerd. Dit brengt een beperking van ongeveer een maximum van 20 nodes met zich mee, anders zou het versturen van alle data tussen elke node teveel tijd en complexiteit met zich meebrengen. Hierdoor is dit consensus mechanisme vooral geschikt voor permissioned blockchains, en niet voor permissionless blockchains.

Om dit probleem van schaalbaarheid (max 20 nodes) en geslotenheid (permissioned blockchains) op te lossen werd Federated Byzantine Fault Tolerance (fBFT) in het leven geroepen. In tegenstelling tot pBFT systemen zijn dit open netwerken zonder centrale entiteit die nodes selecteert, waarbij elke node zelf bepaalt welke andere nodes die vertrouwt (via quorum slices), en waarbij transacties worden doorgevoerd via federated voting (met een stemronde, acceptatieronde en bevestigingsronde). Stellar is een voorbeeld van een blockchain met een fBFT consensus mechanisme.

Een andere variant om Byzantine Fault Tolerance te bekomen is via Delegated Byzantine Fault Tolerance, zoals bij de blockchain NEO. Bij dit systeem zijn er 2 vormen van nodes, namelijk Speakers en Delegates. Delegates worden gekozen door NEO bezitters en verzorgen het validatieproces van nieuwe blokken. Om als Delegate verkozen te kunnen worden heb je een minimum aan rekenkracht, hoeveelheid NEO en internetsnelheid nodig. Eenmaal een nieuwe blok is gevalideerd, wordt willekeurig uit de Delegates een Speaker gekozen die, na akkoord van minimum 66% van de Delegates over de hash van een nieuwe blok, het toevoegen van die blok voor zijn/haar rekening neemt. Deze manier van werken maakt het bovendien onmogelijk dat er veel hardforks kunnen ontstaan van de originele blockchain.

Conclusie

Er bestaat een grote diversiteit in de manieren waarop tot een overeenkomst kan worden gekomen in een blockchain database. Elk consensus mechanisme heeft vanzelfsprekend zijn voor- en nadelen, waardoor er geen ‘juist’ systeem bestaat voor verschillende types blockchain met verschillende doeleinden. De meeste consensus mechanismen bestaan nog niet zo lang, met als uitzondering PoW die bijna 10 jaar lang bij Bitcoin heeft bewezen dat het een robuust, operationeel en betrouwbaar systeem vormt. PoS heeft inmiddels ook veel aanhangers, en lijkt een mooie aanvulling te vormen op PoW. De andere vormen van consensus zullen nog de tand des tijds moeten doorstaan om hun meerwaarde aan te tonen.