mirror of
https://github.com/lightning/bolts.git
synced 2024-11-19 01:50:03 +01:00
Correct final_cltv handling in blinded paths
When paying a blinded path, we don't have a CLTV delta at each hop available, but rather only a total CLTV delta for the entire blinded path. However, the onion format currently still requires that we specify an `outgoing_cltv_value` for the final hop. As the sender, we don't have a sensible value to put there, as we don't know which part of the total CLTV delta belongs to the recipient. The sender is instructed to use the values that are known to them when setting `outgoing_cltv_value` for the final hop: - The current block height. - Any additional delta added to account for block propagation and improve privacy. This change reflects the behavior of some implementations at the time of writing.
This commit is contained in:
parent
cded2df1fd
commit
9ab3c87a28
@ -262,6 +262,10 @@ The writer of the TLV `payload`:
|
|||||||
- MUST include the `blinding_point` provided by the recipient in `current_blinding_point`
|
- MUST include the `blinding_point` provided by the recipient in `current_blinding_point`
|
||||||
- If it is the final node:
|
- If it is the final node:
|
||||||
- MUST include `amt_to_forward`, `outgoing_cltv_value` and `total_amount_msat`.
|
- MUST include `amt_to_forward`, `outgoing_cltv_value` and `total_amount_msat`.
|
||||||
|
- The value set for `outgoing_cltv_value`:
|
||||||
|
- MUST use the current block height as a baseline value.
|
||||||
|
- if a [random offset](07-routing-gossip.md#recommendations-for-routing) was added to improve privacy:
|
||||||
|
- SHOULD add the offset to the baseline value.
|
||||||
- MUST NOT include any other tlv field.
|
- MUST NOT include any other tlv field.
|
||||||
- For every node outside of a blinded route:
|
- For every node outside of a blinded route:
|
||||||
- MUST include `amt_to_forward` and `outgoing_cltv_value`.
|
- MUST include `amt_to_forward` and `outgoing_cltv_value`.
|
||||||
|
Loading…
Reference in New Issue
Block a user