Skip to content
Alle optiegidsen
Bitcoin-transactiekosten10 min read

Bitcoin-transactiekosten uitgelegd: sats/vB, mempools en kosten verhogen

Lees hoe de grootte van een Bitcoin-transactie, sat/vB, vraag in de mempool, kostenramingen, RBF en CPFP de kosten en de kans op bevestiging van een on-chainbetaling beïnvloeden.

In deze gidsJe betaalt voor ruimte in een Bitcoin-blok

Korte samenvatting

De kosten van een Bitcoin-transactie worden doorgaans berekend op basis van de virtuele grootte en het tarief: kosten in satoshi = virtuele grootte in vB × satoshi per virtuele byte. Het bedrag aan BTC dat je verstuurt, bepaalt de kosten op zichzelf niet. Kostenramingen weerspiegelen veranderende netwerkomstandigheden en geven geen bevestigingstijd gegarandeerd.

Je betaalt voor ruimte in een Bitcoin-blok

Een Bitcoin-transactie geeft een of meer nog niet bestede transactieoutputs uit en maakt nieuwe outputs aan. Het verschil tussen de totale waarde van de inputs en die van de outputs is de transactiekost. De miner die het blok maakt waarin de transactie wordt opgenomen, ontvangt deze kosten. Het protocol houdt geen percentage in van het bedrag dat je verstuurt. Ook zijn deze kosten iets anders dan een servicevergoeding van je walletprovider.

Transacties concurreren om beperkte blokruimte. Bij het samenstellen van een kandidaatblok kan een miner rekening houden met de aangeboden kosten en met onderlinge afhankelijkheden tussen transacties. Als andere omstandigheden gelijk zijn, kan een hoger kostentarief een transactie aantrekkelijker maken, maar het reserveert geen vaste plek in het volgende blok. De uitkomst hangt af van de kostenmarkt, transactieafhankelijkheden, de selectie door miners en of de transactie de relevante nodes bereikt.

Deze gids gaat over on-chain Bitcoin-transacties via het Bitcoin-netwerk. Voor een opname bij een exchange kan de exchange eigen kosten rekenen; een Lightning-betaling gebruikt een ander transactiepad en een andere kostenstructuur. Een walletscherm kan meerdere kostenposten samenvoegen. Controleer daarom of een getoond bedrag de netwerkkosten, servicekosten of beide omvat. De kostengids van Bitcoin.org licht de relatie toe tussen transactiegrootte, sat/vB en de vraag naar blokruimte.

Totale kosten en kostentarief beantwoorden verschillende vragen

De totale kosten zijn het aantal satoshi dat je voor de transactie betaalt. Het kostentarief drukt die kosten uit in satoshi per virtuele byte, oftewel sat/vB. Deel de totale kosten door de virtuele grootte van de transactie om het tarief te berekenen; vermenigvuldig de virtuele grootte met het gekozen tarief om de totale kosten te ramen. Wallets laten je vaak een tarief kiezen of controleren, omdat transacties met verschillende groottes bij hetzelfde tarief een ander totaalbedrag kunnen kosten.

Stel als hypothetisch voorbeeld dat een transactie 140 vB groot is en 25 sat/vB gebruikt. De kosten zijn dan 140 × 25 = 3.500 satoshi. Omdat 1 BTC gelijk is aan 100.000.000 satoshi, is 3.500 sats gelijk aan 0,000035 BTC. Gebruikt een transactie van dezelfde grootte 40 sat/vB, dan zijn de kosten 5.600 sats, oftewel 0,000056 BTC. Deze cijfers laten alleen de berekening zien; het zijn geen actuele kostenramingen of aanbevelingen.

