Waarom betalen we fees?

miner

Sinds de start van Bitcoin is geen of lage transactiekosten een van de vaak genoemde voordelen van Bitcoin ten opzichte van andere betalingssystemen. Met de tijd is hier verandering in gekomen: sommigen ondersteunen de ontwikkeling richting hogere fees en anderen vinden dat het niet bij Bitcoin hoort. In dit artikel gaan we in op de functies die fees hebben, hoe fees werken en wat de "juiste" fee is om te kiezen.

Waarom betalen we transactiefees?

Tijdens de vroege dagen van Bitcoin waren er vrijwel geen gebruikers. Hierdoor was het mogelijk om transacties waarin geen fee betaald werd te doen, zonder dat dit gebruiksproblemen opleverde. Toen het gebruik van Bitcoin steeg begonnen transacties met elkaar te concurreren en werd het betalen van een fee noodzakelijk om te zorgen dat een transactie tijdig bevestigd werd.

Anti-spam / Denial-of-Service (DoS)

Een van de functies van fees is het tegengaan van spam transacties en denial-of-service aanvallen. Door voorrang te geven aan een transactie op basis van de meegegeven fee, wordt ervoor gezorgd dat iemand met kwade bedoelingen voor het netwerk hogere fees moet betalen dan normale gebruikers om succesvol te zijn.

Om te zorgen dat fees goed werken als anti-spam bescherming, moeten deze hoog genoeg zijn om een aanval te ontmoedigen. Het is afhankelijk van de motivatie van een aanvaller hoe hoog dit precies is, maar de kosten van een aanval zouden hoger moeten zijn dan de mogelijke voordelen. Er zijn twee soorten DoS aanvallen waar fees tegen beschermen:

  1. Het aanvallen van het netwerk door grote hoeveelheden transacties naar de nodes te sturen, waardoor deze vast komen te zitten met het verwerken van alle transacties en de verwerking van normale transacties verhinderd wordt.

  2. Het aanvallen van de blockchain door het volmaken van de blocks, waardoor andere gebruikers geen gebruik meer kunnen maken van de beschikbare ruimte in een block en dus lastiger hun transacties bevestigd krijgen.

In beide gevallen maken de transacties gebruik van gelimiteerde beschikbare ruimte: 1) het beschikbare RAM bij nodes voor het bijhouden van de mempool en 2) de beschikbare capaciteit voor transacties in blocks. Door gebruikers fees te laten betalen kan een aanvaller niet oneindig doorgaan met een aanval.

{.center} mempoolgraph

Beloning voor de miners

Het Bitcoinnetwerk wordt beveiligd door proof-of-work. Dit is het proces waarbij miners rekenkracht en elektriciteit besteden in de hoop van het vinden van een block, met als beloning de bitcoins uit de block reward.

Naast de beloning uit de block reward gaan ook de fees uit transacties van de gebruikers naar de miners. Hoeveel fees dit zijn, hangt af van hoeveel het netwerk gebruikt wordt. De vraag naar de ruimte in een block maakt dat er competitie ontstaat om opgenomen te worden in een block: miners zullen de voorkeur geven aan transacties met hogere fees of transacties met te weinig fee niet opnemen in een block.

De block reward en de fees uit transacties dienen als stimulans voor de miners om eerlijk te handelen: de meest winstgevende keus voor een miner zou altijd de eerlijke keus moeten zijn.

Wanneer een block gemined wordt krijgt de miner hiervoor een basisbeloning: de block reward. Dit zijn nieuwe bitcoins die aangemaakt worden als beloning voor het werk dat de miner geleverd heeft. Toen Bitcoin in 2009 begon was deze beloning 50 bitcoins per gemined block, maar de beloning halveert elke vier jaar volgens een vast schema. Op 28 november 2012 halveerde de beloning naar 25 bitcoins en op 9 juni 2016 halveerde hij weer naar 12,5 bitcoins. Deze halvering zorgt ervoor dat uiteindelijk maximaal 21 miljoen bitcoins aangemaakt wordt (de verwachting is dat dit aantal bereikt wordt in 2140).

