Onion messages v1 ()

https://github.com/lightningdevkit/rust-lightning/pull/1503

Host: ariard  -  PR author: valentinewallace

The PR branch HEAD was cd06d2d at the time of this review club meeting.

Notes

  • In current Lightning, the invoice protocol for payment request is communicated out-of-band.
  • An upgrade of the payment protocol called offers has been proposed to enable new features : static invoices, refunds and proof of payer.
  • Offers leverages few components such as Schnorr sigs and the onion format used to route HTLC.
  • #1503 introduces a new module OnionMessenger to receive and send onion messages, with an API matching the already existent ChannelManager. The API design discussions already happened with #1432.

Questions

1) How the current onion format for HTLC payment works ? What the hop_payloads represent ? 2) How the construction of the new onion format OnionPacket differs ? What’s the relationship with BlindedRoute, “control” TLVs and “data” TLVs ? 3) The blinded route mechanism claims to hide the identity of the recipient. How it achieves ? Are they privacy leaks or deanonymization attacks ? 4) What offers offer as features and new payments flows ? How does it compare to LN-url ? 5) What could be efficient rate-limitations for onion messages ? 6) What could be future use-case of CustomHandler and CustomMessage<T> ?