Bitcoin Onchain Gebühren einfach berechnen
In diesem Kurzartikel zeige ich euch, wie ihr Bitcoin Onchain Gebühren, z.B für einfache Überweisung, aber auch zum Beispiel für UTXO Konsolidierung, vorher berechnen könnt. Dies ermöglich eine bessere Transaktionsplanung, und verhindert unangenehm hohe Gebühren bei der Ausführung allerlei Zahlungen und Konsoldierungen.
Die Berechnung von Bitcoin-Transaktionsgebühren, auch bekannt als "On-chain Fees", hängt von verschiedenen Faktoren ab, darunter die Größe der Transaktion in Bytes und die aktuelle Auslastung des Bitcoin-Netzwerks. Im Allgemeinen zahlen Benutzer eine höhere Gebühr, um ihre Transaktion schneller bestätigen zu lassen. Bitcoin-Transaktionen können im Legacy-Format (auch bekannt als P2PKH) oder im SegWit-Format (beispielsweise P2SH-SegWit und native SegWit oder Bech32), oder Taproot (P2TR) durchgeführt werden. SegWit- und Taproot Transaktionen sind günstiger, da sie effizienter gestaltet sind und weniger Platz im Block beanspruchen. Auf der Seite mempool.space könnt ihr gleich mal die aktuellen Gebühren abrufen, damit ihr wisst, was aktuell gezahlt werden muss.
Legacy-Transaktionen (P2PKH) berechnen
Die Größe einer Legacy-Transaktion lässt sich mit einer allgemeinen Formel schätzen:
Transaktionsgröße = 10 + (Anzahl der Inputs * 146) + (Anzahl der Outputs * 33) Bytes
- 10 Bytes sind für den Transaktionsheader.
- Jeder Input benötigt im Durchschnitt 146 Bytes.
- Jeder Output benötigt im Durchschnitt 33 Bytes.
Anschliessen können wir mit der Transaktionsgrösse die Gebühr berechnen:
Beispiel 2 Inputs (also 2UTXOs aus eurer Wallet) und 1 Output, zum Beispiel die Empfangsadresse eures Partners:
Schritte zur Berechnung der Transaktionsgröße:
- Inputs: Jeder Input in einer Legacy-Transaktion benötigt im Durchschnitt etwa 148 Bytes.
- Outputs: Ein Output benötigt im Durchschnitt etwa 34 Bytes.
- Fixe Zusatzbytes: Zusätzlich zu den Inputs und Outputs gibt es einen Basiswert von etwa 10 Bytes für die Transaktion selbst.
Berechnung Tx Grösse
- Transaktionsgröße in vbyte = (Anzahl der Inputs * 146) + (Anzahl der Outputs * 33) + 10
- Transaktionsgröße in vbyte = (2 * 146) + (1 * 33) + 10 = 335 Bytes
Gebührenberechnung
- Gebühr = Transaktionsgröße (Bytes) * Gebührensatz (Sats pro vByte)
- Gebühr = 335 Bytes * 20 Sats/Byte = 6.700 Sats
SegWit-Transaktionen (P2SH-SegWit und Bech32) berechnen
Für SegWit-Transaktionen (Segregated Witness) wird die Größe in "vbytes" (virtuelle Bytes) gemessen. Dies spiegelt die Implementierung von SegWit wider, die eine effizientere Nutzung des Blockplatzes ermöglicht, indem bestimmte Teile der Transaktionsdaten (die Witness-Daten) separiert und anders gewichtet werden. Die Berechnung der Transaktionsgröße für SegWit nutzt daher eine spezifische Formel, die diese Unterschiede berücksichtigt:
Transaktionsgrösse = (Anzahl der Inputs * 68.5) + (Anzahl der Outputs * 31) + 10
- 68.5 vbytes werden pro Input geschätzt, um die Basisdaten und die reduzierte Gewichtung der Witness-Daten zu berücksichtigen.
- 31 vbytes pro Output reflektieren die Größe der Output-Daten.
- Zusätzlich 10 vbytes werden für Basisdaten der Transaktion selbst addiert.
Diese Methode zur Berechnung der Transaktionsgröße bietet eine genauere Schätzung unter Berücksichtigung der durch SegWit eingeführten Effizienzverbesserungen. Die Nutzung von SegWit führt somit zu geringeren Transaktionsgebühren führen, besonders bei Transaktionen mit mehreren Inputs, da SegWit die Größe der Inputs effizient reduziert.
Jetzt können wir auch hier die Transaktionsgebühr berechnen:
Beispiel wieder 2 Inputs (also 2UTXOs aus eurer Wallet) und 1 Output, zum Beispiel die Empfangsadresse eures Partners und einer Gebühr von 20 Sats/vbyte:
Schritte zur Berechnung der Transaktionsgröße:
Für eine SegWit-Transaktion verwenden wir eine vereinfachte Berechnung, um die Transaktionsgröße (in vbytes) abzuschätzen, da die genaue Größe von der Witness-Data Grösse abhängt. Im Durchschnitt:
- Inputs: Ein SegWit Input ist etwas größer als ein Legacy Input, da er zusätzliche Daten enthält. Jedoch, für die Berechnung der Gebühren, wird er effizienter gewichtet. Nehmen wir an, dass jeder SegWit-Input im Durchschnitt 68 vbytes benötigt (dies berücksichtigt die gewichteten Witness-Daten).
- Outputs: Ein Output benötigt im Durchschnitt etwa 34 Bytes bzw. vbytes (für Outputs gibt es keinen Unterschied zwischen Legacy und SegWit).
- Fixe Zusatzbytes: Die Basis der Transaktion benötigt ungefähr 10 vbytes.
Berechnung Tx Grösse
- Transaktionsgröße in vbyte = (Anzahl der Inputs * 68.5) + (Anzahl der Outputs * 31) + 10
- Transaktionsgröße in vbyte = (2 * 68.5) + (1 * 31) + 10 = 178 vBytes
Gebührenberechnung
- Gebühr = Transaktionsgröße (vbytes) * Gebührensatz (Sats pro vbyte)
- Gebühr = 178 vBytes * 20 Sats/vbyte = 3.560 Sats
Taproot (PTR2) Transaktionen berechnen
Bei einer "normalen" Transaktion, die einfache Transfers ohne komplexe Skripte oder Bedingungen umfasst, ähnelt die Struktur einer Taproot-Transaktion (die Schnorr-Signaturen und den neuen Bech32m-Adresstyp verwendet) tatsächlich sehr der einer SegWit-Transaktion, insbesondere hinsichtlich der Größe, wenn man die grundlegenden Elemente betrachtet.
Ähnlichkeiten in der Größe
- SegWit (beispielsweise P2SH-SegWit und native SegWit oder Bech32) und Taproot (P2TR, mit Bech32m-Adressen) nutzen beide das Konzept der "Block Weight" und "Virtual Size" (vsize), um die Transaktionsgröße effizienter zu messen. Dies führt dazu, dass die effektive Nutzung des Blockplatzes optimiert wird.
- Sowohl bei SegWit- als auch bei Taproot-Transaktionen werden Signaturdaten vom Rest der Transaktion getrennt behandelt (Segregated Witness), was die Flexibilität erhöht und Skalierungsverbesserungen ermöglicht.
Schlussendlich wird also mit der Segwit Formel wieder die Transaktionsgrösse berechnet, und dann damit die Transaktionsgebühr.
Online Rechner
Sobald erfolgreich erste Transaktionsgebühren berechnet worden sind, darf der Online-Rechner benutzt werden! Ich habe euch hier einen einfach und simple zu bedienenden Rechner herausgesucht. Hier könnt ihr auswählen, ob Legacy oder Segwit genutzt werden soll, zudem lassen sich Anzahl Inputs und Outputs angeben:
Den Online-Rechner findet ihr hier auf dieser Seite.
Auch hier stimmt die Gebührenschätzung nicht wirklich mit dem aktuellen Gebühren überein. Nutzt also schnell https://mempool.space um die Gebühren zu sichten, und um zu wissen, in welcher Anzahl Blocks eine Bestätigung wahrscheinlich ist. Nutzt den oben markierten Regler, und schiebt in an die gewünschte Position, damit ihr im unteren markierten Bereich auf die gewünschte Transaktionsgebühr kommt.
Abschluss
Im Verlauf dieses Berichts haben wir uns eingehend mit der Berechnung von Bitcoin-Transaktionsgebühren beschäftigt, mit einem besonderen Fokus auf die Unterschiede zwischen Legacy- SegWit- und Taproot Transaktionen. Wir haben gesehen, dass die Gebührenberechnung von mehreren Faktoren abhängt, einschließlich der Transaktionsgröße in Bytes oder vbytes und der aktuellen Auslastung des Netzwerks. Insbesondere die Einführung von SegWit hat die Landschaft für Bitcoin-Transaktionen erheblich verändert, indem sie effizientere und kostengünstigere Transaktionen ermöglicht, ohne die Sicherheit oder die dezentralisierte Natur des Netzwerks zu beeinträchtigen.
Legacy-Transaktionen, die ältere Form der Bitcoin-Transaktionen, nutzen mehr Platz im Block, was zu höheren Gebühren führen kann, besonders in Zeiten hoher Netzwerkauslastung. SegWit-Transaktionen hingegen nutzen den Blockplatz effizienter durch die Trennung bestimmter Transaktionsdaten, was zu geringeren Gebühren und schnelleren Bestätigungszeiten führt.