<oembed><type>rich</type><version>1.0</version><author_name>npub1zw7cc8z78v6s3grujfvcv3ckpvg6kr0w7nz9yzvwyglyg0qu5sjsqhkhpx</author_name><author_url>https://nostr.ae/npub1zw7cc8z78v6s3grujfvcv3ckpvg6kr0w7nz9yzvwyglyg0qu5sjsqhkhpx</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2020-02-13&#xA;📝 Original message:&#xA;Bastien TEINTURIER &lt;bastien at acinq.fr&gt; writes:&#xA;&gt; Hi Rusty,&#xA;&gt;&#xA;&gt; Thanks for the answer, and good luck with c-lightning 0.8.1-rc1 ;)&#xA;&#xA;... Now -rc2.  I actually had a RL use for lightning (OMG!), and sure&#xA;enough found a bug.&#xA;&#xA;&gt; I&#39;ve been thinking more about improving my scheme to not require any sender&#xA;&gt; change, but I don&#39;t think that&#39;s possible at the moment. As with all&#xA;&gt; Lightning&#xA;&gt; tricks though, once we have Schnorr then it&#39;s really easy to do.&#xA;&gt; Alice simply needs to use `s * d_a` as her &#34;preimage&#34; (and the payment point&#xA;&gt; becomes the P_I Bob needs). That may depend on the exact multi-hop locks&#xA;&gt; construction we end up using though, so I&#39;m not 100% sure about that yet.&#xA;&#xA;I was starting to think this whole thing was of marginal benefit: note&#xA;that solving &#34;private channels need a temp scid&#34; is far simpler[1].&#xA;&#xA;But since your scheme extends to rendevous, it&#39;s much more tempting!&#xA;&#xA;We would use this for normal private channels as well as private routes&#xA;aka new rendezvous.  Even better, this would be a replacement for&#xA;current route hints (which lack ability to specify feature bits, which&#xA;we would add here, and is also grossly inefficient if you just want to&#xA;use it for Routeboost[2]).&#xA;&#xA;Propose we take the `z` to use as bolt11 letter, because even the French&#xA;don&#39;t pronounce it in &#34;rendez-vous&#34;!)&#xA;&#xA;Then use TLV inside:[3]&#xA;&#xA;* `z` (2): `data_length` variable. One or more entries containing extra&#xA;  routing information; there may be more than one `z` field.  Each entry&#xA;  looks like:&#xA;   * `tlv_len` (8 bits)&#xA;   * `rendezvous_tlv` (tlv_len bytes)&#xA;&#xA;1. tlvs: `rendezvous_tlv`&#xA;2. types:&#xA;   1. type: 1 (`pubkey`)&#xA;   2. data:&#xA;      * [`point`:`nodeid`]&#xA;   1. type: 2 (`short_channel_id`)&#xA;   2. data:&#xA;      * [`short_channel_id`:`short_channel_id`]&#xA;   1. type: 3 (`fee_base_msat`)&#xA;   2. data:&#xA;      * [`tu32`:`fee_base_msat`]&#xA;   1. type: 4 (`fee_proportional_millionths`)&#xA;   2. data:&#xA;      * [`tu32`:`fee_proportional_millionths`]&#xA;   1. type: 5 (`cltv_expiry_delta`)&#xA;   2. data:&#xA;      * [`tu16`:`cltv_expiry_delta`]&#xA;   1. type: 6 (`features`)&#xA;   2. data:&#xA;      * [`...*byte`:`features`]&#xA;&#xA;That probably adds 6 bytes entry, but worth it I think.&#xA;&#xA;Cheers,&#xA;Rusty.&#xA;&#xA;[1] Add a new field to &#39;funding_locked&#39;: &#34;private_scid&#34;.  If both sides&#xA;    support &#39;option_private_scid&#39; (?) then the &#34;real&#34; scid is no longer&#xA;    valid for routing, and we use the private scid.&#xA;&#xA;[2] It&#39;s enough to give the scid(s) in this case indicating where you&#xA;    have incoming capacity.&#xA;&#xA;[3] I&#39;m really starting to dislike my bolt11 format.  We should probably&#xA;    start afresh with a TLV-based one, where signature covers the hash&#xA;    of each entry (so they can be easily externalized!), but that&#39;s a&#xA;    big, unrelated task.</html></oembed>