Submarine Swaps
深入理解 Submarine Swaps,實現閃電網路與鏈上比特幣之間的原子交換。
什麼是 Submarine Swap?
Submarine Swap 是一種原子交換技術,允許用戶在閃電網路(鏈下)和比特幣主鏈(鏈上)之間 無需信任地交換資金。這解決了閃電網路的一個關鍵問題:如何在不關閉通道的情況下 將通道資金轉移到鏈上,或將鏈上資金注入通道。
核心價值: Submarine Swaps 讓閃電網路和鏈上比特幣變得「可互換」,大幅提升了資金的流動性和可用性。
兩種交換方向
Loop In
將鏈上比特幣轉換為閃電網路入站容量
- • 增加接收能力
- • 適合商家收款
- • 鏈上 → 閃電
Loop Out
將閃電網路資金轉換為鏈上比特幣
- • 增加發送能力
- • 適合路由節點
- • 閃電 → 鏈上
Loop Out 運作流程
Loop Out 將閃電網路資金轉移到鏈上,以下是詳細步驟:
請求交換
Alice 向 Loop 服務請求 Loop Out,指定金額和鏈上地址
生成哈希鎖
Loop 服務生成 preimage,計算 hash = SHA256(preimage)
鏈上 HTLC
Loop 創建鏈上 HTLC,鎖定資金到 Alice 的地址(需要 preimage 解鎖)
閃電支付
Alice 通過閃電網路向 Loop 支付(附帶相同的 hash)
揭示原像
Loop 揭示 preimage 領取閃電支付,Alice 用同一個 preimage 領取鏈上資金
HTLC 腳本示例
OP_HASH256 <hash> OP_EQUAL
OP_IF
<alice_pubkey> # Alice 用 preimage 領取
OP_ELSE
<timeout> OP_CHECKLOCKTIMEVERIFY OP_DROP
<loop_pubkey> # 超時後 Loop 取回
OP_ENDIF
OP_CHECKSIG 原子性保證
Submarine Swap 的安全性來自於 HTLC 的原子性:
成功情況
Loop 揭示 preimage → Alice 可以同時用這個 preimage 領取鏈上資金。 雙方都獲得應得的資金。
失敗情況
Loop 不揭示 preimage → 閃電支付超時退回給 Alice, 鏈上 HTLC 超時後 Loop 取回資金。雙方回到原狀。
應用場景
| 場景 | 類型 | 說明 |
|---|---|---|
| 商家收款 | Loop In | 增加入站容量以接收更多支付 |
| 路由節點平衡 | Loop Out | 恢復通道的發送能力 |
| 交易所提款 | Loop Out | 用閃電支付換取鏈上 UTXO |
| 即時入金 | Loop In | 快速將鏈上資金轉入閃電錢包 |
服務提供商
費用結構
Submarine Swap 涉及多種費用:
- • 服務費:交換服務商收取的手續費(通常 0.1-1%)
- • 鏈上手續費:HTLC 創建和解鎖的礦工費
- • 閃電路由費:閃電網路支付的路由費用
成本優化提示: 在鏈上手續費低時執行 Loop 操作可以顯著降低成本。 許多服務提供商支持批量處理以進一步節省費用。
與 Splicing 的比較
| 特性 | Submarine Swap | Splicing |
|---|---|---|
| 需要第三方 | 是(交換服務) | 否 |
| 通道中斷 | 否 | 否 |
| 即時性 | 閃電部分即時 | 需等待確認 |
| 費用 | 較高(含服務費) | 僅鏈上費用 |