Es ist sinnvoll, einige zusätzliche Informationen mit einer Zahlung in LN zu senden. Beispielsweise senden spontane Zahlungen in LND eine payment_preimage
an das Zahlungsziel. LND verwendet ein nicht triviales EOB- Format, um zu versuchen, diese Informationen in die hops_data
. Sie hops_data
mü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 M
dem onion_packet
Format 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 EOB
Format 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_payload
eine 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?
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.