Een kostentarief is geen percentage van het betaalde bedrag. Twee transacties met verschillende BTC-bedragen kunnen dezelfde kosten hebben als hun virtuele grootte en tarief gelijk zijn. Een kleine betaling kan meer kosten dan een grotere betaling als er meer inputgegevens nodig zijn of een hoger tarief wordt gebruikt. Ook een wisselgeldoutput telt mee: als de inputs samen meer waard zijn dan de betaling, kan de transactie het verschil terugsturen naar de afzender. Die extra output neemt ruimte in.

De virtuele grootte geeft aan hoeveel blokruimte de transactie gebruikt

Bitcoin-wallets berekenen kosten doorgaans met de virtuele grootte, of vsize, in plaats van elke geserialiseerde byte hetzelfde te tellen. Bij SegWit krijgen transactiegegevens een gewicht. BIP 141 definieert het transactiegewicht als drie keer de basisgrootte plus de totale grootte, inclusief witnessgegevens. De virtuele grootte is het gewicht gedeeld door vier, naar boven afgerond op de eerstvolgende hele virtuele byte. De formule verwerkt het afwijkende gewicht van witnessgegevens en is dus niet hetzelfde als de ruwe bestandsgrootte.

Inputs en outputs voegen verschillende hoeveelheden gegevens toe. Een input verwijst naar een eerdere output en levert gegevens die nodig zijn om aan de bestedingsvoorwaarden daarvan te voldoen. De precieze grootte hangt af van het outputtype en de ontgrendelgegevens, waaronder handtekeningen. Een output vermeldt een waarde en een vergrendelingsscript. Daardoor kan een transactie met meerdere kleine inputs groter zijn dan een transactie met één input, ook als ze hetzelfde totaalbedrag versturen.

Het aantal inputs kan vooral van belang zijn wanneer een wallet veel kleine ontvangen outputs samenvoegt om een betaling te financieren. De transactie moet elke geselecteerde output uitgeven en elke input voegt gegevens toe. De wallet kan ook een wisselgeldoutput maken, wat extra bytes kost. Verschillende adres- en scripttypen kunnen andere groottes hebben en ook de lengte van handtekeningen kan variëren. Een getoonde grootte voor een “typische transactie” is daarom slechts een voorbeeld en geen vaste maat voor elke Bitcoin-betaling.

De raming van je wallet kan veranderen wanneer je andere coins selecteert, ontvangers toevoegt, een ander adres voor wisselgeld kiest of het kostentarief aanpast. Alleen het betaalbedrag controleren is dus niet genoeg. De samenstelling van de transactie bepaalt de vsize; het kostentarief bepaalt hoeveel satoshi per vB wordt geboden. BIP 141 definieert de berekening van de virtuele grootte, inclusief de manier waarop rekening wordt gehouden met witnessgegevens.

Mempools houden onbevestigde transacties bij, maar er is geen enkele wereldwijde wachtrij

Na verzending kan een transactie worden bewaard in de memory pool, of mempool, van nodes die haar hebben ontvangen en geaccepteerd. Een mempool is de lokale verzameling onbevestigde transacties van één node, geen enkele gesynchroniseerde wachtrij die het hele netwerk deelt. Nodes kunnen transacties in een andere volgorde zien, ander relaybeleid toepassen, verschillende capaciteitslimieten hebben of een bepaalde transactie helemaal niet ontvangen.

Miners selecteren transacties die zij kennen voor kandidaatblokken, binnen de consensusregels en hun eigen selectiebeleid. Een transactie die een output uitgeeft die is gemaakt door een andere onbevestigde transactie, is daarvan afhankelijk. In zo'n geval kan een miner de oudertransactie en een of meer afstammelingen samen beoordelen, in plaats van elke transactie afzonderlijk met een eigen tarief te bekijken. Een eenvoudig “rangnummer” op een externe website kan daarom onvolledig of tijdelijk zijn.

Als meer gebruikers om blokruimte concurreren, kunnen de tarieven die waarschijnlijk eerder worden opgenomen stijgen. Als de vraag afneemt, kunnen transacties met lagere tarieven weer concurrerender worden. De druk op de ruimte en de transacties die een wallet of node kent, kunnen snel veranderen. Dat een transactie in de mempoolweergave van één block explorer of wallet staat, bewijst niet dat alle miners en nodes dezelfde situatie zien.

