bolt11: drop requirement to check descriptionhash #1064
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For some context to the discussion see ElementsProject/lightning#6092.
Today there are hundreds of wallets, node front-ends and services that support Lightning Address, and if LND starts enforcing this bolt11 requirement they will all need to update or break, which is not going to happen, which is why I think this requirement should be dropped from bolt11, regardless if the requirement itself is a good thing or not. Like it or not, but if LND does not enforce this requirement, clients that do enforce it will just brick themselves by enforcing. In the LNURL Pay Spec, the requirement to check that hash and preimage match falls on the "Wallet" component, which is in most cases not the paying LN node but a client-side application. It is true that having the description is useful for showing historical payments and remembering what they were about, but I think you could claim the node not knowing the description is better for privacy as well in the case of a custodial service.
There are thousands of invoices generated each day which only have a description hash, are passed on from clients to servers (or to other clients) that are maintained by different people, with no way to easily pass the description as well. I believe the best thing to do is to accept that this is a lost battle, drop the requirement from bolt11 and wait for the 2nd coming of Christ (bolt12) to fix this.