Multipath payments
Also covering AMP and Multipart payments
Multipath payments are LN payments split into two or more parts and sent using a different path for each part.
Smaller payments are more likely to succeed in general, and allowing a payment to be split allows the spender to use almost all of their funds at once no matter how many channels those funds are split across. There are two basic multipath proposals:
-
Atomic Multipath Payments (AMP), sometimes called Original AMP or OG AMP, which allows a spender to pay multiple hashes all derived from the same preimage—a preimage the receiver can only reconstruct if they receive a sufficient number of shares. This only allows the receiver to accept a payment if they receive all of the individual parts. Each share using a different hash adds privacy by preventing the separate payments from being automatically correlated with each other by a third party. The proposal’s downside is that the spender selects all the preimages, so knowledge of the preimage doesn’t provide cryptographic proof that they actually paid the receiver.
-
Base-AMP which simply sends multiple payments all using to the same hash and assumes the receiver will wait until the full amount is received before claiming the payment (releasing the hash preimage and allowing generation of a provable receipt). It’s also possible for third-parties who see multiple payments using the same hash to assume they’re part of the same true payment.
Primary code and documentation
Optech newsletter and website mentions
2020
- Eclair #1599 improves multipath spending to direct channel counterparties
- LND #4521 improves invoice routing hints for multipath payments
- Zap 0.7.0 Beta adds support for multipath payments
- C-Lightning #3809 adds support for sending of multipath payments
- Eclair 0.4.1 adds support for sending multipath payments
- Eclair #1427 and #1439 add support to Eclair for sending multipath payments
- Lightning Loop adds support for multipath payments
- LND 0.10.0-beta released with support for multipath payments
- LND 0.10 presentation: multipath payments
- Rust-Lightning #441 adds support for basic multipath payments
- LND #3967 adds support for sending multipath payments
- LND #3970 adds support for multipath payments to its payment lifecycle
- Boomerang: improving latency and throughput with multipath payments
- LND #3957 adds code useful for Atomic Multipath Payments (AMP) support
- Eclair 0.3.3 adds support for multipath payments
- LND 0.9.0-beta adds support for receiving multipath payments
- Eclair #1283 allows multipath payments to traverse unannounced channels
2019
- 2019 year-in-review: multipath payments
- Multiple LN implementations add multipath payment support
- Basic multipath payment support added to LN specification
- LND #3788 adds support for “payment addresses” (payment secrets)
- C-Lightning #3259 adds payment secrets to prevent multipath probing
- LND #3499 extends several RPCs to support tracking multipath payments
- Eclair #1153 adds experimental support for multipath payments
- LND #3442 preparatory PR adding features necessary for multipath payments
- LND #3390 separates tracking of HTLCs from invoices as necessary for AMP
2018
Previous Topic:
Minisketch
Next Topic:
MuSig