De Bitcoin-mempool overspoeld met transacties
Laten we beginnen bij de mempool, en wat transacties daarin te zoeken hebben.
Het bitcoinbedrag in je wallet bestaat uit nog niet bestede stukjes bitcoin, die we UTXO's noemen (unspent transaction output). De waarde van die UTXO's bij elkaar is het beschikbare saldo.
Als je een bedrag gaat versturen, dan bouwt je wallet een transactie op, waarbij je bewijst dat jij het recht hebt om de UTXO's te besteden, bijvoorbeeld omdat je een bepaalde geheime sleutel bezit. Die transactie wordt verstuurd naar de nodes van het Bitcoin-netwerk.
Je transactie zit op dat moment in de mempool, een soort wachtruimte om opgenomen te worden in het volgende block.
Bij het versturen van je transactie geef je op hoeveel je wilt betalen voor de transactie, de transaction fee. Die geef je op in satoshi's per byte. Hoe hoger dat bedrag, hoe hoger de beloning voor de miners, en hoe interessanter het voor hen is om jouw transactie op te nemen in het volgende block.
Er zijn allerlei sites waar je kunt zien hoe lang je moet wachten bij een bepaalde transaction fee. De grafiek hieronder is van deze site.
Een volle mempool
Als veel mensen tegelijk bitcoins willen versturen, dan zullen ze hogere transactiekosten moeten betalen om hun transactie vooraan in de wachtrij te krijgen. Dat zag je bijvoorbeeld in december 2017 toen er tientallen dollars werd betaald voor een transactie.
Afgelopen vrijdag werden in korte tijd tienduizenden transacties aan het bitcoin-netwerk aangeboden. Het bijzondere van deze transacties was dat ze allemaal een exact gelijke, maar heel lage beloning hadden van 1 satoshi per byte.
Al snel werd er wild gespeculeerd. Was het een aanval op het Bitcoin-netwerk? Waren het criminelen die analyse lastig wilden maken? Was het spam?
On the mempool today. Someone is cleaning up 100 MB of bitcoin transactions in their wallet. These are all at low fee and not causing any disruptions anywhere. Business as usual, just someone somewhere doing much needed a fall cleaning, nothing to worry about. pic.twitter.com/nzNJi25emI
— Sergej Kotliar (@ziggamon) November 15, 2019
Herfstschoonmaak
Gelukkig was er geen enkel probleem. Juist omdat deze transacties een heel lage transaction fee hadden, ondervonden normale transacties geen enkele hinder. Deze goedkope transacties werden alleen opgenomen in een block als er verder geen andere, normale transactie over was in de mempool. Ze waren afkomstig van iemand die kennelijk geen haast had.
Nader onderzoek wees uit dat het Binance was die hun oude Tether-wallet opschoonde. Ze zijn inmiddels overgestapt naar het Ethereum-netwerk als drager van USDT, en nu ruimen ze de oude UTXO's op. Die hebben een waarde van 546 sats per UTXO, op dit moment zo'n $0,05 per stuk.
In elke transactie pakken ze 250 van dat soort transacties samen, en bundelen die in één nieuwe UTXO van 70.000 sats. Dat kost ze, ondanks de lage kosten, alsnog ruim 66.000 sats, bijna de helft dus. Je moet iets over hebben voor een herfstschoonmaak!
Wat moeten we met dust?
Intussen is het stof neergedwarreld, en is de mempool alweer zo'n beetje leeg. Maar het geeft ons dit weekend nog wel een interessante vraag om over na te denken. Wat moeten we in de toekomst met die transaction fees?
Er is een grens waaronder het geen zin meer heeft om een UTXO te versturen omdat de transactiekosten hoger zijn dan de waarde van de UTXO. Zo'n UTXO noemen we dust, of stof in het Nederlands.
Om te kleine UTXO's te voorkomen, accepteert het Bitcoin-netwerk geen transacties waarvan één van de outputs kleiner is dan 546 sats, de dust limit. Maar ook ruim daarboven zijn UTXO's al problematisch. De transactiekosten van een betaling van 1000 sats lopen al snel in de tientallen procenten van de betaling.
Vandaar dat Binance de moeite neemt om al die kleine UTXO's bij elkaar te vegen in een paar grotere, zodat ze weer bruikbaar zijn. Met zo'n 2400 transacties levert deze schoonmaak uiteindelijk 1,7 bitcoin op!
Dit is nu in de praktijk nog niet zo'n probleem, maar wat als Bitcoin inderdaad ooit een wereldwijd geldstelsel wordt? Als één bitcoin inderdaad een miljoen dollar waard wordt? Dan is 1 satoshi $0,01 waard, en 1000 sats dus $10.
De transactiekosten omlaag brengen kan niet, omdat de totale opbrengsten per block hoog moeten zijn om miners voldoende te belonen voor het beveiligen van het netwerk. Een oplossing zullen we vermoedelijk vinden in de lagen bovenop de basislaag.
De Bitcoin-blockchain is dan de extreem goed beveiligde settlement-laag voor grote transacties. In de lagen erboven worden snelle, goedkope, kleine betalingen gedaan. Het Lightning-netwerk is een voorbeeld van zo'n oplossing op de tweede laag. Een custodial betalingsnetwerk zoals Bakkt nu ontwikkelt zou er ook één kunnen zijn.
Gelukkig hebben we nog een paar jaar om dit probleem op te lossen: Het zal nog wel even duren tot een bitcoin een miljoen kost. Tot die tijd valt het gelukkig reuze mee met de transactiekosten
Iedereen heeft een mening
Onder de noemer Opinie
schrijven we regelmatig over een spraakmakende podcast, video of tweetstorm.
We zijn het niet noodzakelijkerwijs eens met de spreker of schrijver, maar vinden het interessant genoeg om
te delen, duiden en ondertitelen.