Een transactie die nog niet als bevestigd wordt weergegeven, is nog steeds onbevestigd; dat label betekent op zichzelf niet dat ze kwijt of ongeldig is. Afhankelijk van nodebeleid en veranderende mempoolomstandigheden kan een transactie uit de mempool van een node verdwijnen en later opnieuw worden uitgezonden of geaccepteerd. Staat ze nog als in behandeling in je wallet, ga er dan niet van uit dat de inputs alweer beschikbaar zijn voor een andere betaling. Controleer de transactiestatus en de officiële instructies van je wallet voordat je opnieuw probeert uit te geven.

Vier lokale mempools tonen verschillende groepen onbevestigde transacties die naar beperkte blokruimte gaan
Elke node heeft een eigen mempoolweergave. Door onderlinge afhankelijkheden kunnen miners transacties samen beoordelen; de illustratie toont geen rangorde of bevestigingstijd

Een kostenraming is een richtpunt, geen garantie op bevestiging

Een wallet kan opties tonen zoals zuinig, normaal of prioritair, of een doel in blokken vermelden. Dat zijn ramingen van het tarief dat onder waargenomen omstandigheden concurrerend kan zijn. De documentatie van Bitcoin Core voor kostenramingen beschrijft een benaderend tarief dat erop is gericht de bevestiging binnen een doeltermijn te laten beginnen, als de schatter genoeg historische gegevens heeft. Bij onvoldoende recente gegevens kan een raming ontbreken. Andere wallets en diensten kunnen andere gegevens, modellen, verversingsintervallen en definities van hun doelen gebruiken.

Een doel als “volgend blok” betekent niet dat opname in het volgende blok is beloofd. De transactie kan aankomen nadat de omstandigheden voor de raming zijn veranderd, en nieuwe transacties met hogere kosten kunnen om ruimte concurreren. Afhankelijkheden tussen transacties kunnen ook invloed hebben op de selectie. Het aantal doelblokken is een invoer voor de raming, geen overeenkomst met een miner.

Controleer wanneer het kostenvoorstel is bijgewerkt en of de wallet het tarief of alleen een totaalbedrag toont. Is de transactie niet dringend, dan kun je bewust een lager tarief kiezen en wachten, maar de bevestigingstijd blijft onzeker. Is tijd belangrijk, vergelijk de raming van je wallet dan met actuele kosteninformatie en kijk welke opties de wallet biedt als omstandigheden veranderen. Voor de zekerheid de kosten verhogen kan meer kosten zonder opname in een bepaald blok te garanderen.

Een tarief van een schatter bepaalt ook niet het minimumtarief dat elke node voor relay accepteert. Relaybeleid, mempoollimieten, walletinstellingen en bevestigingsramingen beantwoorden verwante maar verschillende vragen. Het mempoolontwerpdocument van Bitcoin Core beschrijft hoe transactieafhankelijkheden de selectie en het vervangingsbeleid beïnvloeden. Beschouw de regels van één softwareversie of node niet als een blijvende netwerkbrede regel.

Met RBF kan een wallet een transactie in behandeling vervangen door een versie met hogere kosten

Replace-by-fee, of RBF, is een manier om een onbevestigde transactie te vervangen door een conflicterende transactie die hogere kosten betaalt, als de wallet en het relevante nodebeleid dit toestaan. De vervanging besteedt ten minste één van dezelfde inputs, dus de conflicterende versies kunnen niet allebei als geldige besteding van diezelfde input worden bevestigd. Een wallet kan een knop hebben om de kosten te verhogen, maar de beschikbaarheid, voorwaarden en uiteindelijke kosten hangen af van de wallet en de transactie.

