Van Bitcoin naar Blockchain

on .

Btcnext
BTC Next heeft een artikel geschreven om Bitcoin gedetailleerd uit te leggen. Velen zijn al bekend met het principe Bitcoin, het voordeel ervan en de kenmerken die het heeft. Het doel van dit artikel is om uit te leggen hoe Bitcoin nou precies werkt. Het artikel geeft een helder idee van wat het betekent om Bitcoin te bezitten, te verzenden of het te delven.



1. Wat een Bitcoin is
Bitcoin is in feite een digitaal bestand met hierin een lijst van rekeningen en geld die te vergelijken is met een boekhouding. Deze lijst/boekhouding wordt hierna ledger genoemd. Een kopie van dit digitale bestand wordt bijgehouden op iedere computer die onderdeel is van het Bitcoin-netwerk. Iedere computer in dit netwerk wordt hierna node genoemd. De Bitcoin vertegenwoordigt niet iets in de fysieke wereld. Een Bitcoin vertegenwoordigt wel echte energie en een grote verzameling ‘zeldzame getallen’, dit is net als de ‘pracht’ van goud een fysiek kenmerk dat waarde en schaarste geeft aan Bitcoin, het heeft waarde omdat mensen bereid zijn om een Bitcoin te ruilen tegen goederen of diensten. Bitcoin gebruikers willen dan met deze Bitcoin duurdere goederen of diensten aanschaffen. De personen die bereid zijn om Bitcoin te ruilen geloven erin dat anderen hetzelfde doen, wat zorgt voor marktwerking. Deze digitale bestanden (Bitcoin) hebben dus waarde omdat wij denken dat het waarde heeft, net als bij iedere andere valuta. Het vertrouwen van de mens in Bitcoin is voor een groot deel het vertrouwen in wiskundige wetmatigheid, die wetmatigheid uit zich vervolgens in een protocol waar wij vervolgens weer vertrouwen aan schenken.

Hoe een ledger eruit ziet.
Hoe een ledger eruit ziet
Dit is dus te vergelijken met een bankrekening. Hierin staan de transacties en het saldo dat het Bitcoinadres heeft. Om geld te verzenden geef je in het netwerk het bedrag aan waarmee jouw balans moet dalen en waarmee de balans van de ontvanger moet stijgen. Nodes voegen deze transactie toe aan hun ledger en geven deze transactie door aan andere nodes. Dit (met op wiskunde gebaseerde beveiliging) is eigenlijk alles wat er is: een systeem dat een groep computers een ledger (lijst met rekeningen en geld) laat onderhouden.

Het lijkt misschien op de wijze waarop een bank een bankrekening bijhoudt, er is echter een groot verschil. Bij Bitcoin wordt de ledger bijgehouden door een groep in plaats van een enkele organisatie (de bank), dit zorgt voor belangrijke verschillen. Één verschil is dat je bij een bank alleen weet welke transacties/handelingen je zelf doet, bij Bitcoin weet iedereen alle verrichtingen van elkaar. Beter gezegd, weet je welke transacties een ledger/bitcoinadres doet, in principe weet je niet wie de ‘rekeninghouder’ van de ledger is. Een ander verschil is dat je een bank kunt vertrouwen en kun je de bank aanklagen als er iets mis gaat. Bij Bitcoin heb je te maken met onbekenden, er is dus eigenlijk niemand (behalve het systeem) dat je kunt vertrouwen. Het Bitcoin systeem is dusdanig ontworpen dat er ook geen vertrouwen nodig is. Elk aspect van het systeem wordt namelijk beschermd door wiskundige functies. Dit artikel zal uitleggen hoe Bitcoin het voor een grote groep vreemden mogelijk maakt om elkaars transacties op een veilige manier te beheren.

2. Hoe een Bitcointransactie werkt
In deze paragraaf wordt aan de hand van een voorbeeld uitgelegd hoe het versturen van Bitcoin werkt. Als een verzender (Jeroen) geld/Bitcoin wil versturen naar de ontvanger (Pieterjan), stuurt hij simpelweg een bericht met de rekeningadressen en het bedrag:

‘Stuur 5,0 BTC van Jeroen naar Pieterjan’

