閃電網路有資金風險? 一文解讀其原理和處理方法

原創 | Odaily星球日報

作者 | 南枳

! [閃電網路有資金風險? 一文解讀其原理和處理方法](https://img-cdn.gateio.im/webp-social/moments-7f230462a9-43da3a01e5-dd1a6f-69ad2a.webp)

引言

10 月 20 日,Bitcoin Core 核心開發者/dev/fd0 在 X 平台宣佈,將停止參與閃電網路及其實施的開發,包括協調處理協定級安全問題。

/dev/fd0 表示,每個比特幣節點都有自己的記憶體池。 交易由對等節點轉發。 如果閃電網路節點用於打開通道並接受 HTLC 轉發,那麼很容易受到替代迴圈攻擊(Replacement Cycling Attacks)。

該開發者所指的「替代迴圈攻擊」是什麼,其具體實現途徑如何,Odaily星球日報將於本文揭示。

閃電網路

比特幣網路的 TPS 僅約為 7 ,並且手續費高昂,為解決小額支付的需求,閃電網路應運而生。

閃電網路(Lightning Network)是一種針對比特幣和其他加密貨幣的第二層擴展解決方案,旨在解決加密貨幣網路的可擴展性和交易速度問題。

其實現原理可簡化為:

  1. 交易雙方 A 與 B 建立了一個「交易通道」(實際上是個多簽錢包)
  2. A 與 B 分別往裡面充錢 A1 和 B1 (此步上鏈)
  3. A 與 B 在鏈下發生任意筆交易,A 凈轉出額 X(例如 A 向 B 轉帳 100 次 1 元,B 向 A 轉帳 99 次 1 元,最終 A 凈流出 1 元)
  4. 將 A1-X 與 B1+X 的交易更新上鏈

通過以上流程,不論 A、B 在鏈下進行多少次交易,都只要支付兩筆上鏈費用,並節約了大量的時間。

哈希時間鎖合約(HTLC)

以上介紹的形式限於 A 和 B 之間有直接的交易通道,為跨通道支付而出現了中繼節點,中繼節點中轉兩者交易,以便跨通道進行支付,而中繼節點可以收取小費。

但這面臨著一個問題:需要確保每個通道內每個參與者都是誠實守信的,通過多通道連結是安全的。

因而出現了 HTLC(Hash Time-Lock Contract、哈希時間鎖合約),一筆帶有 HTLC 的支付事務可簡化為:

  1. A 準備一個暗號 R,並計算其哈希值 H
  2. A 設定一個時限 T
  3. A 向 B 發送一筆帶有 HTLC 的支付事務,僅當符合以下兩個條件時交易才會最終成立
  • B 回答出暗號 R(透過 H 驗證)
  • B 回答的時間在 T 之內(例如 10 個區塊內給出答案)
  1. 若 B 不知道暗號,或者回答超時,則資金退回給 A

正常交易流程

通過上述的 HTLC,一筆涉及中繼節點的支付流程如下:

  1. 最終的接收者 C 向發送資金者 A 提供暗號
  2. A 用哈希值 H 發起 HTLC 支付(請注意,此時資金並未到 B 手中
  3. B 接收到支付資訊,向 C 用哈希值 H 發起 HTLC 支付
  4. C 為了接收資金,回答暗號,收到資金。 B 此時也知道了暗號
  5. B 用暗號獲取 A 發起的支付,收到資金,交易完成

! [閃電網路有資金風險? 一文解讀其原理和處理方法](https://img-cdn.gateio.im/webp-social/moments-7f230462a9-db7ebe3106-dd1a6f-69ad2a.webp)

涉及三者的流程如上,中間也可以多加入幾個中繼節點,而支付模式仍保持不變,通過鏈式發送支付到最終接收者,然後再反向傳播暗號至初始的中繼節點,最終完成交易。

而中繼節點如果遲遲沒有收到暗號 R(下家不做解答,時限由中繼節點自行判斷)**,則中繼節點可以選擇關閉通道,**若成功上鏈,**則 B 發起的支付將“失效”,沒有資金損失。 **

迴圈替代攻擊

回到 HTLC 的基本原理中,除了回答暗號外,中繼節點還需要達成另一條件「中繼節點回答的時間在 T 之內」,而惡意攻擊者即是瞄準了該點進行攻擊:

  1. A 和 C 惡意串通,受害人為中繼節點 B(B 要求下家 3 個區塊內回答)
  2. A 向 B 發起支付(假設此時區塊高度為 1000),要求在 區塊 1020 前回答
  3. B 向 C 發起支付(區塊高度 1005)
  4. 區塊高度 1008 時,B 見到 C 還不回答,決定關閉通道,將在區塊 1009 生效
  5. C 發起高 Gas 的交易(1)(區塊 1008),使 B 發起的交易無法進入記憶體池
  6. C 發起高 Gas 的交易(2)(區塊 1009),B 仍無法進入記憶體池
  7. C 無限迴圈操作,直到區塊 1020 ,給出暗號 R,提取資金

B 儘管獲取了暗號,但已沒有時間回答 A 發起的支付,資金退回給 A,而向 C 的支付又已經成立,最終“迴圈替代攻擊”實現。 此外,A、C 也可以通過串通,迴圈攻擊 B 的關閉交易而實現雙花。

結語

儘管存在以上攻擊途徑,但並不意味著攻擊者就可以為所欲為,任意盜取閃電網路中的資金,原文中作者也提出了五種處理辦法,如本地記憶體池和事務中繼流量監控、礦工記憶體池監控等。

前途是光明的,道路是曲折的,今年比特幣網路上也誕生出了 Ordinals、BRC-20、Taproot Asset 等一系列新事物,問題雖存在,但持續的發展終將能解決問題。

參考資料

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)