Müssen Relaisknoten Geld haben, um Transaktionen weiterzuleiten?

Stellen Sie sich vor, Alice möchte 0,5 BTC an Bob senden. Beide öffnen Kanäle mit Carol, einem Relaisknoten, der kein Geld hat. Sie erstellen einzelne finanzierte Kanäle mit jeweils 1 BTC.

Jetzt aktualisiert Alice ihren Kanal auf 0,5 für sie und 0,5 für Carol (vorerst keine LN-Gebühren).

Um diese 0,5 an Bob weiterzuleiten, muss Carol (der Relaisknoten) ihren Kanal mit Bob aktualisieren, damit er auch 0,5 für sie und 0,5 für Bob ist. Dafür hat sie aber kein Geld auf ihrer Seite. Das ganze Geld ist auf Bobs Seite – wie ich schon sagte, Carol hat kein Geld.

Was ist die Problemumgehung dafür? Müssen Relaisknoten Geld haben, um Transaktionen weiterzuleiten?

Antworten (1)

Nein, dafür gibt es keine Abhilfe. Wenn das Guthaben eines Kanals vollständig einer Seite zugeordnet ist, kann der Kanal nur verwendet werden, um Gelder in eine Richtung zu bewegen. Außerdem ist ein Kanal, dessen Gleichgewicht vollständig auf eine Seite verschoben ist, anfällig für die Übertragung eines vorherigen Kanalzustands, da für den Angreifer keine Gelder verloren gehen können. Dies gilt nicht für Kanäle, die einseitig finanziert werden, da in diesem Fall kein vorheriger Kanalstatus vorliegt.

Es wird daher nicht empfohlen, einen Kanal vollständig in einer Richtung zu entlüften. Um die Liquidität in beiden Richtungen aufrechtzuerhalten, bestehen vorgeschlagene Ansätze darin, höhere Gebühren zu erheben, wenn die Kanäle weiter aus dem Gleichgewicht geraten, und niedrigere Gebühren, möglicherweise sogar negative Gebühren, in der Richtung zu erheben, die einen Kanal zurück in Richtung Gleichgewicht bewegt.

Routingalgorithmen, die die Gebühr für eine Route minimieren, würden somit dazu angeregt, Routen entlang des Pfads neu auszugleichen. Zusätzlich bedeutet dies, dass es in der Grafik Zyklen geben kann, die tatsächlich in der Summe eine negative Gebühr verursachen, die jedes Mitglied dieses Zyklus sammeln könnte, indem es eine Zahlung an sich selbst entlang des Zyklus zum kollektiven Vorteil veranlasst.


Update: Es folgt ein Beispiel für die Verwendung eines Zyklus zum Neuausgleich von Kanälen.

Nehmen Sie die drei Zahlungskanäle

Alice 0.8 : 0.2 Bob 
  Bob 0.7 : 0.3 Carol
Carol 0.9 : 0.1 Alice

Alice bemerkt den Zyklus und erstellt eine Drei-Hop-Zahlung, die 0,3 BTC auf dem Weg von Bob und Carol an sich selbst zahlt. Sie erstellt den HTLC und sendet ihn an Bob, Bob nimmt ihn an und leitet ihn an Carol weiter, Carol nimmt ihn an und leitet ihn an Alice weiter. Alice führt den letzten Hop aus, Carol die Mitte und Bob zieht die gesperrten Gelder von Alice ein, was zu ausgewogeneren Kanälen für alle führt.

Alice 0.5 : 0.5 Bob 
  Bob 0.4 : 0.6 Carol
Carol 0.6 : 0.4 Alice

Beachten Sie, dass Bob und Carol nicht wissen, dass Alice an sich selbst gezahlt hat, da sie jeweils nur den nächsten Hop und den vorherigen Hop in der Vertragskette sehen können.

Würden Sie mir helfen zu verstehen, wie dieser "Zyklus" funktionieren würde? Ich vermute auch, dass Routing-Algorithmen vielleicht längere Wege nehmen werden (statt kurze), um einige Kanäle neu auszugleichen, für die Gesundheit des Netzwerks als Ganzes?
Wenn Knotenbetreiber eine negative Gebühr für die Nutzung ihres Zahlungskanals in eine bestimmte Richtung anbieten, würde ein Algorithmus, der die günstigste Route findet, die Verwendung solcher Kanäle bevorzugen.
@LucaMatteis: Ich habe ein Beispiel hinzugefügt.
Danke @Murch, das ist sehr nützlich! Erlaubt die aktuelle Spezifikation diese von Ihnen beschriebene Rebalancing-Schleife? Kann es heute mit bestehenden Wallets wie Zap verwendet werden? Wenn es noch nicht fertig ist, haben Sie eine Idee, wo wir den Fortschritt überwachen können. Das klingt wie ein wirklich benötigter Teil des Protokolls.