Elke node die het bericht ontvangt zal hun ledger bijwerken en de transactieboodschap vervolgens doorzenden. Een logische vraag; hoe kunnen nodes zeker weten dat het verzoek uniek is en dat alleen de rechtmatige eigenaar het bericht heeft gestuurd? Het systeem eist een soort van wachtwoord om Bitcoins te ontsleutelen en uit te geven. Met het wachtwoord wordt er een handtekening gemaakt. Deze handtekening wordt openbaar, het wachtwoord niet. Toch is aan de aard van de handtekening te zien of het juiste wachtwoord gebruikt is. dit wachtwoord wordt een digitale handtekening genoemd Net als een echte/fysieke handtekening bewijst de digitale handtekening de authenticiteit van het bericht. Dit gebeurt door middel van een wiskundig algoritme dat kopiëren/vervalsing in de digitale wereld voorkomt. Het wachtwoord wordt de private key genoemd, deze private key is geheim.

Een digitale handtekening werkt door gebruik te maken van twee verschillende, met elkaar verbonden, sleutels:
- private key voor het creëren van de handtekening
- public key voor het controleren van de transactie door anderen


De private key kun je zien als een echt wachtwoord, de handtekening als bewijs dat je het wachtwoord hebt. Public keys zijn eigenlijk de ‘verzenden naar’ adressen: Wanneer je iemand Bitcoin stuurt, stuur je deze eigenlijk naar zijn publieke sleutel.


Om Bitcoin te besteden moet je eerst bewijzen dat jij de daadwerkelijke eigenaar van de public key bent van het account waarvan het geld wordt verzonden. Dit doe je door het genereren van een digitale handtekening uit een transactiebericht en jouw private key. Dus:
Digitale handtekening = bericht + private key

Andere nodes in het netwerk kunnen deze digitale handtekening gebruiken om te controleren of de handtekening correspondeert met jouw public key. Door de wiskunde achter de digitale handtekening wordt deze gebruikt om te controleren of de zender de eigenaar van de private key is zonder deze private key te zien.

Belangrijk is het gegeven dat de handtekening afhangt van het bericht, dus de handtekening zal voor iedere transactie anders zijn. Hierdoor kan het niet hergebruikt worden door anderen voor een andere transactie. Deze afhankelijkheid van het bericht betekent ook dat niemand het bericht kan wijzigen wanneer het bericht door het Bitcoin netwerk gaat. Elke verandering in het bericht zal de handtekening namelijk ongeldig maken. De wiskunde (ECDSA) hierachter is erg complex. Om een beeld te krijgen van hoe dit werkt een voorbeeld:

Een bijdehante vwo-scholier zou nu zeggen: dus Digitale handtekening – bericht = private key. Dit is echter niet geval. Het bericht en de private key worden samengevoegd in een process dat te vergelijken is met het mengen van verf: rood met Blauw geeft paars, maar na het mengen lukt het niet meer om de vert te scheiden in de vorm paars – rood = blauw. Op deze manier blijft de private key ook geheim na het vermengen van het bericht en de key.

3. Bitcoin transacties en de ledger
Tot zover weten we dat digitale handtekeningen worden gebruikt om de transactie toe te staan. Er is echter te eenvoudig uitgelegd hoe de nodes de saldi van de rekeningen (lees: Bitcoin adressen) bijhouden. In feite worden er namelijk helemaal geen gegevens over de adressaldo’s bijgehouden. Dit levert uiteraard de vraag op; als je niet bijhoudt hoeveel Bitcoin iemand die een transactie wil verzenden heeft, hoe weet je dan of diegene genoeg Bitcoins heeft om over te maken naar iemand anders? Dit komt door het volgende: in plaats van het gebruiken van saldo’s, wordt er aan de hand van links/referenties bepaald of de zender het aantal Bitcoins die hij wil verzenden ook daadwerkelijk heeft. In deze paragraaf wordt uitgelegd hoe dit werkt.

Om 5,00 BTC over te maken naar Pieterjan, moet Jeroen door middel van referenties naar vorige transacties laten zien dat hij vijf of meer Bitcoins heeft ontvangen. Deze refererende transacties worden ‘inputs’ genoemd. Andere controlerende nodes zullen deze inputs controleren om er zeker van te zijn dat Jeroen de ontvanger van de transactie was en dat hij vijf of meer Bitcoins heeft. Laten we kijken hoe een echte transactie er in de praktijk uitziet:

