Wie ermittle ich meine Transaktionsgebühr automatisiert?

Festus Martingal

Wenn ich Bitcoins über Electrum sende, zahle ich einfach die von der Software empfohlene Transaktionsgebühr. Jetzt schreibe ich ein Programm, das die Höhe der Transaktionsgebühr im Handumdrehen bestimmen muss.

Wie wird das berechnet? Es sieht so aus, als würde Electrum konsequent 0,0002 BTC für jede Transaktion empfehlen, aber ich habe an anderer Stelle gelesen, dass die Lösung des Gebührenbetrags von der Größe der Transaktion abhängt. Wenn ich in einem extremen Beispiel 15 winzige, nicht ausgegebene Ausgaben einlösen und an 2 Ziele (den Empfänger + meine Änderungsadresse) senden wollte, würde die ungewöhnlich große Anzahl von Eingaben für die neue Transaktion eine höhere Transaktionsgebühr rechtfertigen? Wenn ja, wie viel größer?

Klaris

Wie wird das berechnet?

Bitcoin Core bietet eine sogenannte Gebührenschätzung, bei der Sie die Höhe der Gebühr abschätzen können, die wahrscheinlich erforderlich ist, um eine Transaktion in den nächsten Block zu bringen. Es gibt die Gebühr pro Kilobyte zurück, um in einen der nächsten nBlöcke zu gelangen, vorausgesetzt, die Miner haben ähnliche Transaktionsakzeptanzregeln wie die vorherigen.

1 confirmation 0.00026816 BTC
2 confirmation 0.00011483 BTC
3 confirmation 0.00002048 BTC
4 confirmation 0.00001255 BTC
5 confirmation 0.00001255 BTC
6 confirmation 0.00001255 BTC

Dies zu emulieren, ohne einen vollständig validierenden Knoten zu betreiben, der seinen Speicherpool über einen langen Zeitraum auswerten kann, ist derzeit wahrscheinlich nicht besonders machbar. Zentralisierte Wallets wie Mycelium führen HTTP-Aufrufe an ihren eigenen Endpunkt durch, der diese Informationen in ihrem Namen zurückgibt. Angesichts der Schwierigkeit, Gebühren für nicht vollständig validierte Wallets abzuschätzen, wird es in Zukunft wahrscheinlich mehr Endpunkte dafür geben.

Würde die ungewöhnlich große Anzahl von Eingaben für die neue Transaktion eine höhere Transaktionsgebühr rechtfertigen? Wenn ja, wie viel größer?

Die Transaktionsgebühr beträgt pro Kilobyte. Das Hinzufügen zusätzlicher Eingaben erfordert, dass sowohl der öffentliche Schlüssel für die Adresse als auch eine Signatur und ein gewisser Overhead enthalten sind. Es werden oft etwa hundert Bytes pro Vin sein, aber das variiert, ob die Eingabe P2SH ist oder nicht und ob die verwendeten Schlüssel komprimiert wurden oder nicht. Im Allgemeinen, wenn die Eingabe unter 0,00005 BTC liegt, wird die Gebühr wahrscheinlich mehr kosten als der einzubeziehende Wert.

Diese Transaktion im Mainnet hat eine ähnliche Größe wie die von Ihnen beschriebene, sie hat 16 Vin, 2 Vout, für eine Gesamtgröße von 2291 Bytes. Der Schlüssel für 1FkiXxeKektpHVjvfknVvC6eQmjM9DEu9D ist komprimiert (beginnt mit 02 und ist nur 33 Bytes lang), was zur geringen Größe der Transaktion beigetragen hat.