Vertrouw niet op de verouderde vuistregel dat een transactie altijd op een bepaalde manier RBF moet signaleren voordat vervanging mogelijk is. Het huidige Bitcoin Core-beleid noemt full RBF sinds versie 28.0 de standaard en stelt dat signalering onder dat beleid niet meer nodig is om te vervangen. Andere nodes, wallets, diensten of oudere software kunnen zich anders gedragen. Dat de knop niet in je wallet staat, betekent niet dat elke node hetzelfde beleid hanteert; het kan ook aan de beperkingen van de wallet of de transactiestructuur liggen.

Een vervanging moet doorgaans aan meer voldoen dan alleen “één satoshi erbij”. Volgens het huidige beleid van Bitcoin Core moet zij minstens het gezamenlijke absolute bedrag aan kosten (in satoshi) van de oorspronkelijke transacties betalen, de extra relaybandbreedte voor de vervanging dekken en het fee-rate diagram van de mempool verbeteren. Gekoppelde transacties maken de berekening ingewikkelder dan alleen een hoger getal kiezen. Het huidige vervangingsbeleid beschrijft deze voorwaarden.

RBF is geen knop om een bevestigde transactie terug te draaien en maakt een bevestigde betaling niet ongedaan. Het gaat om concurrerende onbevestigde bestedingen. Een ontvanger die een onbevestigde betaling als definitief beschouwt, kan met vervangingsrisico te maken krijgen. Een onbevestigde transactie is dus niet hetzelfde als een bevestigde betaling. Volg bij een inkomende betaling het bevestigingsbeleid van de ontvangende dienst en ga er niet van uit dat de eerste zichtbare versie wordt bevestigd.

CPFP kan de prikkel verhogen om ouder en kind samen te minen

Child pays for parent, of CPFP, gebruikt een nieuwe kindtransactie die een output van een onbevestigde oudertransactie uitgeeft. Het kind kan een hoog genoeg tarief bieden om een miner te stimuleren beide transacties samen op te nemen. De gecombineerde kosten en virtuele grootte tellen mee; de kindtransactie wist de kosten van de ouder niet uit en maakt het samenvoegen niet gratis.

Een wallet moet een geschikte onbevestigde output beheren en het aanmaken van de kindtransactie ondersteunen. De relatie tussen ouder en kind, relay- en pakketbeleid en de selectie door miners zijn allemaal van belang. De gecombineerde kosten kunnen hoger zijn dan wat je voor één transactie zou hebben gekozen, en opname blijft onzeker. Maak niet handmatig een kindtransactie aan als je niet begrijpt welke output ze uitgeeft en hoe de wallet met wisselgeld omgaat.

RBF en CPFP behandelen verwante maar verschillende situaties. RBF maakt een conflicterende versie van een transactie in behandeling. CPFP voegt een afhankelijke transactie toe die het ouder-kindpakket aantrekkelijker kan maken om te minen. Een wallet ondersteunt mogelijk een van beide, allebei of geen van beide. Het mempoolontwerp en versiegebonden beleid van Bitcoin Core bepalen wat een node accepteert; het zijn mechanismen, geen beloften over bevestigingstijden.

Opnamekosten van een exchange kunnen afwijken van de Bitcoin-netwerkkosten

Een exchange kan opnamekosten vastleggen in de eigen tarieflijst. Die kunnen vast zijn, periodiek worden aangepast of weerspiegelen hoe de exchange opnamen van klanten bundelt. Het bedrag hoeft niet overeen te komen met het tarief van één afzonderlijke uitgezonden transactie. Een exchange kan meerdere opnamen in één transactie combineren, terwijl een self-custodywallet doorgaans een transactie opbouwt voor de outputs die je kiest.

Controleer vóór een opname de opnamekosten, het bedrag dat aankomt en het doelnetwerk. Leid uit de kosten van de exchange niet af wat het actuele sat/vB-tarief is. Ook als een platform een bedrag “netwerkkosten” noemt, kan het een door het platform berekend bedrag zijn in plaats van een directe raming voor jouw specifieke transactie. Bekijk de gepubliceerde tarieven en de details van het opnamevoorbeeld.

