Het bitcoinnetwerk: block propagation

Eerder bespraken we al de vooruitgang van het bitcoinnetwerk, en dan vooral de verspreiding van blocks. Maar wat houdt verspreiding van blocks, ook wel block propagation genoemd, eigenlijk in?

Om de importantie van de block propagation duidelijk te maken herhalen we nogmaals de belangrijkste punten van een goed functionerend bitcoinnetwerk:

Een van de punten die van belang is, is het doorsturen van blocks over het netwerk. Het is van belang dat dit snel gebeurt en een nieuwgevonden block zo snel mogelijk bekend wordt bij alle deelnemers in het netwerk om te voorkomen dat het netwerk niet goed of niet consistent opereert. Wanneer dit op het eerste oog simpele onderdeel van het netwerk niet goed functioneert kan het bijvoorbeeld zijn dat transacties een valse bevestiging krijgen die later ongedaan worden gemaakt. Dit zou afbreuk doen aan de betrouwbaarheid van een bevestiging; iets dat uiteraard voorkomen moet worden. Een bevestiging moet definitief zijn, over het hele netwerk.

Daarnaast zou het voor sommige miners nadelig zijn als blocks langzaam over het netwerk verstuurd worden. Het zou bijvoorbeeld kunnen zijn dat de miners die snel een block ontvangen consistent een voorsprong hebben op het vinden van het volgende block, hoewel de rekenkracht die zij hebben gelijk is aan de miners die het block pas later ontvangen. Dit maakt de 'race' naar het vinden van het volgende block oneerlijk. Consistentie over het netwerk en efficiëntie bij het doorsturen van informatie is dus van belang.

Block propagation

Het doel van block propagation is dus het zo snel mogelijk kunnen verspreiden van blocks over het netwerk, richting alle nodes. Daarnaast is het ook van belang dat de nodes zo snel mogelijk bewust worden van de nieuw gevonden blocks.

marsaarde.png


In een fictief toekomstig scenario zit 75 procent van de hashrate op Mars. De overige hashrate — 25 procent — is achtergebleven op Aarde. Door de afstand tussen Aarde en Mars duurt het versturen van blockdata een uur. In de onderstaande illustraties wordt de block propagatie weergegeven.

prop0.png


Hierin wordt per tijdvak (T) van 40 minuten aangegeven waar nieuwe blocks worden gevonden, beginnende bij het huidige groene block. De blocks worden genummerd met de blockhoogte, waardoor de volgorde van blocks bepaald kan worden.

prop1.png


Doordat er gemiddeld elke tien minuten een block zou moeten worden gevonden, kunnen de blocks drie om één verdeeld worden over Mars en Aarde. In T(2), 40 minuten na het laatste block, heeft Mars drie blocks gemined, waar Aarde er één heeft. Nu is het van belang om deze gevonden blocks door te sturen naar de rest van de nodes. Deze bevinden zich zowel op Aarde als op Mars, waardoor de propagatie ruim een uur duurt tussen de twee globes.

prop2.png


Gedurende T(3) zijn er uiteraard weer blocks gevonden. Drie extra op Mars en eentje op Aarde, die ook weer verspreid worden. Ook zijn de blocks die onderweg waren inmiddels aan de andere kant aangekomen.

prop3.png


In T(4) wordt het probleem duidelijk. Doordat de blockhoogte van het van Aarde arriverende block 1 reeds is gevonden door Mars, en deze inmiddels ook al blocks 2 en 3 heeft gemined, zal het aardse block geweigerd worden. Dit block was Mars' inziens namelijk te laat, en hierdoor niet de geldige winnaar. Bitcoin houdt altijd de langste ketting van blocks aan, gebaseerd op de blockhoogte.

prop4.png


Inmiddels zijn ook block zeven, acht en negen gevonden en richting Aarde gestuurd. Aarde zelf is inmiddels bij block drie. Door de vertraging in propagatie komen nu ook blocks vier, vijf en zes aan op Aarde. Doordat de Mars blocks een langere ketting vormen, en Bitcoin dus uitgaat van de langste ketting, zorgt het voor de invaliditeit van de ketting waar Aarde zelf mee bezig was.

prop5.png


Het is dus van belang dat de verspreiding zo snel mogelijk verloopt. Naast dat vereiste voor een goed werkend netwerk, is het ook van belang voor de eerlijke beloning van miners. In bovenstaand voorbeeld is de kans dat Aarde ooit tijdig een block vindt erg klein, en dus ook het ontvangen van de blockreward. Hierdoor krijgt aarde, ondanks een kwart van de hashrate, dus niet betaald voor het geleverde werk.

prop9.png


Selfish mining

Zoals eerder aangehaald kan het zijn dat de miners die snel een block ontvangen consistent een voorsprong hebben op het vinden van het volgende block. Miners kunnen ook bewust gebruikmaken van een verslechterde block propagatie. Dit wordt selfish mining genoemd. Hierbij houdt een miner een reeds gevonden block achter voor de anderen, zodat deze stiekem al aan het volgende block kan werken. Hierdoor creëert het dus een voorsprong voor zichzelf.

wwwtrujillo20netwerkblock.png

Belangrijke thema’s in dit artikel. Klik op een thema en ontdek meer.