Glossar / Lightning und Layer 2
Kanalreserve
- Was ist die Kanalreserve?
- Die Kanalreserve ist der Teil des Guthabens eines Lightning-Kanals, den jede Seite nicht ausgeben darf, der als Sicherheit einbehalten wird, damit ein Betrugsversuch mit einer alten Commitment-Transaktion immer etwas kostet.
Beide Peers legen beim Öffnen des Kanals jeweils eine Reserve für die andere Seite fest, und keine Seite darf sie unterschreiten, solange der Kanal besteht. BOLT 2 empfiehlt 1 Prozent des Kanalgesamtbetrags und verlangt, dass die Reserve mindestens dem Dust-Limit entspricht, das nicht unter 354 Satoshis liegen kann. Eine Wallet, die 100.000 Satoshis anzeigt, lässt Sie etwas weniger ausgeben, und diese Lücke ist kein Fehler.
So funktioniert es
Die Kanalreserve legt Ihr Peer fest, nicht Sie: Das Feld channel_reserve_satoshis, das ein Node sendet, ist der Mindestbetrag, den der Node am anderen Ende als direkte Zahlung behalten muss.
Das Feld ist eine 64-Bit-Zahl in open_channel, Nachrichtentyp 32, und erneut in accept_channel, Typ 33, sodass ein so geöffneter Kanal zwei Reserven trägt, die nicht übereinstimmen müssen. Die Begründung der Spezifikation nennt den Zweck: Jede Seite hält ihre Reserve "so it always has something to lose if it were to try to broadcast an old, revoked commitment transaction". Ohne sie riskiert der Verlierer eines Kanalstreits nichts, wenn er einen veralteten Stand veröffentlicht und hofft, dass niemand hinsieht.
Zwei Prüfungen halten die Zahl im Rahmen. Eine Reserve muss mindestens so groß sein wie das jeweils geltende Dust-Limit, und der Kanal schlägt sofort fehl, wenn das Dust-Limit der größere der beiden Werte ist, denn eine Reserve, die als Dust entfernt werden kann, schützt nichts; der Kanal schlägt auch fehl, wenn beide Eröffnungsguthaben auf oder unter der Reserve liegen, sodass nichts Ausgebbares bleibt. Eine Ausnahme gibt es, weil anfangs nur der Finanzierer Geld hält: Ein neuer Kanal muss nicht beide Reserven gleichzeitig erfüllen, und das Protokoll begnügt sich mit Fortschritten in Richtung dieser Reserven.
Dual finanzierte Kanäle lassen das Feld weg. In der Kanaleröffnung v2 lassen open_channel2 und accept_channel2 channel_reserve_satoshis weg, und die Reserve wird auf 1 Prozent der beiden Finanzierungsbeiträge zusammen festgelegt, abgerundet auf einen ganzen Satoshi, oder auf das Dust-Limit, wenn dieses größer ist. Splicing folgt demselben Prinzip: Nehmen Sie Geld aus einem laufenden Kanal heraus, muss der Rest auf Ihrer Seite die Reserve für die neue Kapazität einhalten. Wer die On-Chain-Gebühren zahlt, trägt einen Abzug mehr, denn sofern keine Commitment-Transaktionen ohne Gebühr ausgehandelt wurden, deckt der Finanzierer die Commitment-Gebühr über seiner Reserve, plus einen empfohlenen Puffer für das Doppelte dieses Gebührensatzes.
Wo Sie sie sehen
Die Kanalreserve ist der übliche Grund, warum der ausgebbare Betrag einer Lightning-Wallet unter ihrem Guthaben liegt.
Bei einem großen Guthaben ist die Lücke unsichtbar, bei einem kleinen nicht. Eine Reserve von 1 Prozent in einem Kanal mit 200.000 Satoshis beträgt 2.000 Satoshis, eine Wallet mit 2.300 Satoshis darin kann also 300 senden und lehnt alles darüber ab, mit einem Routing-Fehler, nicht mit einer Erklärung. Dieselbe Untergrenze liegt in jedem fremden Kanal, den Ihre Zahlung durchquert, was mit dazu beiträgt, dass Routen nahe den Kanalenden fehlschlagen. Node-Betreiber begegnen ihr als dem Guthaben, das sich nie bewegt: Öffnen Sie einen Kanal mit 1.000.000 Satoshis, schicken Sie alles hindurch, was Sie können, und die letzten 10.000 Satoshis bleiben liegen, bis der Kanal geschlossen wird.
Wichtig zu wissen: Dieses Geld gehört weiterhin Ihnen. Es kommt beim Schließen zurück, kooperativ oder erzwungen, abzüglich der Schließgebühr. Halten Sie dem entgegen, was eine selbstverwahrende Lightning-Wallet verlangt, um Ihnen Platz zu schaffen: Unsere Bewertung von Phoenix verzeichnet 1.000 Satoshis für das Erstellen eines Kanals, und das ist nach der Zahlung weg. Eine Reserve ist gebundenes Kapital.
Kanalreserve vs. Dust-Limit
Kanalreserve und Dust-Limit sind Untergrenzen für einen Betrag, aus verschiedenen Ebenen. Das Dust-Limit ist eine Weiterleitungsrichtlinie von Bitcoin für Outputs: Darunter kostet das Ausgeben eines Outputs mehr, als er enthält, sodass Nodes es ablehnen, die Transaktion weiterzuleiten, die ihn erzeugt. Die Reserve ist eine Regel über Kanalguthaben, geschrieben in die Lightning-Spezifikation, um Betrug teuer zu machen, und sie bindet nur zwei Peers. BOLT 2 verknüpft beide in eine Richtung, indem eine Reserve mindestens dem Dust-Limit entsprechen muss, damit der Output, der sie auszahlt, weiterleitbar bleibt; nichts treibt das Dust-Limit nach oben in Richtung der Reserve.