Skip to content
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

Drop the required channel_update in failure onions #1173

Merged

Conversation

TheBlueMatt
Copy link
Collaborator

As noted previously, channel_updates in the onion failure packets are massive gaping fingerprintign vulnerabilities - if a node applies them in a publicly-visible way the err'ing node can easily identify the sender of an HTLC.

While the updates are still arguably marginally useful for nodes to use in their pathfinding local to retires of the same payment, this too will eventually become an issue with PTLCs. Further, we shouldn't be letting nodes get away with delaying payments by failing to announce the latest channel parameters or enforcing new parameters too soon, so treating the node as having indicated insufficient liquidity (or other general failure) is appropriate in the general case.

Thus, here, we begin phasing out the channel_update field, requiring nodes ignore it outside of the current payment and making it formally optional (though nodes have been doing this for some time due to various bugs).

Because some nodes may want to use update data on mobile when they have stale gossip data, it is left optional.

An alternative to #1163 for those that want to use the updates.

Copy link
Collaborator

@t-bast t-bast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 3344779

04-onion-routing.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@Roasbeef Roasbeef left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🍁

(pending typo fix)

As noted previously, `channel_update`s in the onion failure packets
are massive gaping fingerprintign vulnerabilities - if a node
applies them in a publicly-visible way the err'ing node can easily
identify the sender of an HTLC.

While the updates are still arguably marginally useful for nodes to
use in their pathfinding local to retires of the same payment, this
too will eventually become an issue with PTLCs. Further, we
shouldn't be letting nodes get away with delaying payments by
failing to announce the latest channel parameters or enforcing new
parameters too soon, so treating the node as having indicated
insufficient liquidity (or other general failure) is appropriate
in the general case.

Thus, here, we begin phasing out the `channel_update` field,
requiring nodes ignore it outside of the current payment and making
it formally optional (though nodes have been doing this for some
time due to various bugs).

Because some nodes may want to use update data on mobile when they
have stale gossip data, it is left optional.
@TheBlueMatt TheBlueMatt force-pushed the 2024-06-dont-look-at-updates-in-onions branch from 3344779 to 9497394 Compare July 10, 2024 19:24
@TheBlueMatt
Copy link
Collaborator Author

Fixed the typo.

Copy link
Collaborator

@t-bast t-bast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 9497394

@t-bast t-bast merged commit 93b7ee0 into lightning:master Jul 11, 2024
tankyleo added a commit to tankyleo/rust-lightning that referenced this pull request Oct 1, 2024
tankyleo added a commit to tankyleo/rust-lightning that referenced this pull request Oct 4, 2024
tankyleo added a commit to tankyleo/rust-lightning that referenced this pull request Oct 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants