diff --git a/.aspell.en.pws b/.aspell.en.pws index b8db9b4ce..8265be213 100644 --- a/.aspell.en.pws +++ b/.aspell.en.pws @@ -394,4 +394,3 @@ pkh kB unblind unblinded -tailer diff --git a/04-onion-routing.md b/04-onion-routing.md index e4c527c76..7dd4b466a 100644 --- a/04-onion-routing.md +++ b/04-onion-routing.md @@ -1417,13 +1417,13 @@ The _origin node_: Onion messages allow peers to use existing connections to query for invoices (see [BOLT 12](12-offer-encoding.md)). Like gossip messages, they are not associated with a particular local channel. Like HTLCs, -they use [onion messages](#onion-message-payload-format) protocol for +they use [onion messages](#onion-messages) protocol for end-to-end encryption. Onion messages use the same form as HTLC `onion_packet`, with a slightly more flexible format: instead of 1300 byte payloads, the payload length is implied by the total length (minus 66 bytes for the -header and tailer). The `onionmsg_payloads` themselves are the same +header and trailing bytes). The `onionmsg_payloads` themselves are the same as the `hop_payloads` format, except there is no "legacy" length: a 0 `length` would mean an empty `onionmsg_payload`. @@ -1457,7 +1457,7 @@ For consistency, all onion messages use [Route Blinding](#route-blinding). * `filler` The `onionmsg_tlv` itself is a TLV: an intermediate node expects an -`encrypted_tlv_stream` which it can decrypt into an `encrypted_data_tlv` +`encrypted_data` which it can decrypt into an `encrypted_data_tlv` using the `blinding` which it is handed along with the onion message. Field numbers 64 and above are reserved for payloads for the final @@ -1502,8 +1502,7 @@ The writer: - MUST construct the `onion_message_packet` `onionmsg_payloads` as detailed above using Sphinx. - MUST NOT use any `associated_data` in the Sphinx construcion. - SHOULD set `onion_message_packet` `len` to 1366 or 32834. -- SHOULD retry via a different path if it expects a response and - doesn't receive one after a reasonable period. +- SHOULD retry via a different path if it expects a response and doesn't receive one after a reasonable period. - For the non-final nodes' `onionmsg_tlv`: - MUST NOT set `reply_path` - For the final node's `onionmsg_tlv`: @@ -1516,7 +1515,6 @@ The writer: - MAY use `path_id` to contain a secret so it can recognize use of this `reply_path`. - otherwise: - MUST NOT set `reply_path`. -- SHOULD retry via a different route if it expects a response and doesn't receive one after a reasonable period. The reader: @@ -1528,7 +1526,7 @@ The reader: - if `encrypted_data_tlv` contains `allowed_features`: - MUST ignore the message if: - `encrypted_data_tlv.allowed_features.features` contains an unknown feature bit (even if it is odd). - - the payment uses a feature not included in `encrypted_data_tlv.allowed_features.features`. + - the message uses a feature not included in `encrypted_data_tlv.allowed_features.features`. - if it is not the final node according to the onion encryption: - if the `onionmsg_tlv` contains other tlv fields than `encrypted_recipient_data`: - MUST ignore the message. @@ -1575,7 +1573,7 @@ implementations a little, and makes it more difficult to distinguish onion messages. `len` allows larger messages to be sent than the standard 1300 bytes -allowed for an HTLC onion, but this should be used sparingly as it is +allowed for an HTLC onion, but this should be used sparingly as it reduces the anonymity set, hence the recommendation that it either looks like an HTLC onion, or if larger, be a fixed size. diff --git a/bolt04/blinded-onion-message-onion-test.json b/bolt04/blinded-onion-message-onion-test.json index 89593a09c..f66660cc7 100644 --- a/bolt04/blinded-onion-message-onion-test.json +++ b/bolt04/blinded-onion-message-onion-test.json @@ -86,6 +86,7 @@ "blinding": "031195a8046dcbb8e17034bca630065e7a0982e4e36f6f7e5a8d4554e4846fcd99", "hops": [ { + "blinded_node_id": "02d1c3d73f8cac67e7c5b6ec517282d5ba0a52b06a29ec92ff01e12decf76003c1", "encrypted_recipient_data": "49531cf38d3280b7f4af6d6461a2b32e3df50acfd35176fc61422a1096eed4dfc3806f29bf74320f712a61c766e7f7caac0c42f86040125fbaeec0c7613202b206dbdd31fda56394367b66a711bfd7d5bedbe20bed1b" }, { @@ -133,8 +134,8 @@ "privkey": "4444444444444444444444444444444444444444444444444444444444444444", "onion_message": "0201025aaca62db7ce6b46386206ef9930daa32e979a35cb185a41cb951aa7d254b03c055600025550b2910294fa73bda99b9de9c851be9cbb481e23194a1743033630efba546b86e7d838d0f6e9cc0ed088dbf6889f0dceca3bfc745bd77d013a31311fa932a8bf1d28387d9ff521eabc651dee8f861fed609a68551145a451f017ec44978addeee97a423c08445531da488fd1ddc998e9cdbfcea59517b53fbf1833f0bbe6188dba6ca773a247220ec934010daca9cc185e1ceb136803469baac799e27a0d82abe53dc48a06a55d1f643885cc7894677dd20a4e4152577d1ba74b870b9279f065f9b340cedb3ca13b7df218e853e10ccd1b59c42a2acf93f489e170ee4373d30ab158b60fc20d3ba73a1f8c750951d69fb5b9321b968ddc8114936412346aff802df65516e1c09c51ef19849ff36c0199fd88c8bec301a30fef0c7cb497901c038611303f64e4174b5daf42832aa5586b84d2c9b95f382f4269a5d1bd4be898618dc78dfd451170f72ca16decac5b03e60702112e439cadd104fb3bbb3d5023c9b80823fdcd0a212a7e1aaa6eeb027adc7f8b3723031d135a09a979a4802788bb7861c6cc85501fb91137768b70aeab309b27b885686604ffc387004ac4f8c44b101c39bc0597ef7fd957f53fc5051f534b10eb3852100962b5e58254e5558689913c26ad6072ea41f5c5db10077cfc91101d4ae393be274c74297da5cc381cd88d54753aaa7df74b2f9da8d88a72bc9218fcd1f19e4ff4aace182312b9509c5175b6988f044c5756d232af02a451a02ca752f3c52747773acff6fd07d2032e6ce562a2c42105d106eba02d0b1904182cdc8c74875b082d4989d3a7e9f0e73de7c75d357f4af976c28c0b206c5e8123fc2391d078592d0d5ff686fd245c0a2de2e535b7cca99c0a37d432a8657393a9e3ca53eec1692159046ba52cb9bc97107349d8673f74cbc97e231f1108005c8d03e24ca813cea2294b39a7a493bcc062708f1f6cf0074e387e7d50e0666ce784ef4d31cb860f6cad767438d9ea5156ff0ae86e029e0247bf94df75ee0cda4f2006061455cb2eaff513d558863ae334cef7a3d45f55e7cc13153c6719e9901c1d4db6c03f643b69ea4860690305651794284d9e61eb848ccdf5a77794d376f0af62e46d4835acce6fd9eef5df73ebb8ea3bb48629766967f446e744ecc57ff3642c4aa1ccee9a2f72d5caa75fa05787d08b79408fce792485fdecdc25df34820fb061275d70b84ece540b0fc47b2453612be34f2b78133a64e812598fbe225fd85415f8ffe5340ce955b5fd9d67dd88c1c531dde298ed25f96df271558c812c26fa386966c76f03a6ebccbca49ac955916929bd42e134f982dde03f924c464be5fd1ba44f8dc4c3cbc8162755fd1d8f7dc044b15b1a796c53df7d8769bb167b2045b49cc71e08908796c92c16a235717cabc4bb9f60f8f66ff4fff1f9836388a99583acebdff4a7fb20f48eedcd1f4bdcc06ec8b48e35307df51d9bc81d38a94992dd135b30079e1f592da6e98dff496cb1a7776460a26b06395b176f585636ebdf7eab692b227a31d6979f5a6141292698e91346b6c806b90c7c6971e481559cae92ee8f4136f2226861f5c39ddd29bbdb118a35dece03f49a96804caea79a3dacfbf09d65f2611b5622de51d98e18151acb3bb84c09caaa0cc80edfa743a4679f37d6167618ce99e73362fa6f213409931762618a61f1738c071bba5afc1db24fe94afb70c40d731908ab9a505f76f57a7d40e708fd3df0efc5b7cbb2a7b75cd23449e09684a2f0e2bfa0d6176c35f96fe94d92fc9fa4103972781f81cb6e8df7dbeb0fc529c600d768bed3f08828b773d284f69e9a203459d88c12d6df7a75be2455fec128f07a497a2b2bf626cc6272d0419ca663e9dc66b8224227eb796f0246dcae9c5b0b6cfdbbd40c3245a610481c92047c968c9fc92c04b89cc41a0c15355a8f", "tlvs": { - "path_id": "deadbeefbadc0ffeedeadbeefbadc0ffeedeadbeefbadc0ffeedeadbeefbadc0", - "unknown_tag_1": "68656c6c6f" + "unknown_tag_1": "68656c6c6f", + "encrypted_recipient_data": "bdc03f088764c6224c8f939e321bf096f363b2092db381fc8787f891c8e6dc9284991b98d2a63d9f91fe563065366dd406cd8e112cdaaa80d0e6" } } ]