Omgekeerd kan een wallet alleen de netwerkkosten tonen en geen kosten van de aanbieder. De on-chainkosten worden betaald door de transactie die in een blok wordt opgenomen; de walletinterface houdt ze niet in als percentage van de overboeking. Vergelijk bij een opname via een exchange met een on-chainverzending vanuit een wallet het ontvangen bedrag, het gekozen netwerk en de afzonderlijke kostenregels. Gebruik vóór verzending de controlelijst voor crypto-overboekingen om netwerk en adres te controleren. Voor de andere gasstructuur van Ethereum lees je de gids voor Ethereum-gaskosten.

Controleer de transactiedetails voordat je ondertekent

Controleer vóór het bevestigen van een Bitcoin-betaling het netwerk, het adres van de ontvanger, het bedrag, de totale kosten en zo mogelijk het kostentarief. Controleer of het om een on-chain Bitcoin-transactie gaat of om een andere route. Bekijk de kostenpreview nadat je ontvangers en inputs hebt gekozen, want een wijziging in de transactie kan de virtuele grootte en daarmee de totale kosten veranderen, ook bij hetzelfde tarief.

Staat een transactie in behandeling, controleer dan vóór actie of je wallet RBF of CPFP ondersteunt en welke voorwaarden gelden. Verstuur dezelfde betaling niet opnieuw als aparte transactie zonder te begrijpen dat de oorspronkelijke nog kan worden bevestigd. Bewaar de transactie-ID en controleer de status in je wallet of een betrouwbare block explorer. Als de transactie uit één dienst verdwijnt, bewijst dat op zichzelf niet dat ze is bevestigd, geannuleerd of veilig te vervangen is.

Kies een tarief dat past bij de urgentie en de tijd die je kunt wachten, met het besef dat een tariefvoorstel geen opname in een bepaald blok belooft. Lijken de kosten ongewoon hoog, controleer dan het aantal inputs en de outputstructuur; het overgemaakte bedrag verklaart de grootte niet. Toont de wallet alleen een totaal, open dan de detailweergave of documentatie om te zien welke kostenposten zijn inbegrepen. De bedragen in dit artikel zijn hypothetische voorbeelden, geen actuele offerte.

Veelgestelde vragen

Q1Zijn Bitcoin-kosten een percentage van het bedrag dat ik verstuur?

Nee. De netwerkkosten worden doorgaans berekend op basis van de virtuele grootte van de transactie en het kostentarief. Het betaalbedrag kan verschillen terwijl de kosten gelijk blijven als vsize en tarief niet veranderen.

Q2Zijn mijn bitcoins verloren als een transactie niet is bevestigd?

Niet per se. De transactie kan nog in behandeling zijn en de mempoolweergave van een node kan veranderen. Controleer de transactie-ID en de status in je wallet; ga er niet van uit dat een transactie in behandeling is geannuleerd of veilig opnieuw kan worden verstuurd.

Q3Garandeert een hoger sat/vB-tarief opname in het volgende blok?

Nee. Een hoger tarief kan een transactie onder vergelijkbare omstandigheden concurrerender maken, maar kostenmarkten, transactieafhankelijkheden, relay en de selectie door miners veranderen. Een raming kan geen specifiek blok beloven. ---

Bronnen en verder lezen

Probleem melden

We bereiden een e-mail met de link naar dit artikel voor. Mark ontvangt je melding pas nadat je die verstuurt

Snelle check

De gids gelezen? Test jezelf met 3 vragen

Vraag 1 / 3

Vraag 01

Een hypothetische transactie is 140 vB groot en betaalt 25 sat/vB. Wat zijn de totale kosten?

Kies een antwoord om de uitleg te zien

Optiewoordenlijst