donderdag 05 augustus 2021 - door Matt
Wanneer je wat dieper in de wereld van crypto en blockchain duikt, kom je al snel het begrip 'consensus algoritme' tegen. Het is daarom niet onverstandig om, wanneer je nog niet weet wat dit betekent, hier wat meer over te lezen.
Je zou kunnen stellen dat het consensus algoritme een van de basisbeginselen van de blockchain is. Daarom leggen we je in dit artikel uit wat het consensus algoritme is, hoe het werkt en welke verschillende vormen je hiervan hebt.
Voordat we beginnen over het consensus algoritme is het belangrijk dat je de basis van de blockchain begrijpt.
Een blockchain bestaat uit een netwerk van verschillende nodes. Een node is een computer die verbonden is met de andere nodes in het netwerk. Op het moment dat iemand een transactie uitvoert, wordt deze naar het hele netwerk verzonden. Vervolgens gaat het netwerk controleren of de transactie valide is. Zo moet er bijvoorbeeld gekeken worden of iemand wel genoeg cryptomunten in zijn bezit heeft om deze te kunnen versturen.
Op het moment dat de transactie valide is, wordt dit opgeslagen in een blok, samen met alle andere transacties die de afgelopen 10 minuten zijn gevalideerd.
Het blok wordt vervolgens omgezet in een hash, wat een stukje code is. In ieder blok zit ook de hash van het vorige blok. Op deze manier ontstaat er dus een ketting van blokken die allemaal aan elkaar verbonden zijn. Dit noemen we vervolgens de blockchain.
Iedere node heeft overigens een kopie van de gehele blockchain opgeslagen op zijn machine. Ze kunnen daarom dus altijd controleren of bepaalde handelingen wel uitgevoerd kunnen worden, omdat ze weten wat er in het verleden is gebeurd. Hierdoor weten ze bijvoorbeeld ook hoeveel cryptomunten of tokens jij nog in je wallet hebt staan.
Je hebt vast wel eens een voetbalwedstrijd gekeken. Het is je dan ook wel bekend dat je spelers en één scheidsrechter in het veld hebt staan. De spelers moeten zich houden aan de regels die zijn opgesteld door de voetbalbond. Vervolgens controleert de scheidsrechter of iedereen zich wel aan deze regels houdt. Op het moment dat dat niet gebeurt, kan een speler een gele of rode kaart krijgen.
Vanuit hier kunnen we een bruggetje maken naar het consensus algoritme. Want dat kun je best wel vergelijken met een voetbalwedstrijd.
Zoals je weet bestaat de blockchain uit verschillende nodes, die allemaal transacties controleren. Iedere node wil dit als snelste doen, zodat ze een nieuw blok aan de blockchain mogen toevoegen en een beloning krijgen. Het is dus iedere keer opnieuw een wedstrijd om wie het snelst alle transacties heeft gevalideerd.
Maar ook voor een blockchain zijn er regels opgesteld door de ontwikkelaars. Deze regels moeten ervoor zorgen dat alles op de juiste manier werkt. Vervolgens is er ook iemand die controleert of alle regels wel worden nageleefd. Nou ja, niet ‘ook iemand’, want dat doet iedereen namelijk. Alle nodes in het netwerk zijn zowel speler als scheidsrechter, en controleren elkaar.
Op het moment dat een node zijn werk niet goed doet of de regels niet naleeft, kunnen de andere nodes besluiten om desbetreffende node een straf op te leggen. Zo kan er geld worden afgepakt, of kan de node zelfs uit het netwerk worden verwijderd.
Het hele verhaal dat we zojuist beschreven, heet het consensus algoritme. Het consensus algoritme is dus het algoritme dat de regels controleert. Door het consensus algoritme wordt er overeenstemming tussen alle nodes bereikt. Het bereiken van een overeenstemming noemen we ook wel consensus.
Dit kan op verschillende manieren uitgevoerd worden, en daarom zijn er ook verschillende soorten consensus algoritmes.
Het bekendste consensus algoritme is waarschijnlijk Proof of Work. Dit is namelijk het eerste algoritme, dat ook wordt gebruikt door de blockchain van Bitcoin.
Wanneer een node transacties verpakt in een block binnen een Proof of Work blockchain, noemen we het een miner. Het gaat bij dit algoritme om de computerkracht die een miner kan leveren. Dat betekent dat wanneer een miner krachtige hardware heeft, hij meer kans maakt om een block te mijnen.
De bedoeling van de bitcoin blockchain is dat er gemiddeld gezien om de tien minuten een block gemijnd wordt. Miners nemen het tegen mekaar op om een hash te berekenen. Eenvoudig gesteld zou je kunnen zeggen dat deze hash kleiner moet zijn dan een opgelegde voorwaarde. Bij de difficulty change kan dit makkelijker of moeilijker gemaakt worden en dit wordt om de twee weken bepaald. Komen de blokken sneller dan 10 minuten, dan wordt het wat moeilijker gemaakt. Komen ze te traag? Dan wordt de moeilijkheidsgraad verlaagd.
De hash berekenen is eigenlijk een gokspelletje. De mijners wijzigen de nonce van het block en voegen als het ware een willekeurig getal toe. Hierdoor wijzigt de hash die berekend wordt. Voldoet de hash niet aan de voorwaarde? Dan doet de mijner een nieuwe poging. Zo worden er tienduizenden gokken gedaan en de mijner die over de beste apparatuur beschikt heeft uiteraard een hogere kans dat hij het juiste getal zal raden.
Hierdoor krijg je een strijd om computerkracht, en ontstaan er reusachtige mining-farms. Dit zijn ruimtes die vol staan met servers om transacties te valideren.
Er is veel kritiek op het Proof of Work algoritme. Het kost namelijk veel stroom om transacties te valideren, waardoor het niet bepaald een duurzame oplossing is. Daarnaast kampen blockchains met het Proof of Work algoritme ook met problemen omtrent de schaalbaarheid. Dit is een van de redenen dat Ethereum overstapt op Proof of Stake. Via een second layer oplossing zoals het Lightning Network kan bitcoin echter wel veel beter schalen.
Waar het bij Proof of Work draait om de computerkracht die je levert, draait het bij Proof of Stake om het geld dat je kunt inzetten. Dit noemen we de stake, en kun je zien als een soort van borg.
Nodes die transacties valideren in een blockchain die Proof of Stake gebruikt, noemen we validators. Deze validators moeten dus eerst een geldbedrag inzetten voordat ze mee mogen doen.
De hoogte van deze stake bepaalt hoe groot de kans is dat ze worden gekozen om blokken toe te voegen. De validators worden dus uitgekozen, en ze zijn niet tegelijkertijd aan het werk. Dit scheelt dus een hoop energie.
Op het moment dat een validator zijn werk niet goed doet, kan het netwerk de validator straffen door zijn inzet af te pakken. De stake die een validator inzet is dus een extra motivatie om goed zijn best te doen.
Proof of Work en Proof of Stake zijn de bekendste en meest voorkomende consensus algoritmes, maar er zijn er nog veel meer. Overige consensus algoritmes zijn:
Misschien vraag je jezelf af wanneer nodes een bepaalde handeling kunnen uitvoeren. Denk bijvoorbeeld aan het verbannen van een andere node uit het netwerk. Dat wordt gedaan door middel van het Byzantine Fault Tolerance (BFT).
Het Byzantine Fault Tolerance is een principe waarbij een beslissing pas wordt gemaakt op het moment dat minimaal 51% van het netwerk achter de beslissing staat.
Stel je voor dat dat Node A ziet dat Node B zich niet aan de regels houdt. Dan kan Node A een voorstel doen aan het netwerk om Node B te straffen. Vervolgens zullen alle andere nodes gaan stemmen over dit voorstel.
Op het moment dat 51% of meer van het gehele netwerk ook vindt dat Node B gestraft moet worden, zal dat gebeuren. Een beslissing wordt dus niet uitgevoerd wanneer 50% of minder achter een bepaalde keuze staat.
Het Byzantine Fault Tolerance wordt ook wel gezien als de basis van het consensus algoritme. Echter, het is wel belangrijk om het verschil tussen deze twee begrippen te kennen. Er zijn namelijk veel mensen die het Byzantine Fault Tolerance verwarren met het consensus algoritme.
Het consensus algoritme zorgt er dus voor dat de nodes binnen het netwerk van de blockchain met elkaar samen kunnen werken. Zo worden hier de regels bepaald, en zorgen de nodes ervoor dat iedereen zich aan deze regels houdt.
Er zijn verschillende consensus algoritmes, waarvoor Proof of Work het bekendste is. Dit is namelijk het consensus algoritme dat ook door de blockchain van Bitcoin wordt gebruikt. Ethereum gebruikte dit algoritme ook, maar zal overstappen op Proof of Stake.
Disclaimer: beleggen is altijd risicovol. Bescherm steeds jouw vermogen door risico's te spreiden.
Download hier meteen het meer dan 150 pagina's tellende e-book "Bitcoin & crypto uitgelegd".