ElementsProject / lightning

Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Other
2.87k stars 905 forks source link

MPP theoretically leaks source information #3987

Open rustyrussell opened 4 years ago

rustyrussell commented 4 years ago

Issue and Steps to Reproduce

I believe we skip MPP if there's a direct channel with capacity?

We should (1) only do this if we can determine that there's enough incoming capacity that it's deniable that it's our payment, and (2) try non-direct payments without MPP first 10% of the time. This means that non-MPP payments are not necessarily direct.

ZmnSCPxj commented 4 years ago

try non-direct payments without MPP first 10% of the time

Why not 100% of the time? i.e. always make payment id 0 a non-MPP attempt. Then if it fails, switch to MPP. This means just moving the trigger of presplitter from the start phase to the failed phase, and would be easier to implement (edit: and test) than adding randomness.

Some amount of non-MPP payments will randomly fail anyway due to network conditions, usually depending on size of payment, so this will even adapt based on the actual size of the payment, connectivity of the payer, etc.