為什麼交易在承諾級別而不是閃電網路的 HTLC 級別更受關注?
在本週關於 L2 鏈上支持的 IRC 研討會上,t-bast 和 ariard 一致認為,交易鎖定更多是在承諾級別(例如延遲子 CLTV 交易的父級)而不是 HTLC 級別。
對我來說,它為什麼或如何工作並不是很明顯。我的印像是承諾交易的確認對時間不敏感。有兩個時間敏感問題;在您的交易對手廣播過期狀態的情況下,未及時收到 HTLC 的原像並確認您的正義交易。我錯過了什麼?
正如我在 2020 年 6 月的閃電開發郵件列表文章“固定:好、壞、醜”中所解釋的,在閃電路由集線器的情況下,固定在承諾級別是令人擔憂的,無法確認 HTLC 成功上游連結。這是時間敏感問題的第三種情況,除了接收原像並確認您的正義之外。
攻擊場景是這樣的。Malicia 和 Mallory 為 Bob(一個誠實的路由中心)打開了兩個通道。Malicia 繪製了一條通過 Bob 到 Mallory 的 1 BTC HTLC 的支付路徑。此支付路徑執行 Bob 的
cltv_delta
40 個區塊的政策。假設在設置階段有 N 個鏈尖,HTLC 時間鎖在第一跳的 N + 60 時到期,第二跳的 N + 40 時到期。一旦支付路徑被鎖定,Mallory 就會廣播她的承諾交易和 HTLC-Success 交易,Bob 將在鏈上發現 HTLC 原像。同時,Malicia 在網路記憶體池底層費率組之間廣播低費率承諾交易和低費率、高絕對費率的 CPFP 交易。該惡意 CPFP 交易的絕對費用必須高於 Bob 在 Malicia-Bob 連結最新有效狀態下的誠實承諾交易。根據 BIP125 規則 3,這種更高費用的 CPFP 將阻止 Bob 的誠實交易替換 Malicia 的低費用承諾交易。由於 Bob 不知道 Malicia 的哪個承諾交易在網路上傳播,他將無法在他的自己的錨槽(請記住,根據協議規則,LN 交易對手可能在接收 a
commitment_signed
和回复a 之間擁有兩個有效的承諾交易revoke_and_ack
)。如果 Malicia 的承諾交易直到 N + 60 才確認,則此鎖定攻擊成功。在該高度,她可以用更高的費率提案替換她的 CPFP 以確認承諾,並將提供的 HTLC 用於她的 HTLC 超時交易。Bob 已經向 Mallory 支付了一個 HTLC,但無法從 Malicia 收回這個相同的 HTLC。
承諾層的 pinning 比 HTLC 層的 pinning 更令人擔憂,這些問題通過升級到 anchor channel 類型來解決。事實上,今天的 LN 節點無法單方面對承諾交易進行收費,例如在記憶體池接受評估期間增加其收費以驅逐任何惡意的遠端承諾。