Alles over cryptogeld, in gewone mensentaal.

Hoe werken bitcoin-transacties?

Peter

In het dossier over bitcoin heb je inmiddels kunnen lezen hoe je bitcoin koopt en verkoopt. Anders gezegd: hoe je de digitale munt verstuurt en ontvangt. Maar hoe werkt dat eigenlijk, zo'n transactie?

De eenvoudige uitleg

Laten we beginnen met een eenvoudige, ietwat gesimplificeerde versie. Als je wat van je bitcoin wilt versturen, publiceer je die intentie aan het bitcoin-netwerk. Alle computers die samen het netwerk vormen (die worden nodes genoemd) gaan aan het werk om te valideren dat 1) je de bitcoins in bezit hebt die je wilt versturen, en 2) je die bitcoins nog niet aan iemand anders verzonden hebt.

Als die informatie bevestigd is, wordt je transactie samen met andere transacties opgenomen in een block. Dit block wordt cryptografisch verbonden aan het voorgaande block - vandaar de term blockchain. Transacties kunnen daarom niet teruggedraaid of aangepast worden.

Iets gecompliceerder

In werkelijkheid is het verhaal wat gecompliceerder. Een bitcoin wallet bevat geen bitcoins, maar een lijst van bitcoin-adressen. Op basis van die adressen kunnen alle transacties die erop betrekking hebben verzameld worden. En daarmee weet je wallet hoeveel bitcoin je in totaal tot je beschikking hebt. Het is in feite je persoonlijke grootboek.

Het adres, een lange reeks van 34 letters en cijfers, wordt ookwel de public key genoemd. Het is niet erg dat je public key door anderen te vinden is. Iedere public key heeft een daaraan gekoppelde private key. Daarvan is het wel cruciaal dat je 'm voor jezelf houdt. Deze twee sleutels zijn aan elkaar gerelateerd, maar het is voor buitenstaanders onmogelijk om een private key af te leiden van een public key.

Dit is belangrijk, omdat iedere transactie die je start vanaf je bitcoin-adres ondertekend wordt met je private key. Nadat je een transactie hebt ingevoerd (de hoeveelheid bitcoin die je wilt versturen en naar wie), zorgt de wallet voor die ondertekening. Het programma maakt een digitale handtekening, en die handtekening wordt naar het bitcoin-netwerk verzonden ter validatie.

De transactie kan worden gevalideerd aan de hand van die handtekening en je public key. Zo kan de transactie dus worden gecontroleerd zonder de private key waarmee de handtekening is gemaakt te kennen. Na validatie is het bitcoin-netwerk er zeker van dat de te verzenden bitcoins van jou zijn, en dat ze nog niet eerder uitgegeven zijn. 

Down the rabbit hole

Je bent nog niet afgehaakt. Mooi! Nadat je transactie is gevalideerd, wordt het toegevoegd aan een block, samen met een aantal andere transacties.

Even een kort uitstapje naar wat een hash is, omwille van de volgende paragraaf. Een hash wordt geproduceerd door een zogeheten hash function. In essentie reduceert die functie de data die je invoert tot een stuk tekst met een vooraf vastgesteld aantal karakters. Die tekst, de uitvoer, noem je de hash. Die functie is zo opgezet dat de kleinste wijziging in de invoer zorgt voor een hele andere uitvoer. 
Zo zou dit hele artikel (de invoer) gereduceerd kunnen worden tot een hash van 64 karakters (de uitvoer). Als we iets aan de tekst wijzigen, zal ook de hash wijzigen. Dit is een hele effectieve manier om erachter te komen of iets gewijzigd is. Op deze manier kan een blockchain ook verifiëren dat er niet gerommeld is met een transactie.

Terug naar de blocks. Ieder block bevat een hash van de inhoud van het voorgaande block. Daarmee wordt het onderdeel van de chain - de blockchain. Als er ook maar een letter in het vorige block verandert, moet ook het huidige block herschreven worden. Of anders gezegd, als een block van inhoud verandert, zullen alle blocks die er op volgen ook herschreven moeten worden. Aangezien de blockchain van bitcoin op het moment al meer dan een half miljoen blocks bevat, kan je je voorstellen dat het vrijwel onmogelijk is om iets aan de inhoud ervan te veranderen.

Transacties en blocks bekijken

Mocht je nu graag de blockchain in werking willen zien, kan je naar binnenkomende transacties kijken op Blockchain.info. Of droom weg op BitBonkers...

Reageer

Wil je naar aanleiding van dit bericht verder praten? Heb je een vraag, een aanvulling, of had je het zelf anders geschreven? Laat het ons weten, en praat mee in onze community. Veel directer, én een stuk gezelliger dan zo'n ouderwets reactieformulier. De groep is actief, behulpzaam, en voor iedereen toegankelijk.

Blijf op de hoogte

Wil je direct nieuwe blogposts lezen? Alle nieuwe publicaties plaatsen we op Twitter. Je kunt daar ook de belangrijkste ontwikkelingen volgen.