跳至主要內容
閃電網路 進階

閃電網路

Lightning Network

又稱:LN、Layer 2

閃電網路(Lightning Network)是建立在比特幣之上的第二層(Layer 2)支付協議。它通過建立鏈下的支付通道網路,實現即時、低成本的比特幣交易,同時保持比特幣主鏈的安全性和去中心化特性。

為什麼需要閃電網路?

比特幣主鏈的限制:

特性主鏈限制影響
區塊大小~4 MB(含 witness)約 7 TPS
區塊時間約 10 分鐘確認慢
手續費隨網路擁堵浮動小額不划算
隱私交易公開可查金流可追蹤

閃電網路的解決方案:

特性閃電網路優勢
容量理論上無限百萬級 TPS
速度毫秒級即時支付
手續費通常 < 1 sat微支付可行
隱私僅通道參與者知道更好的隱私

核心概念

支付通道

兩個用戶之間的雙向支付通道:

開通道流程:
1. Alice 和 Bob 創建 2-of-2 多簽地址
2. Alice 存入 0.1 BTC(鏈上交易)
3. 通道開啟,初始餘額:Alice 0.1 BTC, Bob 0 BTC

鏈下支付:
Alice → Bob 0.01 BTC
新餘額:Alice 0.09 BTC, Bob 0.01 BTC
(無需鏈上交易)

關閉通道:
廣播最終餘額分配到鏈上

承諾交易(Commitment Transaction)

每次鏈下支付都會創建新的承諾交易:

承諾交易結構:
輸入:2-of-2 多簽資金
輸出:
  - Alice 的餘額(可能有時間鎖)
  - Bob 的餘額

特點:
- 雙方各持有一個版本
- 舊版本被撤銷(透過 revocation key)
- 可隨時廣播,但正常情況下不會

多跳路由

不需要直接通道,可透過中間節點支付:

Alice ←→ Carol ←→ Bob

Alice 想付給 Bob 1000 sat:
1. Bob 生成 preimage,計算 hash
2. Alice 發送 HTLC 給 Carol(鎖定 1001 sat)
3. Carol 發送 HTLC 給 Bob(鎖定 1000 sat)
4. Bob 用 preimage 解鎖從 Carol 收款
5. Carol 用相同 preimage 從 Alice 收款
6. Carol 賺取 1 sat 路由費

HTLC(雜湊時間鎖合約)

確保多跳支付的原子性:

HTLC 腳本邏輯:
IF
  # 知道 preimage 可以立即花費
  <接收方公鑰> CHECKSIG
  HASH160 <hash> EQUAL
ELSE
  # 超時後發送方可取回
  <超時區塊> CHECKLOCKTIMEVERIFY
  <發送方公鑰> CHECKSIG
ENDIF

發票(Invoice)

接收方生成的支付請求,包含:

BOLT 11 發票範例:
lnbc10u1pwsjad...(編碼字串)

解碼後:
{
  "amount": 10000 sat,
  "payment_hash": "abc123...",
  "description": "咖啡",
  "expiry": 3600,        // 1 小時過期
  "routing_hints": [...], // 路由提示
  "node_pubkey": "..."
}

BOLT 12 Offers(新標準)

靜態收款碼:
lno1pq...(可重複使用)

優點:
- 不過期
- 可重複使用
- 支援退款
- 更好的隱私

網路拓撲

節點類型

類型角色特點
路由節點提供流動性需要大量資金
商家節點接收支付需要入向流動性
個人錢包發送支付可用 LSP
LSP服務提供商代管通道管理

通道流動性

                    ┌─────────────────┐
                    │   Alice ←→ Bob  │
                    │ [0.05] ←→ [0.05]│
                    └─────────────────┘

本地餘額(Local Balance):可發送金額
遠端餘額(Remote Balance):可接收金額

流動性問題:
- 新通道只有出向流動性
- 需要平衡才能雙向使用

閃電網路統計(2024)

指標數值
公開節點數~15,000+
公開通道數~60,000+
網路容量~5,000+ BTC
平均通道大小~0.08 BTC

使用場景

日常支付

場景:咖啡店購買咖啡 200 sat
主鏈:手續費可能 > 咖啡價格 ❌
閃電:手續費 < 1 sat ✓

串流支付

場景:音樂串流按秒計費
每秒支付 1 sat
連續聽 1 小時 = 3600 sat
主鏈不可能,閃電可行 ✓

跨境支付

場景:從台灣匯款到美國
傳統銀行:3-5 天,高手續費
閃電網路:秒到,極低費用

遊戲內購

場景:購買遊戲道具 100 sat
即時確認,無需等待
適合遊戲內微交易

閃電錢包選擇

託管錢包(適合新手)

錢包平台特點
Wallet of SatoshiiOS/Android最簡單
StrikeiOS/Android法幣整合
Alby瀏覽器擴充適合網頁支付

非託管錢包(建議)

錢包平台特點
PhoenixiOS/Android自動通道管理
BreeziOS/Android商家友善
ZeusiOS/Android進階功能
Mutiny網頁/PWA開源隱私優先

自架節點

軟體特點
LND最普及,文檔完善
CLNCore Lightning,輕量
EclairACINQ 開發,移動友善
LDK開發框架,可嵌入

開通道策略

選擇連接對象

好的路由節點特徵:
- 高正常運行時間(uptime)
- 大量通道連接
- 低手續費率
- 足夠的流動性

通道大小建議

用途建議大小
個人小額支付100k-500k sat
頻繁使用1M-5M sat
商家5M+ sat
路由節點10M+ sat

限制與挑戰

技術限制

限制說明解決方案
需要線上接收需在線LSP 代收
通道容量單筆上限多路徑支付(MPP)
入向流動性新用戶難收款購買流動性
備份複雜需備份通道狀態SCB 靜態備份

安全考量

風險類型:
1. 強制關閉風險(對方不合作)
2. 過期 HTLC(需要監控)
3. 通道欺詐(需要 watchtower)
4. 流動性攻擊(jamming)

防護措施:
- 使用 watchtower 服務
- 定期備份通道狀態
- 選擇信譽良好的對手方

開發資源

BOLT 規範

BOLT 1-12:閃電網路規範
- BOLT 1: 基礎協議
- BOLT 2: 通道管理
- BOLT 3: 交易格式
- BOLT 4: 洋蔥路由
- BOLT 11: 發票格式
- BOLT 12: Offers

API 和 SDK

語言
JavaScriptlnbits, lnd-grpc
Pythonlnd-grpc, pyln-client
RustLDK, rust-lightning
Golnd (native)

測試網路

regtest:本地測試
testnet:公共測試網
signet:受控測試網

工具:
- Polar:本地網路模擬
- Lightning Terminal:節點管理

未來發展

  • Taproot Channels:更小的鏈上足跡
  • PTLCs:替代 HTLC,更好隱私
  • Channel Factories:多方共享通道
  • Splicing:不關閉通道調整容量
  • Async Payments:離線接收支付
已複製到剪貼簿