Na jaren sparen wil je wat moois kopen van je bitcoin. Je opent je wallet, vult het aantal in dat je wil verkopen en checkt het adres. De wallet berekent direct de transactiekosten. In totaal 300 euro! Lees je dat nou goed? Je vult alles nog een keer in, maar de kosten blijven hetzelfde. Hoe kan dat nu weer? Je wist dat het bitcoinnetwerk druk was, maar dit had je niet verwacht. In deze Alpha Insight leer je hoe je dit kan voorkomen door op de goede manier je UTXO’s te beheren.

UTXO’s?!

Om dit concept uit te leggen, is het handig om een voorbeeld te gebruiken. Stel je een wereld voor zonder digitaal geld, waarin iedereen alles contant betaalt. Dit financiële systeem wordt bekostigd door iedere transactie te belasten met een toeslag van 5 cent per gebruikte munt of biljet.

Je spaart elke maand een bescheiden bedrag. In je favoriete spaar-podcast hebben de hosts het telkens over de DCA-strategie. Je besluit daarom niet elke maand 100 euro, maar elke week 25 euro te sparen. Telkens leg je een biljet van 20 euro en een biljet van 5 euro onder je matras.

Drie jaar later kondigt de overheid aan dat het systeem aan een heftige hervorming toe is. De toeslag gaat van 5 cent naar 5 euro. Je hart stokt in je keel. Vijf euro?! Hoe halen ze het in hun hoofd? Deze verandering heeft een enorme impact op je spaargeld.

Je besluit het matras op te tillen en te tellen hoeveel je hebt gespaard de afgelopen 3 jaar. Daar liggen 156 biljetten van 20 euro en 156 biljetten van 5 euro. In totaal heb je in 156 weken 3900 euro bij elkaar gespaard.

Nu je de biljetten ziet liggen wordt het probleem direct duidelijk. De toeslag die je moet betalen als je alle biljetten wil uitgeven is enorm. Je hebt in totaal 312 biljetten. Met een toeslag van 5 euro per biljet is de totale toeslag 1560 euro! Dat is bijna 40 procent van al je spaargeld!

Met weemoed denk je terug aan de tijd dat de toeslag 5 cent per biljet was. “Had ik toen maar alles omgewisseld voor grotere biljetten”. Dat had namelijk maar 15 euro gekost en had ervoor gezorgd dat je je spaargeld nu makkelijk en goedkoop kon uitgeven.

De omvang van een bitcoin-transactie

