From 7589dd8e896eb2e3d206a05abb8a8c654057b693 Mon Sep 17 00:00:00 2001 From: t-bast Date: Tue, 16 Jul 2024 14:19:43 +0200 Subject: [PATCH] Trampoline payment to blinded paths When paying a Bolt 12 invoice, the payer may use a trampoline node to relay that payment. The payer simply includes some of the blinded paths in the payload for the last trampoline node, who will relay to those blinded paths. That last trampoline node doesn't learn anything about the final recipient. Note that this commit depends on Bolt 12: it references a few types that are introduced in various commits related to Bolt 12 (`blinded_path` and `blinded_payinfo`), which can be confusing since Bolt 12 spec is still in progress. I will clean this up once Bolt 12 is finalized. --- 04-onion-routing.md | 56 ++++-- ...ne-to-blinded-path-payment-onion-test.json | 180 ++++++++++++++++++ 2 files changed, 219 insertions(+), 17 deletions(-) create mode 100644 bolt04/trampoline-to-blinded-path-payment-onion-test.json diff --git a/04-onion-routing.md b/04-onion-routing.md index 1fff75298..d182c0cbb 100644 --- a/04-onion-routing.md +++ b/04-onion-routing.md @@ -223,6 +223,17 @@ This is formatted according to the Type-Length-Value format defined in [BOLT #1] * [`point`:`public_key`] * [`...*byte`:`hop_payloads`] * [`32*byte`:`hmac`] + 1. type: 21 (`recipient_features`) + 2. data: + * [`...*byte`:`features`] + 1. type: 22 (`recipient_blinded_paths`) + 2. data: + * [`...*payment_blinded_path`:`paths`] + +1. subtype: `payment_blinded_path` +2. data: + * [`path`:`blinded_path`] + * [`blinded_payinfo`:`payment_info`] `short_channel_id` is the ID of the outgoing channel used to route the message; the receiving peer should operate the other end of this channel. @@ -613,7 +624,8 @@ delegate the construction of parts of the route to trampoline nodes. The origin node only needs to select a set of trampoline nodes and to know a route to the first trampoline node. Each trampoline node is responsible for finding its own route to the next trampoline node. The last trampoline node -must be the final recipient. +must be the final recipient, or it must receive a list of blinded paths to +which it should relay the payment. The `trampoline_onion_packet` has a variable size to allow implementations to choose their own trade-off between flexibility and privacy. It's recommended to @@ -629,29 +641,39 @@ requirements contained in the onion. A sending node: -- If the invoice doesn't support the `trampoline_routing` feature: - - MUST NOT use trampoline routing to pay that invoice -- MUST ensure that each hop in the `trampoline_onion_packet` supports `trampoline_routing` -- MUST encrypt the `trampoline_onion_packet` with the same construction as `onion_packet` -- MAY add trailing filler data similar to what is done in the `onion_packet` -- MUST use a different `session_key` for the `trampoline_onion_packet` and the `onion_packet` -- MUST include the `trampoline_onion_packet` tlv in the _last_ hop's payload of the `onion_packet` -- MUST include the invoice's `payment_secret` in the _last_ hop's payload of the `trampoline_onion_packet` -- MUST generate a different `payment_secret` to use in the outer onion +- When paying a Bolt 11 invoice: + - If the invoice doesn't support the `trampoline_routing` feature: + - MUST NOT use trampoline routing to pay that invoice. + - MUST include the invoice's `payment_secret` in the _last_ hop's payload of the `trampoline_onion_packet`. +- When paying a Bolt 12 invoice: + - In the _last_ hop's payload of the `trampoline_onion_packet`: + - MUST include blinded paths from the invoice in `recipient_blinded_paths`. + - MAY include features supported by the recipient in `recipient_features`. + - If the invoice contains too many blinded paths: + - MUST include a subset of those paths without overflowing the `trampoline_onion_packet` or `onion_packet`. +- MUST ensure that each hop in the `trampoline_onion_packet` supports `trampoline_routing`. +- MUST encrypt the `trampoline_onion_packet` with the same construction as `onion_packet`. +- MAY add trailing filler data similar to what is done in the `onion_packet`. +- MUST use a different `session_key` for the `trampoline_onion_packet` and the `onion_packet`. +- MUST include the `trampoline_onion_packet` tlv in the _last_ hop's payload of the `onion_packet`. +- MUST generate a random `payment_secret` to use in the outer onion. When processing a `trampoline_onion_packet`, a receiving node: - If it doesn't support `trampoline_routing`: - - MUST report a route failure to the origin node + - MUST report a route failure to the origin node. - Otherwise, if it supports `trampoline_routing`: - - MUST process the `trampoline_onion_packet` as an `onion_packet` - - MUST fail the HTLC if dictated by the requirements under [Failure Messages](#failure-messages) - - MUST compute a route to the next trampoline node - - MUST include the peeled `trampoline_onion_packet` in the `hop_payload` for the next trampoline node + - MUST process the `trampoline_onion_packet` as an `onion_packet`. - If the incoming payment is a multi-part payment: - - MUST wait to receive all the payment parts before forwarding + - MUST wait to receive all the payment parts before forwarding. + - MUST fail the HTLC if dictated by the requirements under [Failure Messages](#failure-messages). + - If the `hop_payload` from the `trampoline_onion_packet` contains `recipient_blinded_paths`: + - MUST use those blinded paths to compute routes to the final recipient. + - Otherwise: + - MUST compute a route to the next trampoline node. + - MUST include the peeled `trampoline_onion_packet` in the `hop_payload` for the next trampoline node. - If it uses a multi-part payment to forward to the next trampoline node: - - MUST generate a new `payment_secret` to use in the outer onion + - MUST generate a new `payment_secret` to use in the outer onion. # Accepting and Forwarding a Payment diff --git a/bolt04/trampoline-to-blinded-path-payment-onion-test.json b/bolt04/trampoline-to-blinded-path-payment-onion-test.json new file mode 100644 index 000000000..e86ddad3a --- /dev/null +++ b/bolt04/trampoline-to-blinded-path-payment-onion-test.json @@ -0,0 +1,180 @@ +{ + "comment": "test vector for a trampoline payment to a blinded path created by Eve, using Bob as intermediate trampoline node", + "generate_blinded_path_eve": { + "comment": "Eve creates a blinded path Dave -> Eve", + "introduction_node_id": "032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991", + "blinding": "02988face71e92c345a068f740191fd8e53be14f0bb957ef730d3c5f76087b960e", + "hops": [ + { + "alias": "Dave", + "blinded_node_id": "0295d40514096a8be54859e7dfe947b376eaafea8afe5cb4eb2c13ff857ed0b4be", + "tlvs": { + "short_channel_id": "572330x42x6601", + "payment_relay": { + "cltv_expiry_delta": 144, + "fee_proportional_millionths": 1000, + "fee_base_msat": 100 + }, + "payment_constraints": { + "max_cltv_expiry": 852317, + "htlc_minimum_msat": 1 + } + }, + "encoded_tlvs": "020808bbaa00002a19c9 0a070090000003e864 0c05000d015d01", + "encrypted_data": "0ae636dc5963bcfe3a2f055c8b8f6d2c5cd818362032404a6e35995ba57e101eac7e5fa04bb33a8920f1" + }, + { + "alias": "Eve", + "blinded_node_id": "020e2dbadcc2005e859819ddebbe88a834ae8a6d2b049233c07335f15cd1dc5f22", + "tlvs": { + "path_id": "599f23211c85fa3369f0142a1ee0bad2ac96ae9d958cae5e009af491339e004078b6323e4be93cacfea153508b22ea03c20be28687adb30438bb8a8ac110907763d40d0b668c15292e" + }, + "encoded_tlvs": "0649599f23211c85fa3369f0142a1ee0bad2ac96ae9d958cae5e009af491339e004078b6323e4be93cacfea153508b22ea03c20be28687adb30438bb8a8ac110907763d40d0b668c15292e", + "encrypted_data": "bc211f6ccd409888ca8ab027a5f21d229f9e18ff02cc1161a8344c91bdefc742d221db962561d528ec8f910cf9affeca95a6a9101c3ecd53953fe126a2d780acf9d49304e4bc5499d2a9219171786048c5f1b1e19d27d55ed28f8d" + } + ] + }, + "generate_trampoline_onion": { + "comment": "The payer creates a trampoline onion for Bob containing the blinded path and blinded payment information", + "amt_to_forward": 150000000, + "outgoing_cltv": 850000, + "recipient_blinded_paths": [ + { + "blinded_path": { + "introduction_node_id": "032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991", + "blinding": "02988face71e92c345a068f740191fd8e53be14f0bb957ef730d3c5f76087b960e", + "hops": [ + { + "blinded_node_id": "0295d40514096a8be54859e7dfe947b376eaafea8afe5cb4eb2c13ff857ed0b4be", + "encrypted_data": "0ae636dc5963bcfe3a2f055c8b8f6d2c5cd818362032404a6e35995ba57e101eac7e5fa04bb33a8920f1" + }, + { + "blinded_node_id": "020e2dbadcc2005e859819ddebbe88a834ae8a6d2b049233c07335f15cd1dc5f22", + "encrypted_data": "bc211f6ccd409888ca8ab027a5f21d229f9e18ff02cc1161a8344c91bdefc742d221db962561d528ec8f910cf9affeca95a6a9101c3ecd53953fe126a2d780acf9d49304e4bc5499d2a9219171786048c5f1b1e19d27d55ed28f8d" + } + ] + }, + "payment_info": { + "fee_base_msat": 100, + "fee_proportional_millionths": 1000, + "cltv_expiry_delta": 144, + "min_htlc_msat": 1, + "max_htlc_msat": 500000000 + } + } + ], + "recipient_features": [ + "trampoline_routing", + "basic_mpp" + ], + "encoded_tlvs": "fd0143 020408f0d180 04030cf850 15080200000000020000 16fd012a032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e66868099102988face71e92c345a068f740191fd8e53be14f0bb957ef730d3c5f76087b960e020295d40514096a8be54859e7dfe947b376eaafea8afe5cb4eb2c13ff857ed0b4be002a0ae636dc5963bcfe3a2f055c8b8f6d2c5cd818362032404a6e35995ba57e101eac7e5fa04bb33a8920f1020e2dbadcc2005e859819ddebbe88a834ae8a6d2b049233c07335f15cd1dc5f22005bbc211f6ccd409888ca8ab027a5f21d229f9e18ff02cc1161a8344c91bdefc742d221db962561d528ec8f910cf9affeca95a6a9101c3ecd53953fe126a2d780acf9d49304e4bc5499d2a9219171786048c5f1b1e19d27d55ed28f8d00000064000003e800900000000000000001000000001dcd65000000", + "trampoline_node_id": "0324653eac434488002cc06bbfb7f10fe18991e35f9fe4302dbea6d2353dc0ab1c", + "session_key": "a34db18a6bfa9b3c61fee3add30623592b8a4c5ffe2e683cdd2c84091aed553f", + "associated_data": "83c243fb941d31a669f095938ec8a3d1a45e0825d85a27cad3db860a3b42aca3", + "trampoline_onion": "000203e4fcc99e43ac7e68989be97b18b868f9fbf110314c901d40101ea1416b8e99e5c0fbb45fc48909e880fa9e653931e98b9714a3ae5552d843e4415f2ca93edc8880bf95dd918be9ed70cbafd74e875bd97337d8582961ddafca5b808cddfd523b99e65b00afcd97526c4ff926e1ec3795c227362ca85065cdfbec227e96b77c3764d7b7362ec0d2ae6611523e90cb9d311a8215a601ef5c18056c2a38da95060207da3619942e94693d9634fc4ddca7b4031012f4fd84d9d9371a18039161be3076208929009d051fcf10338be2edacac31feb64c039e82d4a08e27b7c35aceff8142288a536df963f8a939aa660eeb626cf22a0121ab0e4c1a0ee04977ac2f633fcf8d15998833b0f2f03e632f4f917ec43a15224c15d3d2faf9dc8b42152d6cb90793f15b62580abbcb0961cc8d1fe2a8ae2ea46dcdf71bcf73d20d00e5802515b6a80a5f59c7905cc45485e31c3ee63aeb1deff31c3b938d6910bbaca3ae3044167840da64dcf0e2c03ec933de8048d88ad9fe1701c13014f1f72025c4f2dc4f6166ebb73d2011d1a402240af53b6cedf1c7f266fdaaf18694709df7084f1c4c47fb94e5" + }, + "generate_payment_onion": { + "comment": "The payer creates a payment onion Alice -> Bob", + "session_key": "4f777e8dac16e6dfe333066d9efb014f7a51d11762ff76eca4d3a95ada99ba3e", + "associated_data": "83c243fb941d31a669f095938ec8a3d1a45e0825d85a27cad3db860a3b42aca3", + "hops": [ + { + "alias": "Alice", + "pubkey": "02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619", + "tlvs": { + "outgoing_channel_id": "572330x42x2465", + "amt_to_forward": 150151000, + "outgoing_cltv_value": 850250 + }, + "encoded_tlvs": "15 020408f31f58 04030cf94a 060808bbaa00002a09a1" + }, + { + "alias": "Bob", + "pubkey": "0324653eac434488002cc06bbfb7f10fe18991e35f9fe4302dbea6d2353dc0ab1c", + "tlvs": { + "amt_to_forward": 150151000, + "outgoing_cltv_value": 850250, + "payment_secret": "7494b65bc092b48a75465e43e29be807eb2cc535ce8aaba31012b8ff1ceac5da", + "total_amount_msat": 150151000, + "trampoline_onion": "000203e4fcc99e43ac7e68989be97b18b868f9fbf110314c901d40101ea1416b8e99e5c0fbb45fc48909e880fa9e653931e98b9714a3ae5552d843e4415f2ca93edc8880bf95dd918be9ed70cbafd74e875bd97337d8582961ddafca5b808cddfd523b99e65b00afcd97526c4ff926e1ec3795c227362ca85065cdfbec227e96b77c3764d7b7362ec0d2ae6611523e90cb9d311a8215a601ef5c18056c2a38da95060207da3619942e94693d9634fc4ddca7b4031012f4fd84d9d9371a18039161be3076208929009d051fcf10338be2edacac31feb64c039e82d4a08e27b7c35aceff8142288a536df963f8a939aa660eeb626cf22a0121ab0e4c1a0ee04977ac2f633fcf8d15998833b0f2f03e632f4f917ec43a15224c15d3d2faf9dc8b42152d6cb90793f15b62580abbcb0961cc8d1fe2a8ae2ea46dcdf71bcf73d20d00e5802515b6a80a5f59c7905cc45485e31c3ee63aeb1deff31c3b938d6910bbaca3ae3044167840da64dcf0e2c03ec933de8048d88ad9fe1701c13014f1f72025c4f2dc4f6166ebb73d2011d1a402240af53b6cedf1c7f266fdaaf18694709df7084f1c4c47fb94e5" + }, + "encoded_tlvs": "fd01dd 020408f31f58 04030cf94a 08247494b65bc092b48a75465e43e29be807eb2cc535ce8aaba31012b8ff1ceac5da08f31f58 14fd01a8000203e4fcc99e43ac7e68989be97b18b868f9fbf110314c901d40101ea1416b8e99e5c0fbb45fc48909e880fa9e653931e98b9714a3ae5552d843e4415f2ca93edc8880bf95dd918be9ed70cbafd74e875bd97337d8582961ddafca5b808cddfd523b99e65b00afcd97526c4ff926e1ec3795c227362ca85065cdfbec227e96b77c3764d7b7362ec0d2ae6611523e90cb9d311a8215a601ef5c18056c2a38da95060207da3619942e94693d9634fc4ddca7b4031012f4fd84d9d9371a18039161be3076208929009d051fcf10338be2edacac31feb64c039e82d4a08e27b7c35aceff8142288a536df963f8a939aa660eeb626cf22a0121ab0e4c1a0ee04977ac2f633fcf8d15998833b0f2f03e632f4f917ec43a15224c15d3d2faf9dc8b42152d6cb90793f15b62580abbcb0961cc8d1fe2a8ae2ea46dcdf71bcf73d20d00e5802515b6a80a5f59c7905cc45485e31c3ee63aeb1deff31c3b938d6910bbaca3ae3044167840da64dcf0e2c03ec933de8048d88ad9fe1701c13014f1f72025c4f2dc4f6166ebb73d2011d1a402240af53b6cedf1c7f266fdaaf18694709df7084f1c4c47fb94e5" + } + ], + "onion": "00025fd60556c134ae97e4baedba220a644037754ee67c54fd05e93bf40c17cbb733311a2f2b2025c4d37bacde67177cd220637c763cf022fe18d1fbfe41eb556dfc840af55a05f791e07a11adb72bcfe45ea1f9b62b28aee423596277c6e4bf044389d0faa97afce5285b2cfaa61f9aa142d7db0154f8a6f1fbdd0d00a639bf47c271201cf5045106d244cf39bb8959b7fc4be00b3e85dd2434c7b3c25aa61995556ca74bdad813844c7254c68dc4e7a1360b4c3b09a59204842db1f65b4ec70cdca48b56bd502682b4d4e443d83ff2349f6cf7e81853bb629ef657be3137c846c4e30ee063d479765625699648a86a25ee33759e0752b956204a7dd23368d76f8e6f7677dffdac059f6d8a5929891b1163190cbfacb37482097bc5f0c92284bc6d765fb1e93a8c39ab689e63589ccf7af70ac60ee0697997f4c28d9ac9236bc5cb409611dccbff94a06f8b5aa8589493da82d2f27b5344db2225c16a18da23025ed6661d17c096a3f8b0f882f24ec34c374da85276cffe3289fea45546cf57b4de45ad2a6e2735c6ff837be1ecd32591d3c0a78cf49be31d18d0b0d13d8f3f65f2536bc57095ecf0a542258292d14351db51c34f614de4e8307a3af0a3a881f94f9b31c497424d876f24a14aae2e717ee93cba64a91cf2def9feb58d1676a4a48524a631d154552af57d18907c85dc9f9dbff861da37843e7131a62585433ca60cee72b051479d9ec9799c7d251768b95c731bbd948565d76120a945fc6dc47cb04da217f7e60aff35ab3fd476e0a7512115a0d586151ef2dbe677bbde9fb18ecb5b9379d26be744687981fd2eab0f2fd295dbb5a5d81de7532f4909e42f3c0b6b0ad18bf6d1e9fe059646e73cad58041c13fa4109b79f362a1a7421daa173924ebd59550b98bda31fe4ceeb17ab9bf53924c89d280ac75ecdc0eb25ed4e56b81360f24e28e7813d790c73e30edc778e788376c37a28510421c3de0f8fb0edd83ba9774b63d03cb95ec7a3deca05783bbc92ca97df129d8fa2b7e7001d8abc84f448d140d4b7527c8e0f160078ac09ba614153fa9a68b38b9bab6ce5e74d65fe31c6a4caedb4b3b8c77cc37da9c88ba5c90f8c9f7b76068ae46bfd3ade84036de191300121d9078e8d9e5e0cc18122028f17edf37bb1d1b81cbe6ed8fe8530298a928e3119332bad209e66cef124be235a86bd0b212491bbf66e4fdb235df714372a4f579d1d28eb3757466e1001a20a5b429c1c63afa9add32c3e04d2d0d8a2760192d39332a1a98e3a7be3c07f29c538458c46d422e81b1977d7293b7d3561b49b7064d93eb688879fddbce84b31fcad0da43ffcc185d05b20327c3b49eff94751ada892b2997210bf11bae400b2f0b280e90c7d79d7d1fbaab67970b6a27fa1d1a3e35263b185253b1d062aa1aa46b87bd5da64c5d7c8464623ef5f64180169fc6f6ba03de46a899aa1e224d90aecce9b0b8db3960e7a1e19c8fc5a467398e36954baa18410a4eb86e17a954571f602e9cacc1ad4036983b1b88b69eecdd2d825142434d91d301f279ed708d655764cf96b0edd05216e8c245b6f85c400b2d7c105ad4a9791be09c522f87acc556491e6710d77201c0c3dda72508e3601f925245fae39505e355e5e4964f1eb8e3870ef87b01d2cea1714eb5735b98e88a9f2946a2e214bd84a779e52a06be2e9bf35ecb34dd72183d58a7876c2dc91ae57ee0c514cdaffc20d238faad07b82dda15f144d6b73f3da0518cb9f6b95fe8f54c35b76e1cbc2e23243b55b92ca51395f4fb5b4fb7234770a3bfddb6c161fd500899f089756026fe151de68e8f2108a48cd63a2862a0024ff9905555e5f1ccece1a81525f739f16f29b94432863686b920e665753405c156da14394f59fbd10bb2e306c237598f8762616025fe0427d242f7953ee76" + }, + "relay_payment_alice": { + "comment": "Alice receives the payment onion and relays it to Bob", + "alias": "Alice", + "node_privkey": "4141414141414141414141414141414141414141414141414141414141414141", + "onion": "00025fd60556c134ae97e4baedba220a644037754ee67c54fd05e93bf40c17cbb733311a2f2b2025c4d37bacde67177cd220637c763cf022fe18d1fbfe41eb556dfc840af55a05f791e07a11adb72bcfe45ea1f9b62b28aee423596277c6e4bf044389d0faa97afce5285b2cfaa61f9aa142d7db0154f8a6f1fbdd0d00a639bf47c271201cf5045106d244cf39bb8959b7fc4be00b3e85dd2434c7b3c25aa61995556ca74bdad813844c7254c68dc4e7a1360b4c3b09a59204842db1f65b4ec70cdca48b56bd502682b4d4e443d83ff2349f6cf7e81853bb629ef657be3137c846c4e30ee063d479765625699648a86a25ee33759e0752b956204a7dd23368d76f8e6f7677dffdac059f6d8a5929891b1163190cbfacb37482097bc5f0c92284bc6d765fb1e93a8c39ab689e63589ccf7af70ac60ee0697997f4c28d9ac9236bc5cb409611dccbff94a06f8b5aa8589493da82d2f27b5344db2225c16a18da23025ed6661d17c096a3f8b0f882f24ec34c374da85276cffe3289fea45546cf57b4de45ad2a6e2735c6ff837be1ecd32591d3c0a78cf49be31d18d0b0d13d8f3f65f2536bc57095ecf0a542258292d14351db51c34f614de4e8307a3af0a3a881f94f9b31c497424d876f24a14aae2e717ee93cba64a91cf2def9feb58d1676a4a48524a631d154552af57d18907c85dc9f9dbff861da37843e7131a62585433ca60cee72b051479d9ec9799c7d251768b95c731bbd948565d76120a945fc6dc47cb04da217f7e60aff35ab3fd476e0a7512115a0d586151ef2dbe677bbde9fb18ecb5b9379d26be744687981fd2eab0f2fd295dbb5a5d81de7532f4909e42f3c0b6b0ad18bf6d1e9fe059646e73cad58041c13fa4109b79f362a1a7421daa173924ebd59550b98bda31fe4ceeb17ab9bf53924c89d280ac75ecdc0eb25ed4e56b81360f24e28e7813d790c73e30edc778e788376c37a28510421c3de0f8fb0edd83ba9774b63d03cb95ec7a3deca05783bbc92ca97df129d8fa2b7e7001d8abc84f448d140d4b7527c8e0f160078ac09ba614153fa9a68b38b9bab6ce5e74d65fe31c6a4caedb4b3b8c77cc37da9c88ba5c90f8c9f7b76068ae46bfd3ade84036de191300121d9078e8d9e5e0cc18122028f17edf37bb1d1b81cbe6ed8fe8530298a928e3119332bad209e66cef124be235a86bd0b212491bbf66e4fdb235df714372a4f579d1d28eb3757466e1001a20a5b429c1c63afa9add32c3e04d2d0d8a2760192d39332a1a98e3a7be3c07f29c538458c46d422e81b1977d7293b7d3561b49b7064d93eb688879fddbce84b31fcad0da43ffcc185d05b20327c3b49eff94751ada892b2997210bf11bae400b2f0b280e90c7d79d7d1fbaab67970b6a27fa1d1a3e35263b185253b1d062aa1aa46b87bd5da64c5d7c8464623ef5f64180169fc6f6ba03de46a899aa1e224d90aecce9b0b8db3960e7a1e19c8fc5a467398e36954baa18410a4eb86e17a954571f602e9cacc1ad4036983b1b88b69eecdd2d825142434d91d301f279ed708d655764cf96b0edd05216e8c245b6f85c400b2d7c105ad4a9791be09c522f87acc556491e6710d77201c0c3dda72508e3601f925245fae39505e355e5e4964f1eb8e3870ef87b01d2cea1714eb5735b98e88a9f2946a2e214bd84a779e52a06be2e9bf35ecb34dd72183d58a7876c2dc91ae57ee0c514cdaffc20d238faad07b82dda15f144d6b73f3da0518cb9f6b95fe8f54c35b76e1cbc2e23243b55b92ca51395f4fb5b4fb7234770a3bfddb6c161fd500899f089756026fe151de68e8f2108a48cd63a2862a0024ff9905555e5f1ccece1a81525f739f16f29b94432863686b920e665753405c156da14394f59fbd10bb2e306c237598f8762616025fe0427d242f7953ee76", + "next_onion": "0002a5c5117659e9d05d9eab8e301145dd25763b8b0adfea6ec9b3e804246d0a613fa3f1f18605a523ce7bcf19847ed26e5fc03797865cf53dcd3d7f969949cbf252a8673155f9c1f61ca3777855323fb5e9a263971a2625eccef78d7143356ad4b75743efb8cb8615eb5e8621397314b5fffd4a6a912f9186c5538a385f169160b1a19a5a0ad720be6317d0bb2dcf31c059a958814e82df7d854cb7b1e0f71ea1b5edb92d2c3d3c95b22b89033de88ca88d9ef5098069fe658097a78ae535b129524c99f4a68ae52b3ae771316352eac46cd22b8c2d5a3b01423e0d19bd602ef9081f80f54d938f3571046a70dfaf3a33c5eadb25d276b6d709a969ae0b305b173fca63eddecd12d06247aa0eb584db69477ebe18811d79dba1e593a7773b694a47b8b7470037236ed7a3761d8f5c4953bf913ff5d63ecac436065256e2d987789cf01014c32e67409d78105ce5854107a1d7dbb1569b17a2f375e8e70476dd3ccb0bf9e0fdf44008493e5a3a46316bf354e3312be83a45f22192f3c2dee7a9e1f50f9a78a303827921c7d82f00d6c9542b509718bad6dbc5752a0d31973b6efd0d740af62a4564b131a499597b1548f09d84d36e84616c95256cd1b697144f7fbb5b159a2b97c73342323425e19c1c3f1a641473a8f6a0a87756dd296231a07819ddc058b4c49763285bf9a336df80abf1ea13e9882985cceadf8fd2d8d603b2fd362c713c8c9eeeffa9649722d2ce473bc31d32e9bb3243942201f50aa658e53e7138dc65cff0b0f83ab474ad3c54dd4bf9571fc75f74b93f645add271a54653ef358b8539138dfe5006a65d2c07b1b076e1dcea82451e4480e4c75b678331e1fc7104155da3c65f6499282ee24655c17f3483d43bece8f286f2c287fe37dad033fef618fdd37826a75c140c4998fba610179694ae1002c8bdbde287051dc578108933f42a680dac2cab26d242500834aee5449941fab4828210ac040cc603b8f832aa723659cd36f40a464d40afff9534c00763c32d32aec8854719b84c50454ccea19431a43ddaa82f258a10946603ad8d62464e169272eff9a0a799982bc9d1674a86258b33c01ede6bde8317d4e16e139b635fc17697ca1853382ba8b06f5e75ecc3df494d1d4d7e796d7dd6458dc9c757b281598044ce2b730994564bc9395063cbd3148f3c07862408404ed9859e5ce74106e5a3c8e22ee04acd69b57fb9fdb3724417de69a822770da494720df5a96a7dd88207bc98676c246730f37bd6d8fb7c6f2f0e042bb6e4a4295d03e86aec88699578a6fb8c32e4a4cb4771cb749247bccc86a99213164f8fb1674714f7ac6bba03ed673eceda91206529a7cb2c74aae94888b0dc52ca19f3c75cc3d22cf435bff6a15bc865982e9351b0068c6dcc0d3a5fb7f6e08a4d69728af69a7b0165456eb5c833b2b59ad1f7be69796df7181cf520e94977dbf853e3cbdaae42326f788e02974185aae83e5aaf9eb9387063f4695a9eac95e54cf0330b76f23e047ee81e5b1e150427bee8d447b99e12c93e030288ee20ebdfa26b3bee3d0cd8d8ec8b570d5ff7fee81542eab66e2891320f0ba69e66646eaf2026856c12ebad540cdbb522e33b3df027e3c2a940c0325afca92fe3cda92207369130c0e0f945674238ab7373560f33d7d9ceeccff7d5b7a8a1ba0155f8389ee0a7940307a2a60ffd66ace3ecddc611d4fc373948d3e6ed8cc5c4c3b8f53b97658a073a2dd275da9ecd062bfe412d6905bb695c2640f95ef83db7bd04edd7f51a129685f8307211932569c8768a2c73c5b142d9759e185396d0214f6a596eb732c4c273e705b4afcd7ff2743dbf6f03a388e4182410d06623f5e55df2286cb92195adc7c204098fefab9094c4a350d6bc95598df03d09a51431bcdbc2474d938f35467c7cb6b4cb1661379" + }, + "decrypt_onion_bob": { + "comment": "Bob receives the payment onion and extracts the blinded path from the trampoline onion", + "alias": "Bob", + "node_privkey": "4242424242424242424242424242424242424242424242424242424242424242", + "onion": "0002a5c5117659e9d05d9eab8e301145dd25763b8b0adfea6ec9b3e804246d0a613fa3f1f18605a523ce7bcf19847ed26e5fc03797865cf53dcd3d7f969949cbf252a8673155f9c1f61ca3777855323fb5e9a263971a2625eccef78d7143356ad4b75743efb8cb8615eb5e8621397314b5fffd4a6a912f9186c5538a385f169160b1a19a5a0ad720be6317d0bb2dcf31c059a958814e82df7d854cb7b1e0f71ea1b5edb92d2c3d3c95b22b89033de88ca88d9ef5098069fe658097a78ae535b129524c99f4a68ae52b3ae771316352eac46cd22b8c2d5a3b01423e0d19bd602ef9081f80f54d938f3571046a70dfaf3a33c5eadb25d276b6d709a969ae0b305b173fca63eddecd12d06247aa0eb584db69477ebe18811d79dba1e593a7773b694a47b8b7470037236ed7a3761d8f5c4953bf913ff5d63ecac436065256e2d987789cf01014c32e67409d78105ce5854107a1d7dbb1569b17a2f375e8e70476dd3ccb0bf9e0fdf44008493e5a3a46316bf354e3312be83a45f22192f3c2dee7a9e1f50f9a78a303827921c7d82f00d6c9542b509718bad6dbc5752a0d31973b6efd0d740af62a4564b131a499597b1548f09d84d36e84616c95256cd1b697144f7fbb5b159a2b97c73342323425e19c1c3f1a641473a8f6a0a87756dd296231a07819ddc058b4c49763285bf9a336df80abf1ea13e9882985cceadf8fd2d8d603b2fd362c713c8c9eeeffa9649722d2ce473bc31d32e9bb3243942201f50aa658e53e7138dc65cff0b0f83ab474ad3c54dd4bf9571fc75f74b93f645add271a54653ef358b8539138dfe5006a65d2c07b1b076e1dcea82451e4480e4c75b678331e1fc7104155da3c65f6499282ee24655c17f3483d43bece8f286f2c287fe37dad033fef618fdd37826a75c140c4998fba610179694ae1002c8bdbde287051dc578108933f42a680dac2cab26d242500834aee5449941fab4828210ac040cc603b8f832aa723659cd36f40a464d40afff9534c00763c32d32aec8854719b84c50454ccea19431a43ddaa82f258a10946603ad8d62464e169272eff9a0a799982bc9d1674a86258b33c01ede6bde8317d4e16e139b635fc17697ca1853382ba8b06f5e75ecc3df494d1d4d7e796d7dd6458dc9c757b281598044ce2b730994564bc9395063cbd3148f3c07862408404ed9859e5ce74106e5a3c8e22ee04acd69b57fb9fdb3724417de69a822770da494720df5a96a7dd88207bc98676c246730f37bd6d8fb7c6f2f0e042bb6e4a4295d03e86aec88699578a6fb8c32e4a4cb4771cb749247bccc86a99213164f8fb1674714f7ac6bba03ed673eceda91206529a7cb2c74aae94888b0dc52ca19f3c75cc3d22cf435bff6a15bc865982e9351b0068c6dcc0d3a5fb7f6e08a4d69728af69a7b0165456eb5c833b2b59ad1f7be69796df7181cf520e94977dbf853e3cbdaae42326f788e02974185aae83e5aaf9eb9387063f4695a9eac95e54cf0330b76f23e047ee81e5b1e150427bee8d447b99e12c93e030288ee20ebdfa26b3bee3d0cd8d8ec8b570d5ff7fee81542eab66e2891320f0ba69e66646eaf2026856c12ebad540cdbb522e33b3df027e3c2a940c0325afca92fe3cda92207369130c0e0f945674238ab7373560f33d7d9ceeccff7d5b7a8a1ba0155f8389ee0a7940307a2a60ffd66ace3ecddc611d4fc373948d3e6ed8cc5c4c3b8f53b97658a073a2dd275da9ecd062bfe412d6905bb695c2640f95ef83db7bd04edd7f51a129685f8307211932569c8768a2c73c5b142d9759e185396d0214f6a596eb732c4c273e705b4afcd7ff2743dbf6f03a388e4182410d06623f5e55df2286cb92195adc7c204098fefab9094c4a350d6bc95598df03d09a51431bcdbc2474d938f35467c7cb6b4cb1661379", + "trampoline_tlvs": "fd0143 020408f0d180 04030cf850 15080200000000020000 16fd012a032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e66868099102988face71e92c345a068f740191fd8e53be14f0bb957ef730d3c5f76087b960e020295d40514096a8be54859e7dfe947b376eaafea8afe5cb4eb2c13ff857ed0b4be002a0ae636dc5963bcfe3a2f055c8b8f6d2c5cd818362032404a6e35995ba57e101eac7e5fa04bb33a8920f1020e2dbadcc2005e859819ddebbe88a834ae8a6d2b049233c07335f15cd1dc5f22005bbc211f6ccd409888ca8ab027a5f21d229f9e18ff02cc1161a8344c91bdefc742d221db962561d528ec8f910cf9affeca95a6a9101c3ecd53953fe126a2d780acf9d49304e4bc5499d2a9219171786048c5f1b1e19d27d55ed28f8d00000064000003e800900000000000000001000000001dcd65000000" + }, + "relay_payment_bob": { + "comment": "Bob received the blinded path and creates a payment onion for that blinded path using Carol to reach Dave", + "session_key": "e4acea94d5ddce1a557229bc39f8953ec1398171f9c2c6bb97d20152933be4c4", + "associated_data": "83c243fb941d31a669f095938ec8a3d1a45e0825d85a27cad3db860a3b42aca3", + "hops": [ + { + "alias": "Carol", + "pubkey": "027f31ebc5462c1fdce1b737ecff52d37d75dea43ce11c74d25aa297165faa2007", + "tlvs": { + "outgoing_channel_id": "572330x42x2821", + "amt_to_forward": 150150100, + "outgoing_cltv_value": 850144 + }, + "encoded_tlvs": "15 020408f31bd4 04030cf8e0 060808bbaa00002a0b05" + }, + { + "alias": "Dave", + "pubkey": "032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991", + "tlvs": { + "encrypted_recipient_data": "0ae636dc5963bcfe3a2f055c8b8f6d2c5cd818362032404a6e35995ba57e101eac7e5fa04bb33a8920f1", + "current_blinding": "02988face71e92c345a068f740191fd8e53be14f0bb957ef730d3c5f76087b960e" + }, + "encoded_tlvs": "4f 0a2a0ae636dc5963bcfe3a2f055c8b8f6d2c5cd818362032404a6e35995ba57e101eac7e5fa04bb33a8920f1 0c2102988face71e92c345a068f740191fd8e53be14f0bb957ef730d3c5f76087b960e" + }, + { + "alias": "blinded(Eve)", + "pubkey": "020e2dbadcc2005e859819ddebbe88a834ae8a6d2b049233c07335f15cd1dc5f22", + "tlvs": { + "amt_to_forward": 150000000, + "total_amount_msat": 150000000, + "outgoing_cltv_value": 850000, + "encrypted_recipient_data": "bc211f6ccd409888ca8ab027a5f21d229f9e18ff02cc1161a8344c91bdefc742d221db962561d528ec8f910cf9affeca95a6a9101c3ecd53953fe126a2d780acf9d49304e4bc5499d2a9219171786048c5f1b1e19d27d55ed28f8d" + }, + "encoded_tlvs": "6e 020408f0d180 04030cf850 0a5bbc211f6ccd409888ca8ab027a5f21d229f9e18ff02cc1161a8344c91bdefc742d221db962561d528ec8f910cf9affeca95a6a9101c3ecd53953fe126a2d780acf9d49304e4bc5499d2a9219171786048c5f1b1e19d27d55ed28f8d 120408f0d180" + } + ], + "onion": "0003626d5fa7ed0b8706f975ca58ae2c645889514153568aaab7835325ecd3739a57a55636d61c889380540bc4d2fcc62afec1457f72b8269483dbfa6ac258950a1250ca59ccdd60d40179bc39bf43e7490e748ba810beb63ec477a20096385613bf9272ce962af03fe382fe4bf115114a3aa51816621a340033794866defc398045518f53ff87d19baee2d6c695598a5dd9588fb37661b3391abc8763be47bfa0f18d998b18214e414d3c07219dee495d38e70a6d4ce326c8584edb78628550ca083ea6d3d11b2c7359a5aa0bd11a111fd853ca08b0095e2e8998daf55847c49a0578505194c9b64943cd42c25f311d65a29eb7094933b35ea50015024f400e6fd5b945665042ce5f9aab32815bfec4d06065024f54ef451c49886d39cbb1fb8dd9c2e6cddcd7c63737d16aa763133a3c54e7f419dfe37f960a89360a4ed24302812d30ac153a58417df5b17d599f494c89f45ea340dd7d6c2b91c424119254255498feb74dd79823f981f3192d2d618d405324814a8b6cd84b3eeb097569be756ea4f9c428efa3d01e149d772b77a8380a13d4bcb4391ae7be58034549edb2a1475367f736282dfaa81db15bcb74592b52a3055a6052e080adb4b2694e78d59ba49e23c315fa2975990caf4b8ad789ca9fb0b7ac4a18e3ab5de41cab52da22b7c85e0f7cd7aa39e0699a734e914b84ce9ebe74770c5fc0363359c016a5a9b16617e88832f2b63a938e6485b411f7b6357b26a01305381d4927aef7eb0fdc61ccc58b16c0a7888b75e904ed83de7f84576def067d8ce59beb42fb50f98c1122533af7fcb736eeabcd91540bd82cf232ad0e81e6f3ee533ac7a20654a854853b17d8e59567f3ba8f526fc537caae351426e0f3000b0fc5735b8ca199668f6562f8e1d8671318b99c55a5815e3977ab0da11dedf86cf43ef889edfbfaf29a09dde5fd88589ab29ba987acf428056c44a33f119b4f7e4a5c52aa6518ebbf7f043a8091525da9fc24132151faadb02f905cfbefba78d167637b2d7b52bb3afeba34849ccbe640807f78e392e94f45854af4761264dda201451d58383727ad2072e6735d90a406e5468984437365ffb51ea1f5c6027253e1a6731e9280676d6862698bf3c5037ce0161b55c9f0ea3b681d5c02c3d9c7437ddba5aa8156a4551faab7567d8355f49558133ef86bde75b88ab2e4290aebbc949c7d1b1d16f0c34d69b3b5034729f87a42c705d177b7910d34ad840bf9811d55d72f27eb6ea52ad3dff22a0337f1c5bf5302a50f79f063038e69f11d10a9ab5300a5023a190f4f6516f8002774819a2c24814c9e9f14c515b40b9390c5c092c8a4fdfebf13432b14d38a7916d119400e2f977f95dcc04f66e2a44e65cdcee0527bf0ff28bd2308a4c7a839708954a3206226b64ebee054e27aa92e70c51e1a4bb51d799a381bbd0cbcaa680bfe47c4b96e293f97baf894d1d03e74eec2326daf1837e7d14df67d251c71d4ca5d2fb69d6d170da51bdf0638bbe9ed6b340a2a2d88c0daf58149bdf6503c160807b33ed5500c0ab48ee7785211b5a6039ee5de04f6841e372979923f7063eae37c83e46f0f284054338e412601fcf458c3489b013bbbf234d471e5b359e4ba0bdaca7d4c5ae6639c90366299ad63b079ec499e2ae31fc3cb2b70f31dcec2d1b023a3e23288c0e5094467d5ec5f9af75526f707b2261f0381dbb3ce1689ac0af9f2151cf6069f7f84b3598219df680d26b7e143f095ba97838e652ae9621dcab3c932686653f0206917f2eccd7f34bfa099e6ed8139d1f366bd998880c785b3119714f903501556a7c83db85c33e54b705900aa185b22d52a68d40e40d425fb34de0100e09bda74f98ad828dc36341797f5ba4bb51e15effedefce67fa66828bba8e774c3e49cc160fec6134f2b686132fc6599d7" + }, + "relay_payment_carol": { + "comment": "Carol receives the payment onion and relays it to Dave", + "alias": "Carol", + "node_privkey": "4343434343434343434343434343434343434343434343434343434343434343", + "onion": "0003626d5fa7ed0b8706f975ca58ae2c645889514153568aaab7835325ecd3739a57a55636d61c889380540bc4d2fcc62afec1457f72b8269483dbfa6ac258950a1250ca59ccdd60d40179bc39bf43e7490e748ba810beb63ec477a20096385613bf9272ce962af03fe382fe4bf115114a3aa51816621a340033794866defc398045518f53ff87d19baee2d6c695598a5dd9588fb37661b3391abc8763be47bfa0f18d998b18214e414d3c07219dee495d38e70a6d4ce326c8584edb78628550ca083ea6d3d11b2c7359a5aa0bd11a111fd853ca08b0095e2e8998daf55847c49a0578505194c9b64943cd42c25f311d65a29eb7094933b35ea50015024f400e6fd5b945665042ce5f9aab32815bfec4d06065024f54ef451c49886d39cbb1fb8dd9c2e6cddcd7c63737d16aa763133a3c54e7f419dfe37f960a89360a4ed24302812d30ac153a58417df5b17d599f494c89f45ea340dd7d6c2b91c424119254255498feb74dd79823f981f3192d2d618d405324814a8b6cd84b3eeb097569be756ea4f9c428efa3d01e149d772b77a8380a13d4bcb4391ae7be58034549edb2a1475367f736282dfaa81db15bcb74592b52a3055a6052e080adb4b2694e78d59ba49e23c315fa2975990caf4b8ad789ca9fb0b7ac4a18e3ab5de41cab52da22b7c85e0f7cd7aa39e0699a734e914b84ce9ebe74770c5fc0363359c016a5a9b16617e88832f2b63a938e6485b411f7b6357b26a01305381d4927aef7eb0fdc61ccc58b16c0a7888b75e904ed83de7f84576def067d8ce59beb42fb50f98c1122533af7fcb736eeabcd91540bd82cf232ad0e81e6f3ee533ac7a20654a854853b17d8e59567f3ba8f526fc537caae351426e0f3000b0fc5735b8ca199668f6562f8e1d8671318b99c55a5815e3977ab0da11dedf86cf43ef889edfbfaf29a09dde5fd88589ab29ba987acf428056c44a33f119b4f7e4a5c52aa6518ebbf7f043a8091525da9fc24132151faadb02f905cfbefba78d167637b2d7b52bb3afeba34849ccbe640807f78e392e94f45854af4761264dda201451d58383727ad2072e6735d90a406e5468984437365ffb51ea1f5c6027253e1a6731e9280676d6862698bf3c5037ce0161b55c9f0ea3b681d5c02c3d9c7437ddba5aa8156a4551faab7567d8355f49558133ef86bde75b88ab2e4290aebbc949c7d1b1d16f0c34d69b3b5034729f87a42c705d177b7910d34ad840bf9811d55d72f27eb6ea52ad3dff22a0337f1c5bf5302a50f79f063038e69f11d10a9ab5300a5023a190f4f6516f8002774819a2c24814c9e9f14c515b40b9390c5c092c8a4fdfebf13432b14d38a7916d119400e2f977f95dcc04f66e2a44e65cdcee0527bf0ff28bd2308a4c7a839708954a3206226b64ebee054e27aa92e70c51e1a4bb51d799a381bbd0cbcaa680bfe47c4b96e293f97baf894d1d03e74eec2326daf1837e7d14df67d251c71d4ca5d2fb69d6d170da51bdf0638bbe9ed6b340a2a2d88c0daf58149bdf6503c160807b33ed5500c0ab48ee7785211b5a6039ee5de04f6841e372979923f7063eae37c83e46f0f284054338e412601fcf458c3489b013bbbf234d471e5b359e4ba0bdaca7d4c5ae6639c90366299ad63b079ec499e2ae31fc3cb2b70f31dcec2d1b023a3e23288c0e5094467d5ec5f9af75526f707b2261f0381dbb3ce1689ac0af9f2151cf6069f7f84b3598219df680d26b7e143f095ba97838e652ae9621dcab3c932686653f0206917f2eccd7f34bfa099e6ed8139d1f366bd998880c785b3119714f903501556a7c83db85c33e54b705900aa185b22d52a68d40e40d425fb34de0100e09bda74f98ad828dc36341797f5ba4bb51e15effedefce67fa66828bba8e774c3e49cc160fec6134f2b686132fc6599d7", + "next_onion": "00022c856b5f3267790702109245f11a590515d6df8d8f7bf05528d9185b83ddf80417c9e5dbf700a4bc9c20c2b955ed41ab3d229c90d244838c4b61c0a92908efb7bef79b811c7105291b002d7a1389ee70dc97ccb646ac73aba9fc7c1e522c7aa53ad1d946926551864a9b3e49345c1580e2eb880425a7d622b652182a283c4cb79e8260aa7d00a219fa8de7eca0fcf6b7499df7fc58cbc51aab7c86698541ee37fb0111d7d527ac1049ba0f185b4d96c8743867c8e6c90638de9b27d72cfeecbac751785371b039e963f8c22e8c3350326d40ba283eeed5fffc731d4cb633df958a293faab3737a8edfbc7c210d5c9c2bfa7280cfd955696de69d7409d0741d352ad2d9ebe2d303bbbcb779b23871e262d30748eb378736784b4645cf9b9c2c6619ffbb9db4cd5fe15e2f9f545fc97d76c124711d1cc3873abe189c9bf60a6f349104102c85c0c648c33b74e6edd08266d611d402e44a9ee17f896f4c219e4a9e018bfde7fd9c522457ca598ee1a9aa7499ea1227ab02072b5eb55164debb09b4bbcc4f0a0737f114d3674557796e116fef25ed674972dfcb3762891ff3423550b7443e91cb7371300d47f2c22d955bd585a33665e428c3f47e23d6b4ef72cf86eb135a4429842d0ffb680632ac667b3879753a25c83eab4686fd84d190f9bdee5d180be6c41c2f5ba5f1ed303bb56cd56102b526512a48e8f9f697713ae7c5c723207f6689108bfead086dca7465340ef5ca664dd56a5a8d67b814b1793c8b69f8b99a22f685adc4558d483fc66851b0264c063eb1d8babc79a65bc4b62dc5c908e0dffb2dcb97161e029c51ad1b6b7f7eb20c967fb57e86257e7f10979a49ce62875f7f807fdcf5b3d5f4b70752ddc774f9c61143436c3441fe0fbe79d4f973d907e84fbc08c1987ca8c60fa23c1fbd9e3adafd3181438ff18bd9c5644ffe53d01a01f6564b2c436eeaee7bd2786b89447709e444097d451c8a67f797671db19dfa2a4cb276bd4b8066c10e605722a6998d034c7e1c14698ee8c6ee18846e5412c2af63897c8a2ad0d93d3998b3cc4b32ba7f51c7b0d088b77a24a5893c71f5e8c46e30e4e55464db4528da50a843b408b28c6301541a2a6f56f8f7a780a7d930f03ab90e1e79b8ad185c577dd998a84fa8847a636e53618f50c2956e279f212e304cc5f7ac48eaac4083330a1aae029e0e24155bb06d9795dd9e4e92b7b690f5bbaf558e61c9fae4a7d35671979d5a5a735746ee73969a1beb432bf9610a7bce40b6dabcf66c14796be880d49c68d32b3f9d8f15a3c580d9af5c2e9bee21273b930c355be152cfe3c72b895f12a1249cdef1be513fe681f942ab3ae10c8518516a82b70193e158cd059f6be80b61b3a7ff8ca52b9cf8a6c285f45f3a1ad4199bc81dfbe72d9b0bc19808fb55f031d4f448c309aa47b086398ea7c115a3b2a70933066c78d49b0cf60a65fe492963b6d33a8359cb8c4c5608d7d83e5ef6914b1ab551eda74490ef8081a3a297334e8f8ce72f71a7723798c5b6b56f9eefb7eab14033c22ddc4074551729e29da9214ee7cffb8683464805be6d1e84d4d0ca18231572d9b31687cc62b763016a903ff00fe9f9745d3823d9b711120ab6cd69f52779009f004ed10435493af8e2452f5a30ead772943ab71c765ecfe250783503f3bcd2fb3fc8585955a8edcd77b9ab2510ff2ca1fa1b2c1f7ee53d6e845523b3ebd3db4d1add41c21a08b9ffdedba83efadb3a7e6d148ae06528ca7d5f4a8dc39e436efcede3a99b34cfc6c4d5f6c767c6bc95e28dbfebc3cfbfc87b70cf3092a777abb8e07586b2c1d89f82b573abec1bec779dd8fcc174587fd45cdee8a4df528482b36d1cf81c02815797e07a1f906a56907504f094989827f0dae8922d7528e31e071c6240a4890224cf6a90b660ac1e951d" + }, + "relay_payment_dave": { + "comment": "Dave receives the payment onion containing the blinding point and encrypted data and relays it to Eve.", + "alias": "Dave", + "node_privkey": "4444444444444444444444444444444444444444444444444444444444444444", + "onion": "00022c856b5f3267790702109245f11a590515d6df8d8f7bf05528d9185b83ddf80417c9e5dbf700a4bc9c20c2b955ed41ab3d229c90d244838c4b61c0a92908efb7bef79b811c7105291b002d7a1389ee70dc97ccb646ac73aba9fc7c1e522c7aa53ad1d946926551864a9b3e49345c1580e2eb880425a7d622b652182a283c4cb79e8260aa7d00a219fa8de7eca0fcf6b7499df7fc58cbc51aab7c86698541ee37fb0111d7d527ac1049ba0f185b4d96c8743867c8e6c90638de9b27d72cfeecbac751785371b039e963f8c22e8c3350326d40ba283eeed5fffc731d4cb633df958a293faab3737a8edfbc7c210d5c9c2bfa7280cfd955696de69d7409d0741d352ad2d9ebe2d303bbbcb779b23871e262d30748eb378736784b4645cf9b9c2c6619ffbb9db4cd5fe15e2f9f545fc97d76c124711d1cc3873abe189c9bf60a6f349104102c85c0c648c33b74e6edd08266d611d402e44a9ee17f896f4c219e4a9e018bfde7fd9c522457ca598ee1a9aa7499ea1227ab02072b5eb55164debb09b4bbcc4f0a0737f114d3674557796e116fef25ed674972dfcb3762891ff3423550b7443e91cb7371300d47f2c22d955bd585a33665e428c3f47e23d6b4ef72cf86eb135a4429842d0ffb680632ac667b3879753a25c83eab4686fd84d190f9bdee5d180be6c41c2f5ba5f1ed303bb56cd56102b526512a48e8f9f697713ae7c5c723207f6689108bfead086dca7465340ef5ca664dd56a5a8d67b814b1793c8b69f8b99a22f685adc4558d483fc66851b0264c063eb1d8babc79a65bc4b62dc5c908e0dffb2dcb97161e029c51ad1b6b7f7eb20c967fb57e86257e7f10979a49ce62875f7f807fdcf5b3d5f4b70752ddc774f9c61143436c3441fe0fbe79d4f973d907e84fbc08c1987ca8c60fa23c1fbd9e3adafd3181438ff18bd9c5644ffe53d01a01f6564b2c436eeaee7bd2786b89447709e444097d451c8a67f797671db19dfa2a4cb276bd4b8066c10e605722a6998d034c7e1c14698ee8c6ee18846e5412c2af63897c8a2ad0d93d3998b3cc4b32ba7f51c7b0d088b77a24a5893c71f5e8c46e30e4e55464db4528da50a843b408b28c6301541a2a6f56f8f7a780a7d930f03ab90e1e79b8ad185c577dd998a84fa8847a636e53618f50c2956e279f212e304cc5f7ac48eaac4083330a1aae029e0e24155bb06d9795dd9e4e92b7b690f5bbaf558e61c9fae4a7d35671979d5a5a735746ee73969a1beb432bf9610a7bce40b6dabcf66c14796be880d49c68d32b3f9d8f15a3c580d9af5c2e9bee21273b930c355be152cfe3c72b895f12a1249cdef1be513fe681f942ab3ae10c8518516a82b70193e158cd059f6be80b61b3a7ff8ca52b9cf8a6c285f45f3a1ad4199bc81dfbe72d9b0bc19808fb55f031d4f448c309aa47b086398ea7c115a3b2a70933066c78d49b0cf60a65fe492963b6d33a8359cb8c4c5608d7d83e5ef6914b1ab551eda74490ef8081a3a297334e8f8ce72f71a7723798c5b6b56f9eefb7eab14033c22ddc4074551729e29da9214ee7cffb8683464805be6d1e84d4d0ca18231572d9b31687cc62b763016a903ff00fe9f9745d3823d9b711120ab6cd69f52779009f004ed10435493af8e2452f5a30ead772943ab71c765ecfe250783503f3bcd2fb3fc8585955a8edcd77b9ab2510ff2ca1fa1b2c1f7ee53d6e845523b3ebd3db4d1add41c21a08b9ffdedba83efadb3a7e6d148ae06528ca7d5f4a8dc39e436efcede3a99b34cfc6c4d5f6c767c6bc95e28dbfebc3cfbfc87b70cf3092a777abb8e07586b2c1d89f82b573abec1bec779dd8fcc174587fd45cdee8a4df528482b36d1cf81c02815797e07a1f906a56907504f094989827f0dae8922d7528e31e071c6240a4890224cf6a90b660ac1e951d", + "next_onion": "00022b07f6ba00ad14c16877f148c9359b618486ce2f2a668c01bea57992bc2e7f8c7f8f99cf33fbe7b8c172b7a03be1583490fec897dba79c8449bc740b34df246d0ad88c80e8d87be9b1eefae4f4e3ffdceb4b4e51c3c1c520b02a43d6a37a3431706293bc0123bd146641118b689c4a51f398910079a1f046345e446da8700e69295f30bb7d075e138bb20b05d4f893b181f5167c2b9b7e1c9a005f79b42ffb2de58ab35e15801f1927e36782f59f666251ede523a00fd95d9ea809bedd365c8bf236306b7220551e61560e48819478ca917e0b4ecd4ee2dcde13eeaef3850b9ecf9e4461685182a9c92dda21de832651a4efe744a9e7872a9afb3b066e8972645423c7c367abcbd914d7e60ba4ebb7e5470fb231408c9c883a8aeb2ddf32881f2c81413a21a86002b66a4d06d9cbfe4ec68fe2119d75fe72953d796ba9a860f38735777629eec73dd174ef2eda4acc5a260cb10179686a61989d109a22d02e4d514354d57e4b229d2e41b0816f46906d857e28623883946510cbd950a75065f6fc1ae1ac6aac5abb87b63658edb8ebca6e8d54fc9fad71e92aed7ae38bf6d484a0940de421adf2d673782a97d4bce6a9b6a88c5dd5b9f14e64b661da5e6073656a9f33488672ca7f467c25e3c3d27b4922b8c867627ef8a9768c3cee467fc6ebd881482bec384ac046446ec6550c60ee7412e95eddf765ccf956adf14c23a48110b9af9de6d47d10905892b410c2ad425065517a60e84412c4ca720beb52c518d524aa829a8e006ad5291aaf3a304f4a17df5e13d3626415f8ee26ad6d5cc2026d40f41797b4855b07bc94881f8f97073f528a240941f1d520106c72ebc12c9d42ac2e6296d5ad2f39a2a064af3eb17673e38a36df7882489c1b86c07c6a457fbe0cbe4cc560805cf56383fcc1898405dbaf0a1ac77db5ffe3df72fd2b8b509acb6fec4fe0ca8d87513314758039a03c0708442eb1a458ade36d8a19902591fbab22573fe31ebe35e7459bfd4039db02714d0e7b48ac54f05307efd8b0e380badf85663fc0d92641e7129baf6ea667841b1b08f721d1c5b89e89d42569d235155fc28a2b9771391e94c0914567706b9234c4b4e798e3094413374f13014cfb028762ef0b4a603b254b1d099b35346237916cfb2cd5ad3c8c41b20cd7144a6dc75c33d522e4ed3bf55c0382f0d99ed6932d96d231af307631c38448eaed20a2e11899c9fba671875f7c02cb1127b7ed52681f0255e98a0c01bad96c1911152e0e486695c8049430cd0dd7b883fad802e079b522eb16d310fae11860aef6c80b5caae1382d9a5720c24979e4906d2ba9bd680e5088b21b909bb2c26b683a6ed8af990326a028ec8c3426fe3ac04794108169a05696b434b7397210740067d34250ed68223e7b0ce24bb529a1680438fb4414b4341b14413decd821d61b857db3a5577da7c7cd112cb800b3c4ecb745628d8e65c712f89edaf3be9ff2c8a55fbb351e17aa121feaffc012f7c0a7fd59fb05e073e6f780cad4839bd4684090e7a9481a6df504549c4d8d2767878e1b3376e7000412343c0b1242363f270506da1e4c606aa6359fc8c7b5c1d40631be5e2feb7ecf042d0925d20e68093a350fcecb2923e8371941936c778b7fe50bc395b3067e3fb00fa1c8778a0c7e3271f1e5f65d33beaa5662fb70e0163caa00cbde2e601e1a81a67923d34e11ffa2f5b35f2a950b423fcb5d06c2907a96cd1c178b85eacfa227552c86d90b1e54e57075cf24af2a2758dedd8a9326a6dbeb5bb705947da085a44949ab38afef5744bc54ea73e45b5ab4072061e721f2fab0aa35f83eae389d5f73b1139947c50db45ca115f6c5e536ee320119b68e7e70327880969935773368e41be121cdc2a4581a50ba89e1c525af0bab6059d05147b5b1a9caff08ab4106e1" + }, + "receive_payment_eve": { + "comment": "Eve receives the blinded payment.", + "alias": "Eve", + "node_privkey": "4545454545454545454545454545454545454545454545454545454545454545", + "blinding_point": "02c952268f1501cf108839f4f5d0fbb41a97de778a6ead8caf161c569bd4df1ad7", + "onion": "00022b07f6ba00ad14c16877f148c9359b618486ce2f2a668c01bea57992bc2e7f8c7f8f99cf33fbe7b8c172b7a03be1583490fec897dba79c8449bc740b34df246d0ad88c80e8d87be9b1eefae4f4e3ffdceb4b4e51c3c1c520b02a43d6a37a3431706293bc0123bd146641118b689c4a51f398910079a1f046345e446da8700e69295f30bb7d075e138bb20b05d4f893b181f5167c2b9b7e1c9a005f79b42ffb2de58ab35e15801f1927e36782f59f666251ede523a00fd95d9ea809bedd365c8bf236306b7220551e61560e48819478ca917e0b4ecd4ee2dcde13eeaef3850b9ecf9e4461685182a9c92dda21de832651a4efe744a9e7872a9afb3b066e8972645423c7c367abcbd914d7e60ba4ebb7e5470fb231408c9c883a8aeb2ddf32881f2c81413a21a86002b66a4d06d9cbfe4ec68fe2119d75fe72953d796ba9a860f38735777629eec73dd174ef2eda4acc5a260cb10179686a61989d109a22d02e4d514354d57e4b229d2e41b0816f46906d857e28623883946510cbd950a75065f6fc1ae1ac6aac5abb87b63658edb8ebca6e8d54fc9fad71e92aed7ae38bf6d484a0940de421adf2d673782a97d4bce6a9b6a88c5dd5b9f14e64b661da5e6073656a9f33488672ca7f467c25e3c3d27b4922b8c867627ef8a9768c3cee467fc6ebd881482bec384ac046446ec6550c60ee7412e95eddf765ccf956adf14c23a48110b9af9de6d47d10905892b410c2ad425065517a60e84412c4ca720beb52c518d524aa829a8e006ad5291aaf3a304f4a17df5e13d3626415f8ee26ad6d5cc2026d40f41797b4855b07bc94881f8f97073f528a240941f1d520106c72ebc12c9d42ac2e6296d5ad2f39a2a064af3eb17673e38a36df7882489c1b86c07c6a457fbe0cbe4cc560805cf56383fcc1898405dbaf0a1ac77db5ffe3df72fd2b8b509acb6fec4fe0ca8d87513314758039a03c0708442eb1a458ade36d8a19902591fbab22573fe31ebe35e7459bfd4039db02714d0e7b48ac54f05307efd8b0e380badf85663fc0d92641e7129baf6ea667841b1b08f721d1c5b89e89d42569d235155fc28a2b9771391e94c0914567706b9234c4b4e798e3094413374f13014cfb028762ef0b4a603b254b1d099b35346237916cfb2cd5ad3c8c41b20cd7144a6dc75c33d522e4ed3bf55c0382f0d99ed6932d96d231af307631c38448eaed20a2e11899c9fba671875f7c02cb1127b7ed52681f0255e98a0c01bad96c1911152e0e486695c8049430cd0dd7b883fad802e079b522eb16d310fae11860aef6c80b5caae1382d9a5720c24979e4906d2ba9bd680e5088b21b909bb2c26b683a6ed8af990326a028ec8c3426fe3ac04794108169a05696b434b7397210740067d34250ed68223e7b0ce24bb529a1680438fb4414b4341b14413decd821d61b857db3a5577da7c7cd112cb800b3c4ecb745628d8e65c712f89edaf3be9ff2c8a55fbb351e17aa121feaffc012f7c0a7fd59fb05e073e6f780cad4839bd4684090e7a9481a6df504549c4d8d2767878e1b3376e7000412343c0b1242363f270506da1e4c606aa6359fc8c7b5c1d40631be5e2feb7ecf042d0925d20e68093a350fcecb2923e8371941936c778b7fe50bc395b3067e3fb00fa1c8778a0c7e3271f1e5f65d33beaa5662fb70e0163caa00cbde2e601e1a81a67923d34e11ffa2f5b35f2a950b423fcb5d06c2907a96cd1c178b85eacfa227552c86d90b1e54e57075cf24af2a2758dedd8a9326a6dbeb5bb705947da085a44949ab38afef5744bc54ea73e45b5ab4072061e721f2fab0aa35f83eae389d5f73b1139947c50db45ca115f6c5e536ee320119b68e7e70327880969935773368e41be121cdc2a4581a50ba89e1c525af0bab6059d05147b5b1a9caff08ab4106e1", + "path_id": "599f23211c85fa3369f0142a1ee0bad2ac96ae9d958cae5e009af491339e004078b6323e4be93cacfea153508b22ea03c20be28687adb30438bb8a8ac110907763d40d0b668c15292e" + } +} \ No newline at end of file