-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
routing+htlcswitch: add support for selecting, and encoding+decoding blinded paths #6690
Comments
linking here so that it doesn't get lost: PR for creating blinded path, decrypting encrypted data from blinded path & processing an onion as a hop within a blinded path: lightningnetwork/lightning-onion#57 |
About to start opening some PRs so gonna give an outline here of what they will include & what is still missing: PR 1This PR will cover a bunch of set up work required for the follow up PRs. This includes:
PR 2This is the meat of the series. By the end of the PR, a user will be able to:
More in depth description:
PR 3This PR will cover being able to send shards of an MP payment through multiple paths. This will require quite a bit of refactoring which is why it gets its own PR. PR 4In PR 1, we start querying MC to choose the best paths towards us but realistically, MC wont have much (if any) data about links in this direction (all of its data currently comes from sending out). |
But don't rebalances of the node also track the direction to us ? So I think we already have MC data pointing into our direction through all the rebalances routing nodes make ? |
Good point! that will certainly help too 🎉 |
The only point I would add here is, even though it covers the scenario of payments being made to the node, the proportion of the nodes on the network actively rebalancing may not be that high. Since a large proportion of the channels on the network are unbalanced i.e. bi-modal liquidity distribution. |
Feature request: Add a parameter when creating the invoice for blinded paths which limits the overall fee of the route blinding section to a specific value. This would give the invoice creator more control so that the sender is not overpaying heavily. |
Closing this as all the relevant prs are merged |
This is a master tracking issue that tracks the prototyping/implementation of blinded paths: lightning/bolts#765.
Blinded paths re-uses a few of the Sphinx tricks to allow a receiver to give a sender an obfuscated path that hides the set of nodes traversed (subject to leakage via the routing policies) to the sender. We have code lying around some where that already implements all the blinding/encrypting bits. What's missing, and what will be the long tail to deployment (imo) is: figuring out exactly which paths to place in the blinded payload. Selecting these paths poorly may make a receiver hard to pay. On top of that, the paths selected decay over time, as routing policy changes may cause routes to no longer be used (fee is now 4x, etc).
Related to the question of which paths to select is: how many of them to stuff into the invoice. Unlike the normal last-hop hop hints usage in the invoice, these paths may extend into the public graph. As a result, there's more possibilities w.r.t which hops/nodes to include in a payload. As a result, when encoding for a BOLT 11 QR code, there's a sort of satisficement/optimization problem at hand. On the other hand, if something like LN-URL or BOLT 12 are used, then you're fetching these invoices over HTTP (or w/e) so you don't need to be as concerned w/ the side of the payload.
The text was updated successfully, but these errors were encountered: