lightning icon indicating copy to clipboard operation
lightning copied to clipboard

BOLT12: CLN 24.05 can't fetch invoice from offer generated by LDK (recipient node id hiding)

Open urza opened this issue 8 months ago • 1 comments

This is @TheBlueMatt public bolt12 offer (generated by LDK):

lno1qsgqmqvgm96frzdg8m0gc6nzeqffvzsqzrxqy32afmr3jn9ggkwg3egfwch2hy0l6jut6vfd8vpsc3h89l6u3dm4q2d6nuamav3w27xvdmv3lpgklhg7l5teypqz9l53hj7zvuaenh34xqsz2sa967yzqkylfu9xtcd5ymcmfp32h083e805y7jfd236w9afhavqqvl8uyma7x77yun4ehe9pnhu2gekjguexmxpqjcr2j822xr7q34p078gzslf9wpwz5y57alxu99s0z2ql0kfqvwhzycqq45ehh58xnfpuek80hw6spvwrvttjrrq9pphh0dpydh06qqspp5uq4gpyt6n9mwexde44qv7lstzzq60nr40ff38u27un6y53aypmx0p4qruk2tf9mjwqlhxak4znvna5y

my CLN 24.05 can decode it as:

{
   "type": "bolt12 offer",
   "offer_id": "3886557814d09f89514b881433ad4dec732890ee0834164ce08a16b2156b7460",
   "offer_metadata": "0d8188d9749189a83ede8c6a62c81296",
   "offer_description": "",
   "offer_paths": [
      {
         "first_node_id": "02455d4ec7194ca8459c88e509762eab91ffd4b8bd312d3b030c46e72ff5c8b775",
         "blinding": "029ba9f3bbeb22e578cc6ed91f8516fdd1efd179204022fe91bcbc2673b99de353",
         "path": [
            {
               "blinded_node_id": "02543a5d78820589f4f0a65e1b426f1b4862abbcf1c9df427a496aa3a717a9bf58",
               "encrypted_recipient_data": "e7e137df1bde27275cdf250cefc523369239936cc104b03548ea5187e046a17f8e8143e92b82e15094f77e6e14b078940fbec9"
            },
            {
               "blinded_node_id": "031d71130005699bde8734d21e66c77ddda8058e1b16b90c6028437bbda1236efd",
               "encrypted_recipient_data": "0869c0550122f532edd933735a819efc"
            }
         ]
      }
   ],
   "offer_node_id": "034f98eaf4a627e2bdc9e8948f481d99e1a807cb29692ee4e07ee6edaa29b27da1",
   "valid": true
}

But when I try to fetch the invoice, it ends with error:

{
   "code": 1003,
   "message": "Failed: could not route, could not connect: {\"code\":400,\"message\":\"Unable to connect, no address known for peer\"}"
}

Also I really like how the offer hides the recipient node id: "offer_node_id": "034f98eaf4a627e2bdc9e8948f481d99e1a807cb29692ee4e07ee6edaa29b27da1", This is not public node according to my node.

How does that work? Is that private channel? Even if this might not be perfect privacy, not having the node id explicitly in the offer directly would be very nice small privacy gain.

cc @rustyrussell @vincenzopalazzo

urza avatar Jun 16 '24 17:06 urza