Zum Inhalt springen
buybitcoinsmart

Glossar / Lightning und Layer 2

Dust-HTLC

Was ist ein Dust-HTLC?
Ein Dust-HTLC ist eine Lightning-Zahlung, die zu klein ist, um in der Commitment-Transaktion eine eigene Ausgabe zu erhalten, sodass ein erzwungener Schließvorgang sie den Minern statt einem der beiden Kanalpartner zuführt.

Lightning-Kanäle weigern sich, für eine laufende Zahlung eine Ausgabe anzulegen, die weniger wert ist als das Dust-Limit plus der für ihre Rettung nötigen Gebühr, und dieser Betrag wird zur Miner-Gebühr. Bei einem Dust-Limit von 546 Satoshi und einer Gebühr von 5.000 pro Kiloweight wird alles unter 3.861 Satoshi abgeschnitten. Das Geld ist nur verloren, wenn der Kanal zwangsgeschlossen wird, während diese Zahlung noch unterwegs ist.

Wie es funktioniert

Ein Dust-HTLC wird durch Arithmetik entschieden, nicht durch Ermessen: das Dust-Limit, das der Kanalinhaber gewählt hat, plus das, was das Beanspruchen der Zahlung on-chain kosten würde.

BOLT 3 nennt die verworfene Ausgabe abgeschnitten. Bei einer Zahlung, die Sie anbieten, prüft der Kanal den Betrag minus der Gebühr der HTLC-Time-out-Transaktion; bei einer, die Sie empfangen, den Betrag minus der Gebühr der HTLC-Success-Transaktion. Diese beiden Transaktionen wiegen in einem Kanal ohne Anker 663 und 703 Gewichtseinheiten, sodass sie bei einem feerate_per_kw von 5.000 jeweils 3.315 und 3.515 Satoshi kosten. Gegen ein Dust-Limit von 546 Satoshi liegt die Schwelle für angebotene Zahlungen bei 3.861 Satoshi und die für empfangene bei 4.061.

Das Rechenbeispiel in BOLT 3 zeigt den Verlust. Bei dieser Gebühr pro Kiloweight sind vier Zahlungen unterwegs: angebotene HTLCs von 5.000 und 1.000 Satoshi, empfangene HTLCs von 7.000 und 800. Die über 5.000 und die über 7.000 erhalten jeweils eine Ausgabe. Die über 1.000 und die über 800 werden abgeschnitten, und die Gebühr der Commitment-Transaktion steigt von einer Basis von 5.340 Satoshi auf 7.140. Diese zusätzlichen 1.800 Satoshi sind genau die beiden verschwundenen Zahlungen, ausgezahlt an den, der die Schließung mint.

Jede Seite wählt ihr eigenes dust_limit_satoshis, sodass die beiden Commitment-Transaktionen eines Kanals uneins darüber sein können, welche Zahlungen als Dust gelten. BOLT 2 bringt einen Node dazu, den Kanal scheitern zu lassen, wenn sein Peer einen Wert unter 354 Satoshi vorschlägt, und erlaubt ihm, einen abzulehnen, den er für zu groß hält, da ein Peer mit hohem Limit ein Commitment veröffentlichen kann, das mit abgeschnittenen Zahlungen vollgestopft ist.

Anker-Kanäle haben die Arithmetik verändert. Unter option_anchors oder zero_fee_commitments tragen die HTLC-Transaktionen der zweiten Stufe keine Gebühr, sodass sie die Berechnung nicht mehr speisen und die Schwelle auf das reine Dust-Limit zusammenfällt. BOLT 3 weist Nodes an, in diesem Fall dust_limit_satoshis bewusst anzuheben, da eine Ausgabe, die das Limit überschreitet, aber bei realen Gebühren nicht ausgeräumt werden kann, nur das UTXO-Set verschmutzt.

BOLT 2 begrenzt außerdem die Summe statt jeder einzelnen Zahlung. Übersteigt sie das max_dust_htlc_exposure_msat eines Nodes, das selbst eine Frage der Policy ist, sollte der Node ein eingehendes HTLC, sobald es festgeschrieben ist, scheitern lassen und das Preimage nicht offenlegen, wodurch ein möglicher Verlust zu einem sauberen Fehlschlag wird.

