Lightning Network: Bezahlen Sie eine Bolt11-Rechnung in mehreren Zahlungen

Gibt es eine Möglichkeit, eine Bolt 11-Rechnung in mehreren Zahlungen mit Lightning Network zu bezahlen?

Zum Beispiel beträgt der zu zahlende Gesamtbetrag der Rechnung 5000 Satoshi:

lnbc50u1pwsyhx9pp57ppqvzwex3qapu0wn63v06jzxqdtt46qypks4pnexwrr2ansz9msdqcgejhxctzd9kxjare23jhxap3cqzysxqy2ljqd47a9cdlnj84cy0a0zg7frd8jnera8fen2du6d2g500wzs7mpsmpqe0c3ddhrrxpehyhj4c9fwj3cfr5mvyxcyaaq98fw39jketl89cq0j9hy2

Können wir in diesem Fall 2 mal 2500 Satoshi zahlen und dann das Geheimnis bekommen (Vorbild) Erst nachdem die vollständige Zahlung eingegangen ist ?

Ich habe bemerkt, dass es im LND-Client mit lncli Sendpayment und im C-Lightning-Client mit Lightning-Cli Pay- Befehlen einen Betragsparameter in Satoshi gibt?

Antworten (1)

Zurzeit nicht. Der Empfänger lehnt einen Versuch für weniger als den angeforderten Betrag ab und schlägt mit fehl incorrect_or_unknown_payment_details.

Jede Rechnung hat ein payment_hash, dem eine Zahlung entspricht, und der Zahlungs-Hash wird aus einem zufälligen generiert payment_preimage. Dies preimagemuss für jede Zahlung eindeutig sein, ansonsten kann es für jede Partei auf dem Weg einer Zahlung möglich sein, Geld zu nehmen, ohne die Zahlung weiterzuleiten.

Wenn der Zahlungsempfänger den vollen Betrag für eine Zahlung erhält, gibt er den payment_preimagean den vorletzten Hop in der Route frei, der dann den HTLC aus seinem Kanal entfernt und die Zahlung abschließt. Der vorletzte Hop leitet dann payment_preimagean den Hop vor ihnen weiter und so weiter, bis er den Zahler erreicht.

Sie können sehen, dass, wenn nur die Hälfte der Zahlung geleistet würde, jeder Teilnehmer entlang der Route bereits Kenntnis von der hätte payment_preimage. Wenn Sie versuchen, erneut mit demselben zu bezahlen , könnte jeder Hop auf dieser Route den HTLC sofort entfernen und die Zahlung mit dem bereits bekannten payment_hashverwenden , ohne die Zahlung an den nächsten Hop weiterzuleiten.payment_preimage

Es wird daran gearbeitet, Zahlungen aufzuteilen und über mehrere Routen zu senden, wobei der Zahlungsempfänger die Zahlung nur dann zurückgibt, payment_preimagewenn der volle Betrag von allen Routen eingegangen ist. Dies wird als AMP (Atomic Multipath Payments) bezeichnet. Dazu gibt es mehrere Vorschläge, die auf der Mailingliste diskutiert wurden.

Eine Klarstellung in der Frage hinzugefügt. Die Idee ist, mehrere Zahlungen zu senden, bis der in der Rechnung angegebene Gesamtbetrag erreicht ist. Dann (erst dann) das Vorschaubild zurücksenden? Gibt es etwas Plan in der Spezifikation in dieser Sache?
Derzeit steht diesbezüglich nichts in der Spezifikation. Es gibt Vorschläge, AMP in die 1.1-Spezifikation aufzunehmen. Beginnen Sie hier mit dem ursprünglichen AMP-Vorschlag.
Diese Idee, das Zurücksenden des Preimage zu verzögern, heißt BASE AMP IIRC und kann bereits manuell durchgeführt werden (es gibt nichts im Protokoll, um dies zu verhindern), aber es gibt keine UI-Unterstützung in irgendeiner der Implementierungen AFAIK. LND könnte dort eine vorläufige Unterstützung haben, weil sie dieselbe Technik in anderen Anwendungsfällen verwenden und sie HODL-Rechnung nennen. Beachten Sie, dass Base AMP wirklich eine Fehlbezeichnung ist, da dies nicht mehr atomar ist. Möglicherweise wird nur ein Teil der Zahlung ausgeführt.