Deze transactie refereert naar zes inputs met een totaal van 30.044557717 Bitcoins. In het output gedeelte staan twee regels. De eerste regel gaat eigenlijk terug naar de zender als wisselgeld voor de transactie. Een vereenvoudiging van de regel bepaalt dat elke input volledig moet worden gebruikt in een transactie. Als je dus probeert om een bedrag te versturen dat niet exact overeenkomt met de input, zal je moeten zorgen dat je het resterende bedrag naar je eigen adres terugstort.

De refererende input zorgt ervoor dat het eigendom van Bitcoin wordt doorgegeven in een soort van keten. De geldigheid van iedere transactie is hierbij afhankelijk van vorige transacties. Dit levert de vraag op; hoe kun je vertrouwen op vorige transacties? Dat kan niet, dus zal je ook de inputs van deze vorige transacties moeten controleren. Wanneer je de Bitcoin QT wallet software installeert, download je in feite iedere transactie die ooit is gemaakt. Bij het downloaden wordt iedere transactie in de ledger geverifieerd door middel van de signatuur. Je hebt te maken met vreemden, dus is de controle bij deze download belangrijk. Deze download duurt wellicht langer dan 24 uur, maar is slechts eenmalig nodig.

Als een transactie eenmaal heeft plaatsgevonden, is het uitgegeven en kan deze transactie dus niet nogmaals plaatsvinden. Dit zorgt ervoor dat de input niet dubbel uitgegeven kan worden voor meerdere transacties. Bij de controle van de transactie wordt er naast het saldo ook de inputs gecontroleerd. Deze controle wordt ook uitgevoerd door nodes. Kortom: vóór iedere input controleren de nodes of de input niet al eerder is gebruikt. Dit lijkt tijdrovend te zijn, maar dit proces wordt versneld door een index van niet-bestede transacties.

In plaats van een saldo, maken Bitcoin nodes gebruik van een enorme lijst van transacties. Het bezitten van Bitcoin houdt dus in dat er transacties zijn die verwijzen naar jouw adres. Om te bepalen hoeveel Bitcoin je bezit dien je dus alle transacties te achterhalen en vervolgens het aantal ongebruikte inputs bij elkaar op te tellen.

Voor het maken van transacties maakt het systeem gebruik van hashing. Voor het ontvangen van een transactie dient deze in feite te worden ontsleutelt. Ter verduidelijking: het lijkt op het plaatsen van geld in een publieke kluis die geopend kan worden door het oplossen van een wiskundige puzzel. Er wordt hierbij gebruik gemaakt van codetaal. Slechts één persoon kan de puzzel oplossen met behulp van public key. De meeste wallet software verbergen de tekstregel voor je. Je bent vrij om je software te schrijven en je eigen voorwaarden te creëren, dit kan echter risicovol zijn. Er zijn wel eens meer dan 2500 BTC verloren gegaan in transacties als gevolg van een misvormd adres.

Deze punten zijn een belangrijk onderdeel van Bitcoin. Doordat er geen bank of creditcardmaatschappij bij betrokken is, kan elke gebruikersfout leiden tot permanent verlies van je Bitcoin Dit geldt niet alleen voor je eigen Bitcoin, dit geldt voor de gehele Bitcoinwereld. Als je jouw private key verliest zullen alle bedragen die in verband staan met de public key voorgoed verloren gaan. Er gaan veel private keys verloren door bijvoorbeeld een gecrashte harde schijf of onvoldoende back-ups. Deflatie is het gevolg van het limiet van Bitcoin. het verlies van Bitcoin is een versterkende factor voor de deflatie. Voor de Bitcoin koers betekent dit dat verlies een versterkende factor is voor de deflatie ervan.

4. De anonimiteit van Bitcoin
In deze paragraaf wordt de anonimiteit van de Bitcoin besproken. De anonimiteit wordt gezien als één van de grote voordelen van Bitcoin, het protocol is echter niet geheel anoniem. Wanneer je als klant bijvoorbeeld een pizza bij Thuisbezorgd.nl bested en deze betaald met jouw Bitcoinadres, is jouw adres in principe te herleiden. Zo zijn er meerdere voorbeelden. Hierdoor is het Bitcoinprotocol niet geheel anoniem. Vroeg of laat zullen gebruikers Bitcoin uitgeven, wanneer het wordt omgewisseld voor euro, kan de bank zien dat er een bepaald bedrag op je rekening wordt gestort. Het aanmaken van een Bitcoinadres kan geheel anoniem, bijvoorbeeld via de QT wallet software. Het genereren van een private/public key kan heel gemakkelijk via de QT wallet software en is een kwestie van één klik. Er zijn zo veel adressen mogelijk dat er geen reden is om te controleren of een andere gebruiker wellicht hetzelfde adres heeft. Het totaal aantal nummers van een mogelijk Bitcoin adres:
1461501637330902918203684832716283019655932542976 (1.46 x 10^48 of 2^160)

