Hoe werkt een blockchain-transactie?

We horen allemaal over Bitcoin en altcoins, die opereren op de blockchain. Voor velen klinkt dit als abracadabra. In deze post ga ik daarom in op het proces van een blockchain-transactie. Wat gebeurt er précies als ik een Bitcoin wil versturen naar een vriend.


Drie componenten

Een blockchain-transactie bestaat uit drie componenten: een verzender, een ontvanger en een hoeveelheid. De verzender en ontvanger hoeven niet per se twee verschillende mensen te zijn. Het is ook mogelijk een blockchain-transactie uit te voeren om cryptocurrency van de ene plaats naar de andere plaats te verzenden, net zoals het mogelijk is om fiat valuta van een spaarrekening naar een zichtrekening te verplaatsen.

Wallet

In tegenstelling tot een portemonnee met fiat geld bevat een crypto wallet niet daadwerkelijk cryptomunten. Een wallet bewaart de private en public keys, maar ook alle uitgevoerde transacties van en naar het wallet adres. Met het overzicht van alle uitgevoerde transacties kan een saldo (balans) opgemaakt worden om het totaal aantal cryptomunten in een wallet te berekenen.


Public en Private keys

Een public key is een openbare sleutel en het is geen probleem dat iemand anders deze weet. Voor andere mensen is het namelijk alleen mogelijk om cryptocurrency’s te sturen naar het wallet adres dat uit de public key ontstaat. Het is niet mogelijk dat andere mensen cryptocurrency’s weghalen wanneer ze in bezit van de public key zijn.


Aan een public key zit ook een private key gekoppeld. Een private key bestaat uit een reeks van 64 cijfers en letters. Zoals de benaming het al zegt, is het belangrijk om een private key niet openbaar te maken. Een private key is namelijk een soort wachtwoord dat toestemming geeft om een bepaalde hoeveelheid cryptocurrency uit een specifieke wallet naar een nieuw adres te sturen.


Wallet adress

Een crypto wallet adres is de hash-versie van de public key. Dit adres is te vergelijken met het IBAN-nummer van een bankrekening. Zodra iemand cryptocurrency’s wilt verzenden, voert diegene het wallet adres in om aan te geven waar de cryptocurrency’s naartoe moeten gaan. Dit betekent dat een wallet adres niet hetzelfde is als een public key, wat vaak wel gedacht wordt. Iedere public key is 256 bits lang. De hash die hieruit voortkomt is 160 bits lang en hoofdlettergevoelig.


IP-adres

Een blockchain-transactie bestaat uit 3 componenten: een verzender, een ontvanger en een hoeveelheid. Het is mogelijk dat de verzender en de ontvanger dezelfde personen zijn, namelijk wanneer iemand cryptocurrency’s van de ene wallet naar de andere wallet wil verplaatsen. Het is dus beter om te spreken over input (verzender) en output (ontvanger).



gif


Input and output

Een verzender en ontvanger als input en output benoemen is een vereenvoudiging van de werkelijkheid. Een input bevat namelijk alle informatie van eerdere transacties naar de verzender. Een input is dus gebaseerd op eerdere outputs. Afhankelijk van de hoeveelheid is het mogelijk dat er meerdere inputs nodig zijn.


Laat ik dit toelichten aan de hand van een goed voorbeeld:


Daan wil 2 BTC verzenden naar Lisa. > De input van deze transactie is gebaseerd op de output van eerder verzonden cryptocurrency naar Daan. In het verleden heeft Daan namelijk 1 BTC ontvangen van Floor en 1 BTC van Marijn. Om nu 2 BTC te verzenden naar Lisa zijn er twee inputs nodig: één input van de 1 BTC van Floor en één input van de 1 BTC van Marijn.


Daan wil 1 BTC verzenden naar Lisa. > Wanneer Daan niet 2 maar slechts 1 BTC naar Lisa wil verzenden is er maar één input nodig voor de transactie. Het is namelijk mogelijk om de input van de 1 BTC van Floor of de input van de 1 BTC van Marijn te gebruiken.


Naast meervoudige inputs kunnen er ook meervoudige outputs nodig zijn. Bovenstaand voorbeeld wordt dan:


Daan wil 2 BTC verzenden naar Lisa. > Daan heeft in totaal 2 BTC (1 BTC van Floor en 1 BTC van Marijn). Hij wil deze 2 BTC verzenden naar Lisa. De output van deze transactie is 2 BTC naar Lisa’s public key.


Daan wil 1 BTC verzenden naar Lisa. > Daan heeft in totaal 2 BTC en wil daarvan 1 BTC verzenden naar Lisa. Bij deze transacties horen twee outputs. De eerste output is 1 BTC naar Lisa’s public key. De tweede output is het wisselgeld (change) dat overblijft. Daan heeft 2 BTC waarvan hij 1 BTC naar Lisa stuurt. Hij heeft dus nog 1 BTC wisselgeld over dat terug naar zijn wallet gestuurd wordt. Dit is de tweede output van deze transactie.


Digitale handtekening

Een transactie uitvoeren gebeurt via een wallet in de cryptocurrency software. De software vraagt om de public key van de ontvanger en om de hoeveelheid te specifiëren. Het is dus niet nodig om zelf de inputs en outputs in te geven, de software doet dit zelf achter de schermen.

