-
Notifications
You must be signed in to change notification settings - Fork 955
Description
BOLT#4 specifically allows overpayment of invoices of up to twice the invoice amount. BOLT #11 explicitly mentions:
the payee SHOULD accept up to twice the expected amount, so the payer can make payments harder to track by adding small variations.
My intent is the below:
- In combination with
fuzz
from Improve route randomization #1012, also generate a random amount to add up to some fraction of themaxfeepercent
setting to add to the destination. - If the resulting route exceeds the actual desired payment by more than
maxfeepercent
, reduce the fraction for overpayment and/orfuzz
(maybe even use the same variable for both?) and retry. Only raise aPAY_ROUTE_TOO_EXPENSIVE
) if both the fuzz and overpayment fraction are very close to 0.0
An idea is to pay exactly when the resulting route is a single hop (i.e. direct route to destination), since nobody else will receive our onion routing message and the destination already knows how much the exact payment is (it generated the invoice...), but if we want to hide our identity from the destination, we will want to be able to pretend to be somebody else further away, meaning we should still overpay in that case.
In combination #1086, we could have "plausible" shadow routes by also overdelaying payment timeouts.