Doordat de block reward elke vier jaar halveert zal de beloning die de miners ontvangen uit fees steeds belangrijker worden. Wanneer er immers geen block reward meer is, zullen er fees nodig zijn om te zorgen dat de miners eerlijk blijven. Met de huidige gemiddelde fees en de blockgrootte van 1 MB zit er in elk block ongeveer 1 bitcoin aan fees in bovenop de beloning van 12,5 bitcoins. De fees maken op dit moment dus ongeveer 8% van de beloning uit.

In het verleden lag dit percentage lager en de verwachting is dat dit percentage in de toekomst zal groeien.

Er is beperkt ruimte beschikbaar in blocks

Het wordt steeds drukker op het Bitcoinnetwerk en de blocks zijn dus ook steeds vaker vol. Als gevolg hiervan ontstaat er een markt voor de hoogte van fees: er staan meer transacties in de wachtrij voor een bevestiging dan er in een block passen, dus gebruikers moeten bepalen hoeveel zij bereid zijn te betalen om te zorgen dat hun transactie opgenomen wordt in een block. Als er te veel andere gebruikers zijn die bereid zijn hogere fees te betalen, dan kan het zijn dat een transactie nooit opgenomen wordt in een block.

Fees worden berekend per byte beschikbare ruimte

We hebben al genoemd dat de ruimte in een block beperkt is, terwijl de potentiële vraag naar ruimte onbeperkt is. De meeste miners hanteren daarom een prijs per byte die een transactie in beslag neemt. Door de manier waarop Bitcointransacties in elkaar steken kan de grootte van een transactie nogal variëren. Zo hebben multisignature transacties bijvoorbeeld meer ruimte nodig dan een normale transactie en neemt een transactie met veel inputs ook meer ruimte in beslag, waardoor deze meer fee nodig heeft.

Dit laatste is soms wat verwarrend: wanneer je veel kleine betalingen naar jouw wallet hebt ontvangen, bijvoorbeeld dagelijks 0,003 bitcoin voor een klein aandeel in minen, en je deze uit wil geven dan zullen al deze kleine betalingen gecombineerd moeten worden in één grote transactie. Om bijvoorbeeld 0,5 bitcoin te versturen moeten er dan 166 kleine betalingen van 0,003 bitcoins uitgegeven worden. Voor elke betaling die in de transactie verwerkt wordt is een digitale handtekening nodig, waardoor er meer bytes nodig zijn in de transactie voor de digitale handtekeningen en de transactie dus meer fee zal kosten.

Waarom blijven de fees stijgen?

De eerste keer dat we de fees echt zagen stijgen was toen een onbekende groep mensen een "stress test" uitvoerde op het Bitcoinnetwerk. Zij leverden een constante stroom aan transacties waarvan het volume groter was dan er ruimte was in de blocks. Op dit moment had de hoeveelheid fee die je meegaf bij een transactie voor het eerst invloed op hoe snel deze bevestigd werd, daarvoor werd zo ongeveer elke transactie hoe dan ook wel gemined.

De afgelopen jaren is er een voortzettende stijging in daadwerkelijk transactievolume (geen spam of stress tests). Hierdoor hebben we nu het punt bereikt waarop de blocks regelmatig vol zijn. Het gevolg hiervan is dat het nu heel belangrijk is geworden om de "juiste" hoeveelheid fee in te stellen bij het doen van een transactie om zeker te zijn dat de transactie bevestigd zal worden door een miner.

Dit is de markt voor fees waar we het eerder over hadden: met fees bied je op de beschikbare ruimte in een block. De hoogste bieder wint en krijgt zijn transactie opgenomen in een block.

Wat is de "juiste" fee?

