blockchain code

Hoe werkt een transactie op de blockchain?

Op de blockchain vinden tal van transacties plaats. Maar hoe werkt een transactie op de blockchain? Zonder deze transacties, zouden we ook niet kunnen betalen met bijvoorbeeld Bitcoin. Ook een Bitcoin transactie vindt namelijk altijd op de blockchain plaats, en wordt niet uitgevoerd door bijvoorbeeld een bank. Er is namelijk een compleet andere manier waarop de transacties worden gecontroleerd.

Bekijk snel

Wat is blockchain?

Laten we bij het begin beginnen. Want wat is een blockchain en hoe werkt het? De blockchain is namelijk de basis van alle transacties die tussen verschillende cryptocurrencies plaatsvinden. Kort gezegd bestaat een blockchain uit een keten van blokken, die allemaal aan elkaar verbonden zijn. Deze blokken zijn met elkaar verbonden doordat ze allemaal de hash (een stukje code) van het vorige blok bevatten.

De hash van blok A staat dus in blok B, en de hash van blok B staat in blok C. De hash van blok C staat in blok D, etc. Je begrijpt het principe. In deze blokken staat, naast de hash van het vorige blok, nog meer data. En dat is bijvoorbeeld ook de data van een transactie.

Het voordeel aan de blockchain is dat de data die in de blokken wordt opgeslagen, voor iedereen en overal beschikbaar is. Zo kun jij dus precies zien welke transacties allemaal zijn uitgevoerd. Dat komt doordat blockchain decentraal is. Iedere deelnemer in het netwerk heeft een kopie van de blockchain. Dit zorgt ervoor dat de geschiedenis niet aanpasbaar is.

Is de data eenmaal opgeslagen in de blockchain, dan kan niemand deze data meer wijzigen. Iedereen heeft namelijk een kopie van de blockchain. Hierdoor zou ook iedereen het opmerken wanneer data wordt aangepast. Daarom wordt blockchain als een ontzettend veilige technologie gezien.

Hoe werkt een transactie op de blockchain?

Maar hoe werken die transacties dan? Wat gebeurt er wanneer ik naar jou een Bitcoin verstuur? We gaan het proberen zo simpel mogelijk uit te  leggen. 

Transaction pool

Op het moment dat iemand een transactie uitvoert, wordt alle benodigde data naar de blockchain verstuurd. De transactie gaat dus langs  alle nodes die deelnemen aan de blockchain. Vervolgens moet er gewacht worden totdat de transactie wordt verwerkt. Dit wachten gebeurt in een transaction pool. Alle transacties die hierin zitten, zijn nog niet bevestigd. De tijd doe je hiervoor moet wachten, noemen we de verwerkingstijd.

Iedere blockchain heeft een andere verwerkingstijd. De blockchain van Bitcoin doet er bijvoorbeeld ongeveer 10 minuten over voordat een blok is verwerkt in de blockchain. Dat betekent dat je 10 minuten moet wachten voordat je zeker weet of je transactie ook daadwerkelijk is uitgevoerd. Maar wat gebeurt er wanneer een transactie wordt verwerkt?

Mining

Op het moment dat jouw transactie aan de beurt is, wordt deze transactie, samen met alle andere transacties, in een blok geplaatst. Dit blok moet vervolgend gemined worden. Het consensus algoritm dat door de blockchain wordt gebruikt, bepaalt hoe dit proces er precies uit ziet. Daar leggen we je zo meer over uit.

Het minen houdt in dat nodes (deelnemers van de blockchain die in dit geval miners worden genoemd) een wiskundige puzzel moeten gaan oplossen. Deze puzzel bestaat uit het vinden van de juiste hash. In het geval van Proof-of-Work, zijn alle miners van de blockchain bezig met het vinden van de juiste hash. Iedereen heeft hetzelfde doel voor ogen: een nieuw blok mogen toevoegen aan de blockchain.

De miner die als eerste de juiste hash heeft gevonden, is de winnaar, en mag het block daadwerkelijk toevoegen aan de blockchain. Ook krijgt dezelfde node een beloning voor zijn werk. De beloning die de miner krijgt, bestaat uit de transactiekosten die iedereen heeft betaald, en uit de block-fees. Dit zijn nieuwe Bitcoin, en dit aantal wordt alsmaar kleiner, totdat er geen nieuwe Bitcoins meer zijn.

Consensus algoritme

Het consensus algoritme bepaald grotendeels hoe de transacties op de blockchain worden uitgevoerd. In bovenstaand voorbeeld hebben we vooral laten zien hoe dit proces er uit ziet voor de blockchain van Bitcoin. Bij de meeste andere consensus algoritmes ziet het proces er in grote lijnen ook zo uit, al is er toch vaak wel wat verschil. Het is daarom belangrijk om ook dit verschil te benoemen, en te weten dat het niet bij iedere cryptovaluta op deze manier gaat.

Proof-of-Stake

Het tweede bekendste consensus algoritme is Proof-of-Stake (PoS). Waar het bij het Proof-of-Work voor iedereen mogelijk is om als miner te starten, ligt de drempel bij Proof-of-Stake net wat hoger. Je zult hier namelijk eerst geld moeten inzetten, voordat je kunt beginnen met minen. Al noemen we het bij Proof-of-Stake niet minen, maar staken.

