lightning icon indicating copy to clipboard operation
lightning copied to clipboard

offers should allow blinding paths

Open rustyrussell opened this issue 3 years ago • 4 comments

Issue and Steps to Reproduce

Offers currently reveal your node_id; there should at least be an option to not do that.

This involves:

  • [ ] Implement routehints via blinded paths in offers and invoices.
  • [ ] A transitory fake-id (duh) so the node doesn't reveal itself.
  • [ ] Ensuring that payments are made via the routehints, not directly!

rustyrussell avatar Jul 29 '21 03:07 rustyrussell

Would these route-hints be randomly generated based on nearby nodes we know of?

Sjors avatar Aug 24 '21 17:08 Sjors

Based on this code below, it calls onion_message_ourpath hook of plugin fetchinvoice when onion messages contain our_alias. Should it call hook of plugin offers when onion messages contain reply_path and invoice_request?

	if (payload->our_alias)
		plugin_hook_call_onion_message_ourpath(ld, payload);
	else
		plugin_hook_call_onion_message_blinded(ld, payload);

yuyaogawa avatar Aug 28 '22 17:08 yuyaogawa

It's not yet merged but support for offers in eclair is ready. I've tried some basic interoperability tests and it worked fine, however as soon as I tried something more tricky I hit this issue. Offer has evolved a lot since this issue was created and the third point (Ensuring that payments are made via the routehints, not directly!) is now solved, however the first two points are still an issue. Regarding the transitory fake-id, I think we should use the blinded node id of the first path as was suggested some time ago, that way we can save some previous QR code space by dropping offer_node_id which becomes redundant.

thomash-acinq avatar Feb 16 '23 15:02 thomash-acinq

It's not yet merged but support for offers in eclair is ready. I've tried some basic interoperability tests and it worked fine, however as soon as I tried something more tricky I hit this issue. Offer has evolved a lot since this issue was created and the third point (Ensuring that payments are made via the routehints, not directly!) is now solved, however the first two points are still an issue. Regarding the transitory fake-id, I think we should use the blinded node id of the first path as was suggested some time ago, that way we can save some previous QR code space by dropping offer_node_id which becomes redundant.

Since this is live in Phoenix now and CLN not compatbile, could you give this a look again? @rustyrussell

It's your baby afterall and absolutely should be a CLN flagship feature 🧡

kilrau avatar Jul 04 '24 09:07 kilrau