Lightning-Network
如果轉發不嚴格,為什麼 Lightning 數據包會包含通道 ID?
閃電網路中的洋蔥包,如BOLT 4中所述,包括
short_channel_id
發送者建構的路由中的通道。但是根據相同的規範,轉發是非嚴格的,這意味著如果支付是要從中間節點 X 轉發到中間節點 Y,X 可以自由選擇它自己和 Y 之間的任何通道(a一對節點可能有多個通道)。洋蔥包中的 ’s 不是
short_channel_id
過多嗎?我們可以只指定建議路線上的節點列表,讓每個節點選擇下一個節點的最佳通道嗎?
我想這是有歷史原因的。洋蔥格式的短頻道 ID。即使在今天,C Lightning 也不支持 2 個節點之間的多個通道。另一方面,Lnd 確實如此。這就是為什麼如果節點之間存在足夠平衡的第二個通道,lnd 開發人員開始切換通道的原因。後來同意在規範中添加關於非嚴格轉發的聲明-您引用了該聲明。
雖然使用節點 ID 會起作用,但它有一些缺點。
- 我們必須對洋蔥格式進行向後兼容的更改
- 與 33 字節的 nodeid 相比,短通道 id 消耗的空間更少(我認為 8 字節)(請記住,洋蔥每跳有效負載只有 65 字節)
- 如果是私人頻道,可以驗證短頻道 ID。我可以檢查區塊鍊是否有未使用的資金交易。