Warum werden in den Zwiebelpaketen von Lightning keine Sphinx-Weiterleitungsnachrichten verwendet?

Es ist sinnvoll, einige zusätzliche Informationen mit einer Zahlung in LN zu senden. Beispielsweise senden spontane Zahlungen in LND eine payment_preimagean das Zahlungsziel. LND verwendet ein nicht triviales EOB- Format, um zu versuchen, diese Informationen in die hops_data. Sie hops_datamüssen eine feste Größe haben, um zu verhindern, dass zwischengeschaltete Knoten wissen, wo sie sich in einer Route befinden, was die Größe der Informationen begrenzt, die weitergeleitet werden können.

Das Sphinx- Protokoll, auf dem das Onion-Routing von LN basiert, unterstützt bereits die Weiterleitung verschlüsselter Nachrichten als separates Feld. Die Notation (M,δ)wird für eine Zwiebelnachricht verwendet, wobei die Mdem onion_packetFormat in BOLT4 entspricht . δist die verschlüsselte Nutzlast, die beliebig groß sein kann und nicht verwendet wird.

Wäre es nicht sinnvoller, diese Nachrichtenweiterleitung zu nutzen, als zu versuchen, das Protokoll mit dem EOBFormat zu verkomplizieren, was uns eine triviale Anzahl von Bytes einbringt?

Ich kann sehen, dass eine beliebige Größe ein Problem für einen Angreifer sein kann, der den Verkehrsfluss überwacht. Vielleicht δkann eine feste Größe gemacht und so aufgefüllt werden, dass jede update_add_htlc_with_payloadeine feste Größe bleibt. Wir könnten möglicherweise umfangreichere und nützlichere Informationen an das Ziel übertragen (insbesondere möchte ich in der Lage sein, eine Rückerstattungsrechnung in die Zahlung einzubetten).

Gibt es andere Probleme beim Weiterleiten einer separaten verschlüsselten Nutzlast, die mir nicht bekannt sind?

Antworten (1)

Fragen wie diese führen immer zu eigensinnigen Antworten und sind etwas schwierig zu beantworten. Ich werde es trotzdem versuchen.

Zunächst einmal denke ich, dass Sie Ihre Frage bereits zu einem wichtigen Teil beantwortet haben. Das Weiterleiten von Nachrichten über das SPHINX-Protokoll bietet die Möglichkeit von Angriffen auf die Nachrichtenlänge.

Ich denke, ein weiterer Grund war das Ziel, am Anfang einfach zu sein. Ich weiß, dass es viele Diskussionen darüber gibt, das Onion-Routing auf HORNET zu erweitern, wodurch eine verbindungsorientierte verschlüsselte Kommunikationsschicht über dem Lightning-Netzwerk und dem Routing-Protokoll erstellt würde. Dies bringt offensichtlich einige Vorteile mit sich, aber auch Komplexität und Möglichkeiten, Exploits einzuführen. Erinnern wir uns daran, dass das Sphinx-Mix-Format zum Senden und Empfangen von Nachrichten / E-Mails erstellt wurde und wir es für den Blitz "missbrauchen". Ich denke, wir mochten die Kernfunktion, die wir brauchten.

Ich denke, der Hauptgrund für die Verwendung des EOB-Felds bei spontanen Zahlungen ist, dass es einfach war, dies im aktuellen System ohne allzu viele Änderungen zu implementieren. Aber um sicher zu sein, könnte Roasbeef den genauen Grund nennen.