Om de transactie te bevestigen is een wachtwoord nodig: de private key van de wallet waaruit de cryptocurrency verzonden wordt. De software maakt van deze gegevens een digitale handtekening, de zogenaamde signature. Een digitale handtekening is dus gebaseerd op de private key van een bepaalde wallet, maar bevat deze niet letterlijk. Zo wordt de private key niet openbaar gemaakt en blijft deze geheim. De digitale handtekening wordt daarna naar het netwerk verzonden voor validatie.


Controle

Elke transactie wordt naar het netwerk gestuurd ter controle. Het netwerk bestaat uit nodes en miners. De miners scannen het volledige netwerk om te controleren of een persoon die een cryptocurrency wil verzenden deze ook daadwerkelijk in zijn of haar bezit heeft. De miners controleren ook of de te verzenden cryptocurrency nog niet naar iemand anders verzonden zijn, een zogenaamde dubbele uitgave.


Het netwerk controleert deze informatie aan de hand van de uitgezonden digitale handtekening en de public key. Als de digitale handtekening gemaakt is met de private key die overeenkomt met de public key, is de transactie geldig. Dankzij de digitale handtekening kan het netwerk dus transacties controleren zonder te hoeven weten wat de effectieve private key is. Nadat de transactie gevalideerd is door de miners, wordt de transactie vastgelegd in een blok. Ieder blok bevat informatie van ongeveer 500 transacties. Alle blokken samen vormen de blockchain. Iedere miner slaat een kopie op van de volledige blockchain.


Elk blok bevat ook informatie van de vastgelegde transacties van het vorig blok. Als een transactie in een vorig blok gemanipuleerd wordt, moet het huidige blok ook aangepast worden. Het aanpassen van blokken is een moeilijke opgave omdat de blockchain gewoon verder gaat. Tegen de tijd dat een vorig blok is aangepast, is er waarschijnlijk al een nieuw blok aangemaakt dat op zijn beurt ook aangepast moet worden, enzovoort. Dit betekent in essentie dat transacties bijna nooit kunnen worden gewijzigd of ongedaan gemaakt worden.


Wat zijn transactiekosten?

Een blockchain-transactie is niet gratis. Wanneer iemand cryptocurrency wil versturen, dan zullen er ook transactiekosten betaald moeten worden. Transactiekosten zijn kosten die betaald moeten worden om een transactie te laten controleren en vast te leggen in de blockchain. De transactiekosten gelden ook als beloning voor de miner die de controle uitvoert. Deze kosten gaan van enkele centen tot €100. De reden voor deze variatie is dat transactiekosten afhankelijk zijn van de grootte van de transactie en vraag en aanbod van het netwerk.


Grootte van de transactie

De grootte van de transactie hangt voornamelijk af van de hoeveelheid cryptocurrency in de transactie. Het verzenden van 10 BTC zal hoogstwaarschijnlijk meerdere inputs nodig hebben terwijl het verzenden van 1 BTC eerder mogelijk is met een enkelvoudige input. Hoe meer inputs, hoe meer ruimte de transactie inneemt in een blok. Dit betekent dat een miner in datzelfde blok een minder aantal transacties kan vastleggen en dus minder beloning krijgt. Miners zullen in de eerste plaats kiezen om kleine transacties met hoge transactiekosten te valideren om zo hun beloning van transactiekosten te maximaliseren. Door de transactiekosten van een grote transactie hoger in te stellen worden miners niet meer benadeeld als ze voor een klein aantal grote transacties kiezen in plaats van een groot aantal kleine transacties.


bybit ad

Vraag en aanbod

Bij sommige transacties duurt het langer om gevalideerd te worden. Dit omwille van de beperkte ruimte in een blok. Miners kiezen namelijk alleen de transacties uit waarvan de transactiekosten hoog genoeg zijn, omdat de transactiekosten als beloning dienen voor de miner wie de validatie uitvoert. Hoe hoger de transactiekosten, hoe meer een miner gemotiveerd wordt om die bepaalde transactie te valideren. Zo spelen de transactiekosten in op de vraag en aanbod van het netwerk. Hoe drukker het netwerk, hoe hoger de transactiekosten zullen zijn.


Verschillende wallets staan het toe om zelf de transactiekosten te bepalen. Als het niet nodig is om de transactie onmiddellijk uit te voeren, kan de gebruiker de transactiekosten lager instellen zodat de transactie later opgepikt wordt door een miner wanneer het netwerk minder druk is. Dit werkt ook omgekeerd: indien een transactie onmiddellijk uitgevoerd moet worden kan de gebruiker hogere transactiekosten ingegeven zodat miners meer gemotiveerd zijn om die transactie als eerste te valideren.

 

Disclaimer: Beleggen kent risico's. Wees je hiervan bewust en doe altijd zelf onderzoek. YoungTrader bestaat uit een informatieve website en instagrampage. Er worden blogs geschreven om lezers meer informatie te verschaffen over specifieke topics binnen de financiële markten. YoungTrader is géén financiële dienstverlener. De content bevat in geen enkel geval financieel bindende adviezen. Meer informatie? Lees de algemene voorwaarden.

13 weergaven

Recente blogposts

Alles weergeven
degiro.png
banner.png