Hoe werken Bitcoin transacties?

Hoe gaan Bitcoin transacties nu eigenlijk te werk? Dat is een vraag die ons heel vaak gesteld wordt, wij geven u graag tekst en uitleg in 3 verschillende stappen.

De eenvoudige versie:

Als ik graag een beetje van mijn Bitcoin naar jou zou willen sturen, maak ik mijn intentie bekend en de nodes scannen het volledige netwerk om na te gaan dat ik 1) in het bezit ben van de Bitcoin die ik wil versturen, en 2) of ik deze nog niet naar iemand anders gestuurd heb.

Eens deze informatie bevestigd is, wordt mijn transactie toegevoegd in een “block” dat aangekoppeld wordt aan het vorige “block” -vandaar de naam “blockchain”-. Transacties kunnen niet geannuleerd of gemanipuleerd worden, want dat zou betekenen dat men alle “blocks” zou moeten opnieuw doen die erna aangemaakt werden.

Een klein beetje ingewikkelder:

Mijn Bitcoin bevinden zich feitelijk niet in mijn Bitcoin wallet. Wat een Bitcoin wallet doet is het opslaan van mijn Bitcoin adres, dat nauwkeurig al mijn transacties bijhoudt, en daardoor ook mijn saldo. Dit adres –een lange rij van 34 letters en nummers- wordt ook wel “public key” genoemd.

Ik vind het helemaal niet erg dat de hele wereld deze key kan zien. Elk adres/public key heeft een bijbehorende “private key” die bestaat uit 64 letters en nummers. Dit is strikt privaat, en het is van cruciaal belang dat je dit veilig en in alle geheim houdt. De twee keys zijn met elkaar verbonden, maar er is geen enkele manier om mijn “private key” te achterhalen aan de hand van mijn “public key”.

Dit is belangrijk, want elke transactie die ik met Bitcoin maak moet ondertekend worden met mijn “private key”. Om dit te doen, voer ik mijn “private key” en de transactie informatie in (hoeveel Bitcoin ik wil zenden en naar wie) in de Bitcoin software op mijn computer of smartphone.

Aan de hand van deze informatie, geeft het programma een digitale handtekening uit, dat naar het netwerk wordt verzonden voor bevestiging.

Deze transactie kan gevalideerd worden –dat betekent, dat er kan bevestigd worden dat ik in het bezit ben van de Bitcoin die ik naar jou wil sturen, en dat ik deze nog niet naar iemand anders heb gestuurd- door de handtekening en mijn “public key” (die iedereen kent) in het Bitcoin programma in te voeren.

Dit is één van de vernuftige onderdelen van Bitcoin: als de handtekening gemaakt werd met de “private key” die correspondeert met de “public key”, wordt de transactie bevestigt door het systeem, zonder te weten wat de private key is. Zeer ingenieus.

Het netwerk bevestigt dan dat ik de Bitcoin nog niet heb verbruikt door de historie van mijn Bitcoin adres te verifiëren, wat makkelijk gedaan kan worden aangezien het mijn “public key” kent en alle transacties van Bitcoin publiek zijn.

Bitcoin transactie

 

Nog ingewikkelder:

Eens mijn transactie gevalideerd is, wordt het aan een “block” toegevoegd, samen met een hoop andere transacties.

Een korte omweg om te bespreken wat een “hash” is, omdat het belangrijk is voor de volgende paragraaf: een hash wordt geproduceerd door een “hash-functie”, dit is een complexe wiskundige vergelijking die elke hoeveelheid tekst of gegevens reduceert tot een reeks van 64 tekens. Het is niet willekeurig – elke keer dat je die bepaalde data set invoert via de hash-functie, krijg je dezelfde reeks van 64 tekens.

Maar als je al een komma verandert, krijg je een geheel andere reeks van 64 tekens. Dit hele artikel kan worden gereduceerd tot een hash en als ik niets wijzig, niets verwijder of niets toevoeg aan de tekst, kan dezelfde hash keer op keer worden geproduceerd. Dit is een zeer effectieve manier om te bepalen of iets is gewijzigd en hoe de blockchain kan bevestigen dat er niet met een transactie is geknoeid.

Nu terug naar onze “blocks”: elke block bevat, als een deel van de data, een hash van het vorige block. Dat is wat het een deel van een “ketting” maakt, vandaar de naam “blockchain”. Als er met één klein deel van het vorige block geknoeid zou zijn, moet de hash van het huidige block veranderen (onthoudt dat de kleinste verandering in de invoer van de hash functie de uitvoer veranderd).

Dus als je iets zou willen veranderen aan het vorige block, moet je ook iets veranderen (de hash) aan het huidige block, want dat is dan het block dat niet meer correct is. Dit is zeer moeilijk te doen, voornamelijk omdat tegen de tijd je halverwege bent, er hoogstwaarschijnlijk een ander block bovenop het huidige block is. Dan zou je dat block ook moeten veranderen. En zo verder.

Dit is wat Bitcoin virtueel sjoemel-vrij maakt.

 

Share.