5. Het dubbel uitgeven van Bitcoin
Door de controle van de digitale handtekening weten we dat alleen de echte eigenaar een transactiebericht kan hebben aangemaakt. Om er zeker van te zijn dat de zender ook daadwerkelijk de Bitcoins heeft, wordt ook de input van de zender gecontroleerd. Dit zorgt ook voor de controle of de input nog niet is uitgegeven. Er is echter nog een element wat nog niet is behandeld; de volgorde van transacties. Gezien het feit dat de transacties van node naar node gaan, is er geen garantie dat de volgorde waarin de Bitcoins worden ontvangen ook de volgorde aangeeft waarin deze zijn gemaakt.

De tijdsaanduiding is hierbij geen juist controlemiddel, men kan namelijk liegen over de tijd dat een transactie is gemaakt. Als er geen controle is over de volgorde waarin transacties hebben plaatsgevonden, is er kans op fraude. Stel dat Jeroen kwaadwillend is. Hij zou een transactie kunnen verzenden naar Pieterjan, om vervolgens een transactie te versturen naar zichzelf met dezelfde input. Sommige nodes in het netwerk zullen de tweede transactie eerder ontvangen dan de transactie naar Pieterjan, zoals de afbeelding hieronder laat zien.


Wanneer Pieterjan zijn transactie dus aankomt, wordt deze als ongeldig beschouwd omdat de input al gebruikt is. Pieterjan zou dus zowel zijn Bitcoin kwijt zijn als zijn verzonden product. In het netwerk zal onduidelijk zijn of Jeroen of Pieterjan nu de Bitcoin in bezit heeft, er is namelijk geen enkele manier om te bewijzen welke transactie er eerder was. Om het systeem betrouwbaar te maken moet er dus een manier worden gevonden om het hele netwerk te laten overeenstemmen over de volgorde van transacties. Dit is een enorme uitdaging voor een gedecentraliseerd systeem. De oplossing van Bitcoin is om de volgorde van de transactie te bepalen aan de hand van een wiskundige race.

6. Hoe de transacties in de juiste volgorde worden gezet
Het Bitcoinsysteem sorteert/rangschikt transacties door deze te plaatsen in groepen, die blocks worden genoemd. Het block bevat een hash van het vorige block, de transacties en daarnaast zijn eigen hash. Deze blocks zijn met elkaar verbonden middels de zogeheten blockchain. Deze blockchain wordt gebruikt om transacties in volgorde te zetten/te rangschikken. Ieder block refereert naar het vorige block wat er voor zorgt dat de blocks in de juiste tijdsvolgorde worden gezet. Het is mogelijk om te refereren tot aan de eerste groep transacties die er ooit zijn gemaakt. Transacties die op hetzelfde moment plaatsvinden worden in hetzelfde block geplaatst. Transacties die nog niet in een block zijn geplaatst, worden in een onbevestigde (unconfirmed) block geplaatst. Dit is een block waarin alle onbevestigde transacties komen te staan.

Iedere node in het netwerk kan een aantal onbevestigde transacties verzamelen in een block. Een node zal wel eerder transacties kiezen waar hij een transactiefee voor ontvangt. Deze verzameling kan de node vervolgens verzenden aan de andere nodes als ‘suggestie’ voor wat het volgende block in de chain moet zijn. Er worden meerdere blocks tegelijk gecreëerd, het netwerk moet dus beslissen in welke volgorde deze blocks worden gezet. Dit kan, zoals uitgelegd, niet op basis van het tijdstip van het ontstaan. Hiervoor dient er dus een (eerlijke) oplossing worden bedacht.

Een deel van de oplossing is dat ieder geldig block het antwoord moet zijn op een wiskundig probleem. Dit antwoord ontstaat uit de complete tekst in het block plus een random gok. Deze gok en de tekst van het block vormen samen een hash. Wanneer de eerste gok niet leidt tot de gewenste waarde van de hash, creëert de computer een nieuwe gok en dus ontstaat er een nieuwe hash. Dit proces wordt herhaald totdat de hash onder een bepaalde waarde komt.