Bitcoin werkt anders dan het Account Based-model dat banken en sommige andere blockchains gebruiken, zoals ethereum. Bitcoin-transacties zijn gebaseerd op Unspent Transaction Outputs (UTXO's) en niet op een ‘centraal’ bijgehouden saldo.

Een bitcoin-transactie bestaat uit een of meerdere inputs, een of meerdere outputs, een handtekening van de bezitter van de inputs en een transactiefee. Je zou dus kunnen zeggen dat je met een bitcointransactie waarde van inputs naar outputs verplaatst.

De hoeveelheid bitcoin die je wallet laat zien is dus de som van een verzameling UTXO’s. Jij kan als eigenaar van de wallet de UTXO’s gebruiken als input voor een nieuwe transactie, omdat jij de private keys bezit om de transactie te ondertekenen.

Terug naar het voorbeeld, maar nu met bitcoin. Je koopt elke week voor 25 euro bitcoin, om die daarna direct van de exchange naar je wallet te verzenden. Dit doe je drie jaar lang, elke week (in totaal 156 weken). Je wallet zal aangeven dat je 3900 euro aan bitcoin in je wallet hebt staan.

De crux is dat deze 3900 euro bestaat uit 156 delen van 25 euro. Elk deel is een losse UTXO. Dat zit zo: op het moment dat je de bitcoin van de exchange naar je wallet liet verzenden, is er een bitcoin-transactie uitgevoerd. Eén van de outputs van die transactie is naar jou gegaan. Je raadt het al, omdat je die output nog niet uitgegeven hebt is het een unspent transaction output (UTXO).

Bij bitcoin zijn de transactiekosten afhankelijk van de omvang van je transactie. Met omvang wordt niet het aantal bitcoin dat je verstuurt bedoeld, maar de hoeveelheid data die je door het netwerk laat verwerken. Dit wordt voor een groot deel bepaald door het aantal inputs dat je gebruikt, en wordt uitgedrukt in zogeheten vbytes. Hoe groter de omvang, des te hoger de fee. Een transactie met 156 UTXO’s is dus een stuk duurder dan een transactie met 1 UTXO.

Slim beheer van je UTXO’s

Nu denk je misschien: “Mooi verhaal heren, maar ik heb nu een wallet met tientallen UTXO’s erin. Wat gaat dit me kosten? Moet ik me zorgen maken?”

Zorgen hoef je je waarschijnlijk niet te maken, maar het is wel goed om nu actie te ondernemen. Eén UTXO heeft een gewicht van ongeveer 150 vBytes. Op dit moment betaal je aan miners ongeveer 40 sats per vByte. Dat betekent dat een transactie met daarin één UTXO zo’n 6000 sats kost om te versturen. Omgerekend is dat nu bijna 1,5 dollar. Dat betekent dat elke UTXO met een waarde onder de 1,5 dollar niet te verzenden is.

In ons voorbeeld hebben we 156 UTXO’s. Stel dat we alle bitcoin in ons bezit willen versturen. Dat betekent dus dat we een transactie maken met 156 inputs. Een transactie met 156 inputs en 1 output heeft een omvang van ongeveer 23.000 vbytes. Met de huidige transactiekosten van 40 sats/vByte komen we dan uit op een totale fee van 920.000 sats of 311 euro.

Dat is bijna 8 procent van het bedrag dat we gespaard hebben. Als de transactiekosten nog verder stijgen, loopt dit bedrag logischerwijs nog verder op. Bij 100 sat/vByte zitten we al op 2,3 miljoen sats (780 euro).

Moraal van het verhaal: je wil het aantal UTXO’s minimaliseren en de waarde per UTXO maximaliseren. Hieronder bespreken we de stappen die je kan zetten om dit doel te bereiken:

  • Inschatten van het probleem. Om te beginnen moeten we erachter komen of er überhaupt een probleem is. Dat doen we door op te zoeken hoeveel UTXO’s je bezit.
  • Maak een overzicht van al je bitcoinadressen en bijbehorende UTXO’s. In Sparrow Wallet kan je direct een overzicht zien van alle UTXO’s in je bezit. In de meeste andere wallets kan je een lijst met al je bitcoinadressen exporteren.
  • UTXO’s opzoeken. Op blockchair.com kan zien hoe veel UTXO’s er op een bitcoinadres staan.
  • Transactiekosten berekenen. Met de informatie uit de vorige stappen kan je de totale transactiekosten berekenen als je alle UTXO’s wil gebruiken in een transactie. Als eerste berekenen we de omvang van de transactie. Dit getal vermenigvuldigen we met de huidige fee rate om tot de transactiekosten op dit moment te komen.
  • Consolideren van de UTXO’s. Als je er in de vorige stap achter bent gekomen dat je veel UTXO’s bezit, is het nuttig om ze te consolideren. De simpelste manier is om je complete saldo naar jezelf te verzenden. Op deze manier gebruik je UTXO’s als input in een transactie, met één nieuwe UTXO als output. Ledger en Trezor hebben deze functionaliteit ingebouwd in hun wallet. Let op: consolideren doe je op een moment (dat je denkt) dat de fees laag zijn. Periodes met fees onder de 10 sats/vByte zijn hier uitermate geschikt voor.
  • Denk na over opnames van exchanges. Let goed op als je bitcoin van exchanges haalt. Vermijd kleine transacties. Overweeg om transacties te bundelen. Liever één transactie van 100 euro, dan vier van 25. Bepaal hierbij een bedrag dat fijn voelt; je wil natuurlijk geen groot bedrag op een exchange laten staan. DCA-service Bits heeft deze functionaliteit ingebouwd.

Conclusie

Het is belangrijk om kennis te hebben van het aantal UTXO’s dat je bezit. Zo voorkom je vervelende verrassingen in de toekomst. Dit wordt helemaal belangrijk als de transactiekosten stijgen. Door je hier nu al in te verdiepen kan je als dat nodig is actie ondernemen. Het is altijd de moeite waard om het aantal UTXO’s dat je bezit te minimaliseren en de waarde per UTXO te maximaliseren.

Dit kan je doen door een transactie naar jezelf te versturen waarbij je meerdere UTXO’s als input gebruikt. Daarnaast kan je bij opnames van een exchange rekening houden met de waarde van de opname. Doe liever één grote opname in plaats van meerdere kleine.

Er zijn nog veel meer details om te bespreken. Zo kan je door gebruik te maken van een taproot-adres de fees verminderen. Het consolideren van UTXO’s heeft ook invloed op je privacy.

We snappen het dus als je nog vragen hebt over deze complexe materie. Gelukkig hebben we een prachtige Discord Community waar deze vragen gesteld kunnen worden. We hebben zelfs een live Q&A! Meld je dus snel aan om verder te praten en vragen te stellen.

Tot snel,Bart, Peter en Bert.