Warum verwenden wir CLTV anstelle von CSV in der HTLC-Ausgabe der Commitment-Transaktion?

Bei Lightning-Network-Commitment-Transaktionen zahlen die angebotenen/empfangenen HTLC-Ausgaben im Allgemeinen den anbietenden Knoten nach einer Zeitüberschreitung, die unter Verwendung von CLTV geschrieben ist. In anderen Teilen der Commitment-Transaktionen (z. B. to_self_delay) verwenden wir CSV, um sicherzustellen, dass die Ausgabe bis zum Ablauf einer bestimmten Zeit nicht ausgegeben werden kann. Warum wurde CLTV als Designwahl für HTLC-Ausgänge ausgewählt?

Antworten (2)

Wie Sie selbst gesagt haben, ist CSV relativ dazu, wann die Transaktion in der Blockchain erscheint, während CLTV absolut ist. Sie haben nur unterschiedliche Bedeutungen, die für verschiedene Dinge nützlich sind:

Das RSMC-Timeout soll nur starten, wenn jemand einen Commitment-Tx an die Blockchain sendet. Es muss also relativ sein.

Das HTLC-Timeout hingegen soll einen HTLC tatsächlich temporär machen, auch wenn er in den meisten Fällen niemals die Blockchain erreicht. Es muss also absolut sein.

Beim Erstellen einer Verpflichtungstransaktion verwenden Sie die Multi-Sig-Ausgabe der Finanzierungstransaktion als Eingabe. CSV ist ein relativer Timelock-Opcode, was bedeutet, dass die in der CSV angegebene Zeit eine Funktion davon ist, wann die Finanzierungstransaktion abgebaut wurde. Wenn Sie beispielsweise eine CSV-Ausgabe mit 100 Blöcken erstellen, kann diese Ausgabe erst verwendet werden, nachdem 100 Blöcke vergangen sind, seit die Finanzierungstransaktion erstellt wurde.

Beim Senden eines HTLC ist der erste Knoten, den es durchläuft, derjenige, mit dem Sie einen direkten Kanal haben. Da Sie und Ihr Kanalkontrahent sich in Bezug auf die Finanzierungstransaktion auf derselben Seite befinden, können Sie den CSV-Opcode frei verwenden, wenn Sie die Zeitsperre to_self_delayfür die Ausgabe des lokalen Knotens festlegen. Von da an wird es jedoch an Knoten gesendet, für die Sie keine direkten offenen Kanäle haben. Diese Knoten haben einen offenen Kanal mit anderen Knoten, deren Finanzierungstransaktionszeit sich von der unterscheidet, die Sie mit Ihrer Kanal-Gegenpartei geöffnet haben. Daher würde die Angabe von CSV in einer HTLC-Ausgabe aus Sicht verschiedener Kanalparteien zu mehrdeutigen Zeitüberschreitungen führen. Um Konsistenz zu gewährleisten, müssen Sie die absolute Sperrzeit verwenden, weshalb CLTV gewählt wird.

Diese Antwort ist verworren. Die Ausgabe der Finanzierungstransaktion ist nur eine einfache 2-von-2-Multi-Sig ohne Zeitsperre. Der Zeitpunkt der Finanzierungstransaktion hat hier also nichts zu tun. Wie jemand anderes erwähnt hat, möchten Sie, dass der Countdown beginnt, wenn eine Commitment-Transaktion die Blockchain erreicht, also macht CSV dort Sinn. Die Verwendung der absoluten Zeit in HTLC ist auf die zeitliche Koordinierung beim Routing zurückzuführen, falls eine Partei dazwischen die HTLC vor einer anderen festschreibt.