Voor lange tijd was de standaardfee 0,0001 bitcoin, met name omdat er in het verleden nog niet zoveel druk lag op het kiezen van de juiste fee. Daarnaast was de prijs van een bitcoin op dat moment nog veel lager, dus was het niet nodig om de fee te "optimaliseren" en de "juiste" fee te kiezen. Dit veranderde toen de blocks vol begonnen te raken en duidelijk werd dat 0,0001 bitcoin fee niet de juiste keus was.

Er zijn twee methoden die gebruikt worden om de juiste fee te kiezen:

  1. Naar de huidige transacties in de mempool kijken en aan de hand daarvan bepalen wat de juiste fee is om een transactie bevestigd te krijgen.

Dit wordt veelal gedaan door gebruikers die handmatig de juiste fee proberen te schatten. Zij kijken naar de statistieken van de transacties die op dit moment in de mempool zitten en kiezen een fee waardoor zij bij de eerste 1.000.000 bytes komen (de ruimte die beschikbaar is voor het volgende block). Dit geeft een goede kans op een snelle bevestiging.

{.center} feesbest

Het nadeel aan deze manier van kiezen van een fee is dat er na elk block een dip in de grafiek plaatsvindt. Er zijn immers even minder transacties in de wachtrij. Dit maakt het lastig om 100% van de tijd exact de juiste fee te kiezen.

  1. Naar de laatste X blocks kijken en bepalen wat de juiste fee was om opgenomen worden in een van die blocks.

Hierbij wordt er gekeken naar de transacties die opgenomen zijn in de laatste paar blocks en hoe lang die transacties gewacht hebben op een bevestiging. Dan wordt er gekeken naar de transactie met de laagste fee die nog wel een kans van meer dan 80% had om opgenomen te worden in het eerstvolgende block na het versturen van de transactie.

Zullen de fees blijven stijgen?

Over vier jaar zal de block reward weer halveren. We zullen er naartoe moeten werken dat de miners ook bij de volgende halvering genoeg gecompenseerd worden via fees om te zorgen dat zij eerlijk en goedaardig blijven handelen.

Daarnaast zal de beperkte blockgrootte en de stijgende adoptie er waarschijnlijk toe leiden dat gebruikers die bereid zijn hogere fees te betalen het duurder en moeilijker maken om Bitcoin te gebruiken voor gebruikers die dit niet willen en diensten die steunen op lage fees.

Er staan daarentegen ook een paar dingen op die horizon die waarschijnlijk een positief effect gaan hebben op fees.

  • Een verbetering van het Bitcoin protocol genaamd Segregated Witness zal hopelijk dit jaar geactiveerd worden. Activatie van Segregated Witness zal ertoe leiden dat er 50 tot 100 procent meer transacties in een block passen.

  • Een vergroting van de blockgrootte zal ook leiden tot minder druk op de markt voor fees - een dergelijke verandering aan Bitcoin staat echter nog niet gepland.

  • Het Lightning Network is een laag bovenop Bitcoin waardoor Bitcoin potentieel vele ordes van grootte kan schalen zonder het aanpassen van de blockgrootte zelf en met dezelfde vertrouwensloze veiligheid als normale transacties. Transacties gaan dan over het Lightning Network, in plaats van direct op de Bitcoin blockchain. Hierdoor worden lightning transacties goedkoper en worden niet-lightning transacties zeldzamer en duurder. Niet-lightning transacties dienen dan als settlement eens in de zoveel tijd.

Velen hopen en werken nog aan een simpele vergroting van de blocks en het is niet onwaarschijnlijk dat dit in de toekomst zal gebeuren. Een vergroting van de blocks zal in eerste instantie de druk op transactiefees verlichten, maar met de tijd wordt de limiet weer bereikt en zullen de fees weer onder druk komen te staan.

Dit artikel is eerder geplaatst op blog.btc.com - met dank aan Thomas Kerin.