Wo es auftritt

Dust-HTLCs zeigen sich im Verwahrungsmodell einer Wallet und nicht in ihrer Benutzeroberfläche, und die 41 Wallet-Bewertungen hier teilen sich an diesem Punkt klar auf.

Phoenix betreibt einen echten selbstverwahrten Lightning-Node auf Ihrem Smartphone, also gehören Ihnen die Kanäle und damit auch dieses Risiko; ACINQ berechnet 0,4 % plus 4 Satoshi pro Sendung, und jede dieser Sendungen ist ein HTLC, den das Abschneiden erreichen kann. Die Lightning-Seite von BlueWallet ist ein Konto auf einem LNDHub-Server, also hält der Betreiber die Kanäle: Sie tragen nie eine abgeschnittene Zahlung, dafür aber diesen Betreiber.

Das Abschneiden taucht beim Schließen wieder auf. BOLT 2 erlaubt eine Verhandlung über das Schließen erst, wenn in keiner der beiden Commitment-Transaktionen mehr ein HTLC verbleibt, Dust-HTLCs eingeschlossen, sodass eine Zahlung von 300 Satoshi, die kein On-Chain-Beobachter sehen kann, eine kooperative Schließung weiterhin offen hält.

Dust-HTLC vs. Dust-Limit

Das Dust-Limit ist eine Zahl, die ein Node wählt; ein Dust-HTLC ist eine Zahlung, die einen Vergleich gegen diese Zahl plus eine Gebühr verloren hat.

Das Limit ist ein Kanalparameter, der in open_channel und accept_channel festgelegt wird und von keiner späteren Nachricht getragen wird. Das Abschneiden ist ein Ergebnis, das sich bewegt: ohne Anker folgt die Schwelle feerate_per_kw, sodass dieselbe Zahlung von 2.500 Satoshi in einem ruhigen Mempool eine echte Ausgabe ist und in einem ausgelasteten abgeschnitten wird.

Außerdem gelten beide in verschiedenen Stadien. Die Schwellen von Bitcoin Core, 546 Satoshi für eine Legacy-Ausgabe und 330 für pay-to-witness-script-hash, betreffen die Weiterleitungsregeln für Transaktionen, die existieren. Ein abgeschnittenes HTLC erreicht diese Prüfung nie, weil seine Ausgabe nie geschrieben wird.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Kann ein Dust-HTLC mir tatsächlich Geld kosten?

Ja, aber nur den abgeschnittenen Betrag, und nur wenn der Kanal zwangsgeschlossen wird, während diese Zahlung noch unterwegs ist. Eine Zahlung, die normal abgewickelt wird oder scheitert, bleibt unberührt, denn das Abschneiden entscheidet nur, wie eine Commitment-Transaktion aussähe, wenn jemand sie veröffentlichte.

Warum hat mein Lightning-Node eine winzige Zahlung abgelehnt?

Ein Grund ist die Obergrenze für die maximale Dust-HTLC-Exposition. BOLT 2 weist einen Node an, ein solches HTLC scheitern zu lassen, sobald es festgeschrieben ist, und das Preimage zurückzuhalten, wenn die Annahme den gesamten abgeschnittenen Saldo des Kanals über das vom Betreiber gesetzte Limit hinaustreiben würde.

Beseitigen Anker-Kanäle Dust-HTLCs?

Nein. Anker-Kanäle nehmen die Gebühr der HTLC-Zweistufe aus der Berechnung heraus, sodass der Schwellenwert auf das reine Dust-Limit zurückfällt. Deshalb sagt BOLT 3, dass es sinnvoll ist, dust_limit_satoshis anzuheben, um diese Zweistufenkosten abzudecken, und deshalb sollte ein Node seinem Peer ein Limit über den Werten von Bitcoin Core selbst erlauben, die von 240 bis 546 Satoshis reichen.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Lightning und Layer 2

Diese Seite auf Englisch lesen