De functie van een hash is om een korte samenvatting te maken van een willekeurige tekst. In dit geval vat de hash de tekst in het block samen in een 32-cijferig getal. Een voorbeeld van een veelvoorkomende hash-functie die wordt gebruikt is de SHA256 en de samenvatting die deze hash-functie van een tekst maakt.

SHA256(“bitcoin”)
6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b
SHA256("bitcoin is het nieuwe geld")
7c25823163f9577880f3bd78eaf44a9faa40592c3108aa2870493787c068ad2b
SHA256("bitcoin is het nieuwe geld.") (alleen een extra punt aan het eind)
51cf8b1abb1abc592a3bba749326b62a2da70d82e90dc2ce34b9dc64408ed285

Het valt op dat de hash in zijn geheel verandert terwijl er slechts één punt wordt toegevoegd aan de zin. De hash is dus volledig onvoorspelbaar. De enige manier om ervoor te zorgen dat de hash onder een bepaalde waarde komt is door simpelweg te gokken. Het gokken van de waarde voor deze input kun je vergelijken met het gokken van een kluiscode: er is een kans dat je direct goed gokt, maar die kans is minimaal. Gemiddeld zal het lang duren voordat de gok ook daadwerkelijk leidt tot een bepaalde hash die onder de bepaalde waarde komt. Met alle computers in het Bitcoin netwerk duurt het gemiddeld tien minuten om een block op te lossen. Degene die als eerst de oplossing/de waarde heeft gevonden, verzendt het block met hierin de transacties en deze worden als eerst opgenomen in de blockchain.

Het is onwaarschijnlijk dat twee personen dezelfde waarde op hetzelfde moment vinden. Dit komt doordat het vinden van de juiste waarde moeilijker wordt naarmate er meer gezocht wordt. Soms komt het echter voor dat meer dan één block op het juiste moment wordt ‘opgelost’, dit leidt dan tot verschillende vertakkingen, zoals in onderstaande afbeelding is te zien. Als dit het geval is, wordt het block gebouwd op het eerste block dat er wordt ontvangen. Door het netwerk kan het zijn dat sommige nodes andere blocks eerst ontvangen, en zullen dus de volgende block plaatsen op het block die zij als eerst hebben ontvangen. Uiteindelijk wordt er voortgebouwd op de langste keten waardoor iedereen het eens is over de volgorde van de blocks en de blockchain weer stabiel is.

Er worden tegelijk blocks opgelost.


Er is sprake van een verschillende volgorde van binnenkomst.


Er wordt gekozen voor de langste keten.


Wanneer een transactie dus in een block zit die uiteindelijk niet gekozen wordt, bijvoorbeeld in de groene block, zal de transactie weer terug worden gezet bij de onbevestigde transacties. Helaas zorgt dit weer voor mogelijkheden om Bitcoins dubbel uit te geven, waarvoor eigenlijk dit rangschikkingsysteem is bedacht.

7. Het dubbel uitgeven van Bitcoin in de blockchain
Stel dat Jeroen een fraudeur is, en dus zowel Bitcoin naar Pieterjan als naar zichzelf wil overmaken. Wanneer de blocks met hierin de beide transacties tegelijk worden opgelost, bestaat er dus een kans dat het block met hierin de transactie naar Pieterjan afvalt. Dit terwijl het block met hierin zijn transactie al 1 verificatie heeft staat aangegeven. Hoe meer verificaties, hoe zekerder je kan zijn over de geldigheid van de transactie. Conventie zegt dat 6 verificaties ‘zeker genoeg’ is, maar in principe is een transactie voor een gebruiker pas geverifieerd als hij zelf de rekenmachine erbij gepakt heeft. Wanneer de transactie van Jeroen naar zichzelf in een langere tak komt, zal deze transactie doorgang vinden. Pieterjan zijn transactie zal weer terug worden gezet naar onbevestigde transacties. Deze transactie zal nooit meer in de blockchain worden opgenomen omdat de nodes de transactie als ongeldig zal beschouwen. Dit komt doordat de input al is gebruikt bij de transactie van Jeroen naar zichzelf.

