Blockchain

閃電網路中可撤銷交易的延遲

  • March 6, 2022

閃電網路白皮書描述了可撤銷序列成熟度合約 (RSMC)的概念,它允許在通道單方面關閉後的預定義延遲期間撤銷承諾交易。據我了解,這意味著通道關閉者(即發布交易的節點)必須等待延遲才能收回他/她的投資資金,同時,交易對手可以驗證區塊鏈,看看關閉者是否發布了最多最近的承諾交易。如果收盤方發布了舊的交易,交易對手可以通過拿走渠道中的所有資金來懲罰他/她。BOLT#3將此延遲定義為to_self_delay承諾交易輸出中的變數。但是,關於 RSMC 實施的某些方面我仍不清楚:

  1. 誰定義to_self_delay?LN 如何確保延遲足以讓交易對手懲罰惡意使用者?
  2. 每個承諾交易的延遲可以改變嗎?例如,如果雙方在一些交易後更加信任對方,是否可以決定減少延遲?

提前致謝。

to_self_delay是頻道的資助者在開始創建頻道時設置的參數。受資助人可能喜歡也可能不喜歡,因此接受或拒絕開戶請求。

按照目前的規定,一旦通道打開,閃電網路不允許更新此參數。它提出了一些工程挑戰(主要是因為 HTLC 的非同步添加),但在概念上絕對可以這樣做。

您的問題非常及時,因為最近圍繞在規範中包含此功能(動態承諾交易升級)的方式進行了很多討論。參見例如:

  • <https://github.com/lightningnetwork/lightning-rfc/pull/868>來自 Rusty Russell,它依賴於靜默提案
  • <https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-July/002763.html>作者:Olaoluwa Osuntokun

根據BOLT 2 的協議規範,open_channel消息建議 [u16:to_self_delay]

它進一步說

to_self_delay是其他節點的 to-self 輸出必須延遲的塊數,使用OP_CHECKSEQUENCEVERIFY延遲;這是它在贖回自己的資金之前必須等待多長時間以防崩潰。

發送節點應該 […] 設置 to_self_delay 足以確保發送者可以不可逆地花費承諾交易輸出,以防接收者行為不端。

如果 […] 過to_self_delay大,接收節點必須使通道失效。

同樣沒有關於大小的規範是accept_channel消息。

在實踐中,你的閃電實現應該有一個配置值,讓你可以選擇你會覺得舒服的阻塞時間,如果有人試圖打開一個通道並且一方對其他方的值不滿意,那麼通道將不會首先打開.

引用自:https://bitcoin.stackexchange.com/questions/106880