Wallet-Design: Was tun mit Staubmengen im Kleingeld?

Ich arbeite an einigen Macken einer Brieftasche, die ich entwickle, und eines der Probleme ist, was mit Wechselgeldbeträgen zu tun ist, die größer sind als ~600 Satoshis, aber weniger als ein praktischer Betrag, der gegen eine Gebühr erneut gesendet werden muss. Soll ich den Near-Dust-Betrag als Wechselgeld zurückgeben oder einfach als zusätzliche Mining-Gebühren anhängen?

Nehmen wir zum Beispiel an, ein Benutzer gibt einen Betrag aus, der nach Zahlung an einen Ausgang und einer ausreichenden Gebühr nur 1.000 Satoshis als Wechselgeld übrig lässt. Soll ich diese 1.000 Satoshis als Wechselgeld schicken, obwohl 1.000 Satoshis zu wenig sind, um sie gegen eine ausreichende Gebühr erneut auszugeben?

Selbst bei Gebühren von nur 10 Satoshis pro Byte mit einem Ein- und Ausgang (P2PKH) benötigen Sie mindestens 2.000 Satoshis für Gebühren.

Ich denke, es könnte besser sein, den Rest einfach in zusätzliche Mining-Gebühren zu stecken, wenn der Änderungsbetrag unter einer bestimmten Schwelle liegt, sagen wir 3.000 Satoshis. Eine Adresse mit nur 1.000 Satoshis ist größtenteils nutzlos und würde nur zum wachsenden UTXO-Set beitragen, das wahrscheinlich nie ausgegeben würde. Erscheint dieser Ansatz angemessen, oder „raube“ ich den Usern den Staub?

Antworten (1)

Ich habe zu einem verwandten Thema recherchiert * und ich würde sagen, es hängt von Ihren Annahmen ab, was auf lange Sicht mit dem Wert von Bitcoin, dem Gebührensatz und den Kosten für die Erstellung von Transaktionen passieren wird.

Unter der Annahme, dass der Gebührensatz (in [sat/B]) ungefähr auf dem gleichen Niveau bleibt oder steigt, spart es dem Benutzer Geld , das Wechselgeld der Gebühr hinzuzufügen, wenn das Wechselgeld kleiner ist als die Kosten für die Erstellung einer Ausgabe und die Ausgaben ein Eingang:

change ≤ (bytesOutput + bytesInput) × feePerByte ⇒ add to fee

Für P2PKH bei 150 Satoshis pro Byte ist dies zum Beispiel

change ≤ 27,300 satoshis = (34 bytes + 148 bytes) × 150 satoshis per byte

Sie sollten auch bedenken, dass das Hinzufügen der Änderung zu den Transaktionsgebühren dazu führt, dass Transaktionen schneller bestätigt werden, weniger Blockspace beanspruchen und das UTXO-Set reduzieren.

In Zukunft könnten jedoch kleinere Beträge ausgegeben werden, wenn die Gebührensätze drastisch sinken würden oder die Kosten für die Ausgabe von Inputs erheblich sinken würden. Ersteres könnte aufgrund von Blockgrößenerhöhungen oder der Einführung eines Zahlungssystems der zweiten Schicht geschehen, während letzteres durch neue Transaktionsformate, Signaturaggregation oder eine Senkung der minRelayTxFee.

Alternativ können Sie entweder versuchen, den Betrag, den Sie auszugeben versuchen, direkt anpassen oder einfach einen ausreichend großen Betrag auswählen, um eine nützliche Änderungsausgabe zu erstellen. Danke, Pieter, für die Erinnerung.

* meine Masterarbeit zur Münzauswahl [PDF mit 943KB]

Eine Alternative besteht darin, einfach eine Eingabeauswahl für einen größeren Betrag vorzunehmen und dann mit dem Ergebnis eine Änderung zu erzeugen.
Vorausgesetzt, es stehen zusätzliche Eingänge zur Verfügung. Es besteht die Möglichkeit, Benutzern zu erlauben, auch ihre eigenen Gebühren festzulegen, aber das scheint die Möglichkeit für Fehler zu eröffnen.