Glossar / Privatsphäre und Sicherheit
Staubgrenze
Auch bekannt als Dust limit, Dust threshold.
- Was ist die Staubgrenze?
- Die Staubgrenze ist der kleinste Betrag, den ein Bitcoin-Output enthalten kann, bevor Nodes es ablehnen, die Transaktion weiterzuleiten, die ihn erzeugt, derzeit 546 Satoshis für eine Legacy-Adresse.
Nodes verwerfen Transaktionen, die Outputs erzeugen, die zu klein sind, um es wert zu sein, ausgegeben zu werden, wodurch verhindert wird, dass sich das Netzwerk mit unausgebbaren Resten füllt. Bitcoin Core beziffert die Grenze auf drei Satoshis pro virtuellem Byte der künftigen Ausgabe: 546 Satoshis für einen Pay-to-Public-Key-Hash-Output, 294 für natives SegWit, 330 für Taproot. Wenn eine Wallet sich weigert, einen Betrag zu senden, ist dies meist der Grund.
Wie es funktioniert
Bitcoin Core wendet die Staubgrenze auf jeden Output separat an und stellt eine einzige Frage: Würde die spätere Ausgabe dieses Outputs mehr kosten, als der Output wert ist?
Die Berechnung befindet sich in GetDustThreshold in src/policy/policy.cpp. Der Node addiert die Größe des Outputs, wie er im Ledger steht, zur Größe des Inputs, der ihn schließlich ausgeben würde, und multipliziert dann mit DUST_RELAY_TX_FEE, einer Policy-Konstante von 3.000 Satoshis pro Kilo-Virtual-Byte oder 3 Sat/vB. Rechnen Sie es für die drei gängigen Skripttypen durch:
- Ein Pay-to-Public-Key-Hash-Output ist 34 Bytes groß und benötigt 148 virtuelle Bytes zum Ausgeben, also ergeben 182 vBytes bei 3 Sat/vB 546 Satoshis.
- Ein nativer SegWit-Output (bech32, beginnend mit
bc1q) ist 31 Bytes groß und sein Input wird auf etwa 67 vBytes reduziert, was 98 vBytes und 294 Satoshis ergibt. - Ein Taproot-Output (
bc1p) ist 43 Bytes groß mit demselben reduzierten Input, was 110 vBytes und 330 Satoshis ergibt.
Zwei Details sind wichtig. Erstens ist dies Relay-Policy, keine Konsensregel: Ein Miner, der eine staubige Transaktion außerhalb des regulären Weges erhält, kann sie in einen Block aufnehmen, und jeder Node wird diesen Block akzeptieren. Zweitens sind OP_RETURN-Outputs ausgenommen, weil sie nachweislich nicht ausgebbar sind, sodass es keinen künftigen Input gibt, der bezahlt werden müsste.
Der Schwellenwert ist zudem unverändert geblieben, während sich der Gebührenmarkt verändert hat. Während einer Spitze bei 200 Sat/vB kostet die Ausgabe desselben Legacy-Outputs etwa 29.600 Satoshis, sodass er wirtschaftlich längst tot ist, bevor das Netzwerk ihn als Staub bezeichnen würde.
Wo Sie sie sehen
Die Staubgrenze zeigt sich als Fehlermeldung, fast nie als Konzept.
Wallets formulieren sie als "amount below dust threshold", "output too small" oder grauen einfach die Senden-Schaltfläche aus. Bitcoin Core und die meiste Wallet-Software wenden sie auch stillschweigend auf das Wechselgeld an: Wenn der Rest einer Zahlung unter den Schwellenwert fallen würde, lässt die Wallet den Wechselgeld-Output weg und gibt diesen Wert dem Miner als zusätzliche Gebühr, statt etwas zu erzeugen, das niemand ausgeben kann.
Börsen liegen ohnehin weit über der Grenze. Ihre Auszahlungsmindestbeträge richten sich nach ihren eigenen Kosten für die Bearbeitung einer Anfrage, nicht nach der Policy, sodass Sie auf eine Untergrenze von 0,0001 BTC oder 10 Dollar stoßen, lange bevor Sie 546 Satoshis erreichen.
Lightning hat seine eigene Version der Regel. Jeder Kanal handelt einen dust_limit_satoshis-Wert aus, und BOLT 2 verlangt mindestens 354 Satoshis bei Kanälen, die Anchor-Outputs verwenden. Jede Zahlung unterhalb dieser Grenze erhält überhaupt keinen Output in der Commitment-Transaktion: Wenn der Kanal zwangsgeschlossen wird, während eine solche Zahlung unterwegs ist, geht der Betrag als Gebühr an die Miner.
Staubgrenze vs. Staub
Staub ist ein Output; die Staubgrenze ist eine Regel über Outputs. Im alltäglichen Gebrauch bezeichnet Staub jeden Output, der zu klein ist, um es wert zu sein, bei den heutigen Gebühren ausgegeben zu werden, eine Grenze, die sich jedes Mal verschiebt, wenn sich der Mempool füllt. Die Staubgrenze ist eine feste Policy-Konstante, die sich überhaupt nicht verschiebt. Diese Lücke ist der Grund, warum Sie einen Output halten können, den das Netzwerk problemlos weitergeleitet hat, und es dennoch als unwirtschaftlich empfinden, ihn auszugeben.
Staubgrenze vs. minimale Relay-Gebühr
Die minimale Relay-Gebühr ist eine Untergrenze für die gesamte Transaktion, standardmäßig 1.000 Satoshis pro Kilo-Virtual-Byte oder 1 Sat/vB. Die Staubgrenze ist eine Untergrenze für einen einzelnen Output und verwendet bewusst einen höheren Satz von 3 Sat/vB, damit ein Output nur erstellt wird, wenn er auch unter etwas schlechteren Bedingungen als denen, unter denen er erstellt wurde, noch ausgebbar sein wird. Eine Transaktion kann die Relay-Gebühr problemlos überschreiten und dennoch abgelehnt werden, weil ein Output von 200 Satoshi die Staubprüfung nicht bestanden hat.