跳至主要內容
高級

Taproot Channels

深入理解 Taproot 通道,利用 Schnorr 簽名和 MAST 提升閃電網路的效率和隱私。

22 分鐘

什麼是 Taproot Channels?

Taproot Channels 是利用比特幣 Taproot 升級(BIP-340/341/342)重新設計的閃電網路通道。 通過 Schnorr 簽名和 MAST(Merkelized Abstract Syntax Trees), Taproot 通道在鏈上看起來與普通交易無異,大幅提升隱私性和效率。

核心優勢: 合作關閉 Taproot 通道時,鏈上交易看起來就像普通的單簽交易, 無法區分這是閃電網路通道還是普通轉帳。

傳統通道 vs Taproot 通道

特性 P2WSH 通道 Taproot 通道
Funding 輸出 P2WSH(明顯的多簽) P2TR(看起來像單簽)
合作關閉 暴露 2-of-2 腳本 僅 key path,無腳本
簽名大小 ~140 bytes(2 個 ECDSA) ~64 bytes(1 個 Schnorr)
鏈上隱私 可識別為閃電通道 無法區分
手續費 較高 降低 ~30%

Taproot 技術基礎

Schnorr 簽名

Schnorr 簽名支持密鑰聚合(MuSig2),兩個公鑰可以組合成一個, 產生的簽名與單人簽名無法區分。

P = P_alice + P_bob
sig = sign(P, message)

MAST 結構

MAST 允許將多個腳本組織成 Merkle 樹,只有使用到的分支需要揭示, 其他分支保持隱藏。

Taproot = key_path OR script_path
(優先使用 key_path)

通道結構

# Taproot 通道 Funding Output
output_key = P_internal + hash(P_internal || script_tree) * G

# P_internal = MuSig2(P_alice, P_bob)  -- 聚合公鑰
# script_tree = 包含所有可能的關閉路徑

# Key Path (合作關閉)
witness: <musig2_signature>

# Script Path (非合作關閉)
witness: <script> <control_block> <witness_data>

關閉場景比較

合作關閉 (Key Path)

雙方同意關閉通道,使用 MuSig2 聚合簽名。

  • • 鏈上僅見一個簽名
  • • 無法識別為閃電通道
  • • 最小的交易大小和費用

強制關閉 (Script Path)

一方單獨關閉通道,需要揭示腳本分支。

  • • 揭示使用的腳本分支
  • • 其他未使用分支保持隱藏
  • • 仍比傳統通道更隱私

MuSig2 在通道中的應用

1

Nonce 交換

雙方交換隨機 nonce,用於生成聚合簽名

2

聚合公鑰

計算 P = H(P_a || P_b) * P_a + H(P_b || P_a) * P_b

3

部分簽名

各方計算自己的部分簽名 s_a, s_b

4

聚合簽名

合併為完整簽名 s = s_a + s_b

PTLC 取代 HTLC

Taproot 通道為採用 PTLC(Point Time-Locked Contracts)鋪平道路:

HTLC (現行)

  • • 使用 hash preimage
  • • 同一 hash 可被追蹤
  • • 路徑上所有節點見同一 hash

PTLC (未來)

  • • 使用橢圓曲線點
  • • 每跳不同的點
  • • 無法跨節點關聯支付

實現狀態

實現 狀態 備註
LND ✓ Simple Taproot v0.17.0+(實驗性)
CLN ⏳ 開發中 計劃中
LDK ⏳ 開發中 積極開發
Eclair ⏳ 研究中 評估階段

優勢總結

🔒

隱私增強

合作關閉無法區分

💰

費用降低

更小的交易大小

🚀

未來兼容

支持 PTLC 升級

📜

簡化腳本

MAST 隱藏複雜性

相關 BIP

  • BIP-340:Schnorr 簽名標準
  • BIP-341:Taproot 輸出結構
  • BIP-342:Tapscript 操作碼
  • BIP-327:MuSig2 多簽協議

注意事項: 目前 Simple Taproot Channels 仍處於實驗階段,建議僅用於測試。 完整的 Taproot 通道(包括 PTLC)仍在開發中。

已複製連結
已複製到剪貼簿