Consensus bereiken - over PoW, PoS, Tangle, Tempo, en PoI
Aan de oppervlakte lijken alle cryptomunten op elkaar - een blockchain, transacties en een munt. Maar de ene blockchain is de andere niet! Eén van de aspecten waarop blockchains van elkaar verschillen is de manier waarop ze consensus bereiken.
Wat is consensus?
In een permissionless blockchain mag iedereen onderdeel worden van het netwerk en transacties toevoegen aan de blockchain. Niet alleen betrouwbare, vriendelijke mensen mogen dat, maar iedereen. Ook boosaardige snoodaards die alleen hun eigen belang dienen. Zo iemand kan een poging doen om foute informatie aan het grootboek toe te voegen, bijvoorbeeld transacties waarmee hij heel veel geld van anderen naar zichzelf overmaakt.
Om te voorkomen dat er een centrale autoriteit nodig is om te bepalen wat wel en niet klopt, hebben blockchains een mechanisme om deelnemers aan het netwerk consensus te laten bereiken. En de munt van zo'n blockchain speelt daarin vaak een belangrijke rol.
Het woord consensus betekent het met elkaar eens zijn. Overeenstemming bereiken. Een consensusmethode is een manier om het met elkaar eens te worden. De deelnemers aan het netwerk moeten het eens worden over de geldigheid van de informatie die aan de blockchain is toegevoegd.
De manier waarop ze die overeenstemming bereiken, is een belangrijk eigenschap van het netwerk, omdat het invloed heeft op de economie van de blockchain (waar komen de munten vandaan) en z'n veiligheid. Hoeveel kwaadwillenden zijn er nodig om de integriteit van een blockchain om zeep te helpen? Veel blockchains gaan pas stuk als aanvallers 51% van het netwerk in handen hebben.
In dit artikel laten we een aantal veel voorkomende manieren zien om consensus te bereiken. Deze methoden zijn technisch van aard, dus kijk niet gek op als je iets twee keer moet lezen om het te bevatten. Mocht je iets niet begrijpen, schroom niet om vragen te stellen op Telegram.
Proof-of-Work (PoW)
Proof-of-Work (vanaf hier: PoW) is de methode die door Bitcoin wordt gebruikt. Omdat er relatief veel munten van Bitcoin afstammen, is dit een veelgebruikte methode geworden.
In de context van PoW staat het oplossen van moeilijke puzzels centraal. Die puzzels worden opgelost door computers, niet door mensen. Een belangrijk aspect van die puzzels is dat ze moeilijk op te lossen zijn, maar makkelijk te verifiëren. Je zou het kunnen vergelijken met een heel lastig wiskundig probleem. Jij lost het met pijn en moeite op, en iemand anders hoeft enkel het antwoord te controleren.
Voor Bitcoin geldt dat het gemiddeld zo'n 10 minuten duurt om een puzzel op te lossen. Vervolgens kan de oplossing door andere deelnemers direct worden geverifieerd. Het oplossen van de puzzel kost veel energie, en daarmee veel elektriciteit. Dat heeft twee effecten:
- Het is daarom zeer lastig (tegen het onmogelijke aan) voor een kwaadwillende om 51% van het netwerk te beheersen. Daar zou een gigantische hoeveelheid rekenkracht tegenover moeten staan.
- Het maakt deze consensusmethode verre van duurzaam. Er wordt veel elektriciteit verbruikt voor het oplossen van problemen die buiten de blockchain geen toegevoegde waarde hebben.
Met name door punt 2 zijn er steeds meer munten die deze consensusmethode deels of helemaal niet meer gebruiken.
Proof-of-Stake (PoS)
Proof-of-Stake (vanaf hier: PoS) is een andere veelgebruikte methode om consensus te bereiken. Het wordt bijvoorbeeld gebruikt door Waves, en veel nieuwe netwerken maken er ook gebruik van.
Centraal in PoS staat dat deelnemers een deel (stake) van hun munten ter beschikking stellen aan het netwerk om de integriteit van de blockchain te waarborgen. Elke vastgezette munt maakt kans om bij het volgende block de puzzel op te lossen en daarmee het volgende aan de blockchain toe te voegen. Tijdens het maken van zo'n block wordt je een forger genoemd - het equivalent van een miner in het PoW-systeem.
Om zo'n block te kunnen maken, worden de munten die je hebt gereserveerd voor het staken letterlijk at stake gezet. Als een fraudulente transactie wordt gevalideerd, worden die munten ingenomen. Je verliest in dat geval ook het recht om nog aan het staken deel te nemen, en daarmee ook de beloningen die je krijgt voor het werk dat je verricht als forger.
PoS bewaakt op twee manieren de integriteit van een blockchain:
- Als kwaadwillende zet je (veel) geld op het spel. Als je aanval mislukt, ben je je geld kwijt.
- Als kwaadwillende moet je meer dan 50% van alle munten in het netwerk bezitten, wil je een aanval lanceren die gaat slagen. In bijna alle gevallen is dat (veel) te duur.
Een groot voordeel van PoS is dat het veel energiezuiniger is dan PoW. Veel nieuwe netwerken maken daarom gebruik van dit model, en er zijn bestaande netwerken die er naar overstappen.
Consensus bij DAG's
Tangle is de naam van de Directed Acyclic Graphs (DAG) implementatie van IOTA. Een DAG is een datastructuur, net zoals blockchain. In plaats van een lange lijst van blocks is het een "gerichte graaf" van transacties. Elke transactie moet refereren aan twee voorgaande transacties, en die daarmee controleren. Het voordeel daarvan is dat er geen munt als beloning gegeven hoeft te worden, het nadeel is dat kwaadwillenden al aan beheersing van 34% (in plaats van 51%) van het netwerk genoeg hebben.
Andere vormen van consensusvorming
Het vinden van consensus is een essentieel onderdeel van distributed, permissionless blockchains. Allerlei projecten experimenteren met alternatieven. Een aantal voorbeelden.
Tempo
Tempo is een mechanisme dat wordt gebruikt door Radix, en is een hele andere manier om consensus te bereiken, zonder het decentrale aspect van blockchains te verliezen.
Tempo gebruikt sharding (dat zijn delen van de blockchain) en zogenaamde logical clocks om de juiste volgorde van gebeurtenissen in het netwerk te bepalen.
Een logical clock is in essentie een getal dat altijd toeneemt. De waarde ervan wordt iedere keer als er iets gebeurt verhoogd. Deelnemers van het netwerk verhogen hun logical clock alleen als ze getuige zijn van een gebeurtenis die ze nog niet eerder gezien hebben. De deelnemer slaat de gebeurtenis en de waarde van de logical clock op. Deze gegevens worden gebruikt om transacties in het netwerk mee te waarmerken.
Een ander deel van Tempo's consensusmodel worden commitments genoemd. Alle deelnemers hebben zich eraan gecommitteerd om alles wat ze hebben waargenomen door te geven aan andere deelnemers. Je zou het kunnen zien als roddelen. Dat 'roddelen' draagt eraan bij om slecht gedrag van een deelnemer aan het daglicht te brengen.
Proof of Importance (PoI)
Proof of Importance (vanaf hier: PoI) is geïntroduceerd door NEM. Het is vergelijkbaar met PoS-consensus, maar daaraan toegevoegd krijgt iedere deelnemer binnen het netwerk een zogenaamde importance score. Het is een manier om je reputatie binnen het netwerk aan te geven.
Hoe beter de reputatie van de deelnemer is binnen het netwerk, hoe groter de kans is dat die deelnemer een transactie aan de blockchain mag toevoegen. Dat is belangrijk, want voor dat werk wordt de deelnemer beloond (dat wordt in deze context harvesting genoemd). Je reputatie wordt bepaald op basis van het effect dat je op de economie hebt; onder andere door de hoeveelheid munten, en de reputatie van deelnemers met wie je handelt.
Een voordeel ten opzichte van PoS is dat de nadruk minder op rijkdom komt te liggen, aangezien er (ook) andere factoren worden meegewogen dan de hoeveelheid beschikbare munten.
Ten slotte
In dit artikel staan de belangrijkste consensusmodellen op een rij. Maar het is niet alles. Ripple en Stellar gebruiken bijvoorbeeld andere mechanismen (Probabilistic Voting, en Stellar Consensus Protocol). Verder zijn er nog allerlei andere mechanismes die bijdragen aan consensus. Denk aan Proof of Activity, Proof of Burn, en Proof of Capacity. We zijn van plan om later verder in te gaan op het op de manier waarop Ripple en Stellar deze problematiek hebben opgelost. Wil je nu meer weten over hoe consensus werkt? Lees dan het onderzoeksverslag "Consensus Methods in Blockchain Systems" (PDF) van Frankfurt School of Finance & Management. Succes!
Iedereen heeft een mening
Onder de noemer Opinie
schrijven we regelmatig over een spraakmakende podcast, video of tweetstorm.
We zijn het niet noodzakelijkerwijs eens met de spreker of schrijver, maar vinden het interessant genoeg om
te delen, duiden en ondertitelen.