Er moet dus worden voorkomen dat Jeroen Pieterjan fraudeert. Het is logisch te denken dat Jeroen de blockchain vooraf kan berekenen om de transactie precies op hetzelfde moment het netwerk in te sturen. Dit wordt echter voorkomen door de wiskundige puzzel die in elk blok zit. Om dit beter uit te leggen zullen we ons moeten verdiepen in de cryptografische hash die in de vorige paragraaf is besproken. Bij het oplossen van een block gaat het om het gokken van de cryptografische hash tot deze zich onder een bepaalde waarde bevindt. Door continu een nieuwe gok te plaatsen, zal er uiteindelijk een hash onder een bepaalde waarde ontstaan.

Als het block eenmaal is opgelost, is de juiste hashwaarde dus gevonden. De hash-output geldt dan als unieke vingerafdruk voor dat block. Als er ook maar een minimale wijziging in de tekst van het block plaatsvindt, zal dit leiden tot een geheel andere hashwaarde. Zie de voorbeelden van diverse hashes.

Deze hash-output is eigenlijk wat er gebruikt wordt om te refereren naar het vorige block. Dit heeft als gevolg dat er geen enkele manier is om een block midden in de keten uit te schakelen, de blocks moeten namelijk aan elkaar blijven refereren. Zoals eerder gezegd bevat een block naast de transacties ook twee hashes: de eigen hash en de naar het vorige block refererende hash. Belangrijk hierbij is dat een block niet opgelost kan worden voordat er een andere block is opgelost. Het nieuwe block moet namelijk de hash van het vorige block bevatten.

Om terug te keren naar het voorbeeld van Jeroen: dit is de reden dat hij geen vertakking voor kan programmeren. Hij kan alleen een block oplossen als het block waar ze een nieuwe block op wil bouwen opgelost is EN als de hashwaarde hiervan bekend is. Hiervoor is hij in een race verwikkeld met de rest van het netwerk. Als Pieterjan er dus achter komt dat Jeroen opnieuw deze transactie probeert te doen, zal hij zijn producten niet verzenden.

De laatste belangrijke vraag op het gebied van fraude is: wat als Jeroen een hele snelle computer heeft, of misschien een heel huis vol heeft staan met computers? Maakt hij dan niet constant meer kans de race te winnen? Het antwoord is: nee. Dit komt door het feit dat Jeroen niet tegen één computer racet, maar tegen alle computers uit het netwerk. Dit principe kun je vergelijken met een loterij. Jeroen kan duizend computers hebben (of duizend loten), de kans dat iemand anders de race wint, is veel groter dan dat Jeroen wint. Hij zal 50% van alle computerrekenkracht moeten hebben om ook 50% kans te hebben om als eerste de race te winnen. De kans dat hij meerdere blocks op een rij als eerste oplost, is logischerwijs nog vele malen kleiner.

De transacties in een blockchain worden dus in volgorde geplaatst op basis van de uitkomst van een wiskundige race. Deze race zet de ‘aanvaller’ (Jeroen) tegenover de rest van het netwerk. Het gevolg van het ‘boven op elkaar zetten’ van opgeloste blocks is dat transacties in de keten veiliger zullen zijn. De aanvaller moet voor langere tijd het gehele systeem aftroeven om kans te maken dat een dubbele transactie lukt. Het systeem is dus alleen aan het eind van de keten zeer minimaal kwetsbaar. Hierdoor wordt het aangeraden om te wachten met de volgende acties totdat er enkele blocks aan de keten zijn toegevoegd.

Wellicht valt het op dat het woord ‘vertrouwen’ niet/nauwelijks in dit artikel voorkomt. Dit komt doordat het gehele netwerk bestaat uit volkomen vreemden van elkaar. Dit is niet nodig, je kunt immers zelf ontvangen informatie van andere nodes controleren door te kijken of de blockoplossing klopt. Daarnaast is zojuist uitgelegd dat het vrijwel onmogelijk is om te frauderen, en als dit eenmaal zal lukken, dit zeer waarschijnlijk de tweede en derde keer niet lukt.

8. Hoe het delven van Bitcoin werkt
Er is al uitgelegd hoe bitcointransacties door middel van digitale handtekeningen en transactieketens plaatsvinden. Daarnaast is uitgelegd hoe de volgorde van deze transacties worden beschermd in de blockchain. Nu rest de vraag: waar komen Bitcoins vandaan? Wanneer je Bitcoin wilt verzenden, moet je refereren naar een eerdere transactie waarin je de ontvanger was, maar hoe komen de Bitcoin überhaupt in eigendom van een keten?