Waarom is het nodig om geld in te zetten? Op deze manier wil het algoritme ervoor zorgen dat er minder stakers zijn, en dat de stakers die wel aanwezig zijn, beter hun best doen. Ze hebben namelijk al wat op het spel gezet om mee te kunnen doen. Sterker nog, als ze hun werk niet goed uitvoeren, kunnen ze hun gehele inzet verliezen. De motivatie om nog beter je best te doen, ligt hierdoor natuurlijk een stuk hoger dan bij Proof-of-Work. Het proces van het valideren van de transactie, gaat daarentegen wel redelijk gelijk  aan als bij Proof-of-Work.

Proof-of-Delegate

Een ander veelgebruikt consensus algoritme is Proof-of-Delegate (PoD). Bij dit algoritme worden de miners delegates genoemd. Ook bij dit algoritme kun je niet zomaar meedoen en beginnen met minen. Het is namelijk zo dat, wanneer je een delegate wilt worden, je hiervoor verkozen moet worden. Dit gebeurt door middel van een stemsysteem, waar tokens worden gebruikt om mee te stemmen.

Kandidaten zullen een verkiezingsprogramma moeten opzetten om zo stemmen te kunnen winnen. De kandidaten met de meeste stemmen, mogen uiteindelijk de transacties gaan valideren. Doet een delegate zijn werk niet zoals beloofd? Dan is het mogelijk om de delegate weg te stemmen, waarna er een andere delegate voor in de plaats komt. Het is dus eigenlijk een democratie op blockchain-niveau.

Proof-of-Capacity

Proof-of-Capacity (PoC) is weer heel wat anders dan de eerder besproken algoritmes. Net als bij Proof-of-Stake moet er ook bij Proof-of-Capacity iets ingezet worden voordat je aan de slag kunt als miner. Bij Proof-of-Capacity geef je namelijk een deel van je hardware aan het netwerk. Met dit stukje hardware kunnen transacties verwerkt en gevalideerd worden. Het klinkt als Proof-of-Work, waar je ook een deel van je computerkracht opgeeft, maar toch is het net wat anders.

Je zult bij Proof-of-Capacity moeten investeren in goede hardware, zodat je meer kunt opgeven aan de blockchain. Op de hardware plotten miners namelijk oplossingen. Hoe meer ruimte er op de harde schijf is, hoe meer oplossingen er geplot kunnen worden. De kans is dan dus ook groter dat je als miner zijnde de juiste oplossing op je harde schijf hebt staan.

Proof-of-Participation

Het minst bekende consensus-algorithm van eerder benoemde algoritmes is waarschijnlijk Proof-of-Participation (PoP). Transacties worden hier gevalideerd door miners, maar deze miners worden geselecteerd door het netwerk. Hoe beter een miner zich gedraagt in het netwerk, hoe meer punten deze miner krijgt. De punten worden verkregen in de vorm van tokens.

Vervolgens worden participants gekozen voor het maken van een blok op basis van het aantal punten dat ze hebben. Doet een participant niet goed zijn best? Dan kan hij punten verliezen, en wordt de kans kleiner dat hij gekozen wordt om transacties te mogen valideren. Het idee is dus hetzelfde als Proof-of-Stake. Echter moet je bij Proof-of-Stake over een grote hoeveelheid geld beschikken. Hierdoor wordt de drempel om mee te doen een stuk hoger. En dat zorgt voor meet centralisatie.

Wat als een transactie niet wordt goedgekeurd?

We hebben het nu vooral gehad over transacties die worden goedgekeurd door het netwerk, en wat daar dan mee gebeurd. Het kan echter ook zo zijn dat een transactie niet wordt goedgekeurd. Stel dat jij één Bitcoin naar persoon B stuurt, maar jij in werkelijkheid maar een halve Bitcoin in je bezit hebt. Je zou de transactie dan in feite helemaal niet kunnen maken. Bij het verzenden van de Bitcoin gebeurt er nog niks. Maar wanneer miners aan de slag gaan met het valideren van de transacties, zullen ze erachter komen dat jij niet in staat bent om de gewenste transactie te kunnen maken.

Vervolgens zal het netwerk de transactie afkeuren. Dat betekent dat jouw transactie niet door kan gaan, en er ook niks van jouw rekening wordt afgeschreven. Afhankelijk van de blockchain, kan het wel zo zijn dat je transactiekosten moet betalen. Het netwerk heeft immers werk verricht om jouw transactie te kunnen controleren.

Het kan ook gebeuren dat een transactie wordt afgekeurd door een bug. Zo stond de Bitcoin blockchain erom bekend dat het soms transacties afkeurde zonder geldige reden. Sinds het gebruikt maakt van Segregated Witness (SegWit), komt dit bijna niet meer voor.

Hoe vaak wordt een transactie gecontroleerd?

Ook dit is afhankelijk van de blockchain, maar er zijn vaak meerdere deelnemers die controleren of een transactie geldig is. Wanneer de transactie een lage waarde heeft, wordt de transactie enkele keren gecontroleerd. Maar hoe hoger de transactiewaarde is, des te vaker een transactie wordt gecontroleerd. Op deze manier wil het gedecentraliseerde netwerk ervoor zorgen dat er niks fout gaat. Hoe hoger de waarde van de transactie is, hoe groter de impact van een fout kan zijn.