Om op een langzame en willekeurige manier Bitcoin te genereren en te verzenden, krijgen nodes een ‘bonus’ voor het oplossen van een block. Dit is waarom het oplossen van blocks ‘delven’ heet, terwijl het echte doel hiervan is om transacties te controleren en te bevestigen in de blockchain. Om de vier jaar worden de bonussen voor het oplossen van een block gehalveerd, dus uiteindelijk zullen er geen nieuwe Bitcoins meer gemaakt worden. In totaal zal er ongeveer 21 miljoen Bitcoin worden gegenereerd. De laatste Bitcoin zal naar verwachting in 2140 worden gevonden. Houdt in gedachte dat een Bitcoin is te verkleinen tot 1/100 miljoenste deel (0.000000001. Hierdoor zal het geringe aantal (21 miljoen) hele Bitcoin niet leiden tot beperkte bruikbaarheid van de valuta.

Naast de blockbeloning krijgen de zogeheten delvers een transactiefee, een beloning voor het toevoegen van de transactie in het block. Zonder deze transactiefee zouden delvers uiteindelijk geen beloning meer ontvangen en zullen zij dus niet worden aangezet tot het voltooien van transacties. De transactiefee kan optioneel worden toegevoegd bij transacties. Op dit moment zullen miners in mindere mate/geen fee rekenen omdat zij al een beloning krijgen door het delven. In de toekomst zullen de transacties die een miner kiest waarschijnlijk afhangen van de fee die eraan vast zit. De transacties zonder fee zullen dan waarschijnlijk als niet interessant beschouwd worden. Het verzenden van Bitcoins zal waarschijnlijk niet gratis worden, maar waarschijnlijk zijn deze transactiekosten een stuk goedkoper dan de huidige creditcardkosten. Dit kan niet als feit worden aangenomen. Transactiekosten (fees) kennen een minimumbedrag, dit is ook het geval bij creditcardkosten. Er kan niet feitelijk worden uitgegaan van het feit dat de transactiekosten van Bitcoin lag zullen blijven. Een van de grootste beperkingen van het Bitcoin netwerk is de maximumgrote van een block. Hierdoor kunnen de transactiekosten in de toekomst oplopen. 

9. Het gezamenlijk delven van Bitcoin
Zoals eerder gezegd duurt het gemiddeld een paar jaar voor een normale computer om een block op te lossen en dat het voor het gehele netwerk tien minuten duurt om één block op te lossen. Om een meer constante bron van inkomsten uit het oplossen van blocks te krijgen, besluiten veel miners samen te gaan werken. Dit resulteert in zogeheten mining pools. In deze mining pools worden naarmate verrichtte werkzaamheden de beloningen verdeeld. Dit werkt in principe hetzelfde als een groep collega’s die gezamenlijk meedoen met de loterij. Het grote verschil is dat sommige van deze pools vrij groot zijn en bijvoorbeeld 20% van de totale computerrekenkracht bevatten.

Het feit dat sommige van deze mining pools zo groot zijn, heeft invloed op de beveiliging. Zoals eerder vermeld is het zeer onwaarschijnlijk dat een aanvaller meerdere blocks in een rij sneller oplost dan de rest van het netwerk. Door deze mining pools neemt de waarschijnlijkheid toe als de rekenkracht ook toeneemt. Het is zelfs voorgekomen dat een mining pool, BTC Guild, zes blocks op een rij heeft opgelost.

Wellicht dat de vraag leeft waarom er is gekozen voor het tijdsbestek van tien minuten voor het oplossen van een block. De keuze is deels willekeurig. Extreem korte tijden voor het oplossen zal leiden tot instabiliteit. Daarentegen zorgen lange tijden voor vertragingen van bevestigingen. Er komen steeds meer computers (lees: rekenkracht) in het netwerk, dit zal in principe betekenen dat de oplostijd kleiner wordt. Om dit te compenseren past het systeem zich iedere twee weken aan om de tien minuten te handhaven.

10. De conclusie
Bitcoin is een wiskundig beschermd digitale valuta die wordt onderhouden door een netwerk van nodes/computers die gelijk zijn aan elkaar. Digitale handtekeningen geven toestemming voor het maken van individuele transacties. Het eigendom wordt doorgegeven door de transactieketen. De volgorde hiervan wordt bepaald/beschermd door de blockchain. Door de verplichting voor ieder block om een wiskundig probleem op te lossen, worden potentiële aanvallers opgezet tegen de rest van het netwerk. Dit voorkomt fraude.

© BTC Next – op dit artikel zijn auteursrechten van toepassing

Bronnen:
https://bitcointalk.org/index.php?topic-130222.60
https://www.btcnext.nl/#knowledge
www.impoderablethings.com/2013/07/how-bitcoin-works-under-hood.html
http://blockexlorer.com

Gepost door Leon Horenberg | BTC Next

*Dit artikel is met aandacht geschreven en door Bitcoinkenners gecontroleerd. Desondanks kan het voorkomen dat er (ver)taal/feitelijke onjuistheden te vinden zijn.

Comments   

# Guest 2013-12-16 14:03
Complimenten voor dit artikel. Erg verhelderend hoe het process werkt.

Ik lees overal dat een Bitcoin 'op te delen is' in 1/100 miljoenste delen. Waar komt dit getal vandaan?
Reply | Reply with quote | Quote
# Guest 2013-12-15 11:41
Zeer goed artikel.

Ik denk alleen dat de complexiteit vooral benadrukt dat er in het bitcoin-protoco l veel behoefte zal zijn aan toepassingen. De bitcoin-node & currency(/ies) zijn prachtige eerste stappen, maar niet erg toegankelijk voor de doorsnee-gebrui ker.

Er zal veel behoefte zijn aan (en ontwikkeling moeten komen voor) hetzelfde dat browsers, zoekmachines, mail, blogs/sites, bittorrent, virusscanners/a ntispyware, enz. voor HTTP/internet hebben betekend.
Reply | Reply with quote | Quote
# Guest 2013-12-15 10:07
Als ik mij beperk tot aanschaf van bitcoins en verkoop ervan teneinde een koerswinst te realiseren en dus nadrukkelijk geen goederen en/of diensten wens aan te kopen, is dat dan toegestaan, cq mogelijk?
Reply | Reply with quote | Quote
# Roland (webmaster@bitcoinspot.nl) 2013-12-15 14:44
Dat is mogelijk, tot nu toe is er niemand geweest die heeft gezegd dat je niet bitcoins mag kopen/verkopen of uitgeven/accept eren.
Reply | Reply with quote | Quote
# Guest 2013-12-15 01:30
"De Bitcoin vertegenwoordig t niet iets in de fysieke wereld. Een Bitcoin vertegenwoordig t wel echte energie en een grote verzameling ‘zeldzame getallen’, dit is net als de ‘pracht’ van goud een fysiek kenmerk dat waarde en schaarste geeft aan Bitcoin, het heeft waarde omdat mensen bereid zijn om een Bitcoin te ruilen tegen goederen of diensten."

dit zeg je goed.

"Bitcoin gebruikers willen dan met deze Bitcoin duurdere goederen of diensten aanschaffen."

En hier ga je de mist in.

Waarom duurdere? Dat wil ik ook met mijn euro niet.
dat het een feite is a la, maar geen dwingende noodzaak.
Reply | Reply with quote | Quote
# Guest 2013-12-15 00:32
Worden mijn euro's gedekt door goud? Welneeee joh!
Reply | Reply with quote | Quote
# Guest 2013-12-14 19:52
Erg goed (vooral de combinatie van toegankelijkhei d en technisch detail) en nuttig artikel.
Reply | Reply with quote | Quote
# Guest 2013-12-14 14:43
Fysieke valuta wordt gedekt door goud. Wat naar mijn mening erg achterhaald en ouderwets is. De wereld is toe aan digitale valuta. Het klopt dat de Bitcoin niks achter zich heeft staan maar ik geloof dat dat wel zal komen.
Compliment voor je artikel!
Reply | Reply with quote | Quote
# Roland (webmaster@bitcoinspot.nl) 2013-12-15 14:45
Elke valuta heeft enkel vertrouwen achter zich staan. Wat staat er dan achter de euro? de regering en wat is het enige wat de regering kan doen in het geval van problemen? juist geld bijdrukken. Alles draait om vertrouwen.
Reply | Reply with quote | Quote
# Guest 2013-12-15 18:07
Geen enkele valuta wordt nog gedekt door goud; het wordt slechts gedekt door vertrouwen. Niet genoeg geld? Bijdrukken (VS en GB) of bijlenen (Eurozone), totdat het vertrouwen bij het publiek klapt.
Loskoppeling dollar en goud in 1971 door Nixon was het begin van het einde.
Reply | Reply with quote | Quote

Add comment


Security code
Refresh