Standards Track Final
BIP-68: 相對時間鎖
重新定義 nSequence 欄位以支援相對時間鎖,是閃電網路的關鍵基礎設施。
Mark Friedenbach, BtcDrak, Nicolas Dorier, kinoshitajona 2015年5月28日
BIP 編號
68
類型
Standards Track
狀態
Final
創建日期
2015-05-28
摘要
BIP-68 重新定義了交易輸入中 nSequence 欄位的語意,使其能夠表示相對時間鎖。 相對時間鎖允許輸出在被確認後的一定時間或區塊數之後才能被花費, 這與 CLTV 的「絕對時間鎖」形成互補。
動機
相對時間鎖是建構高級智能合約的關鍵功能,特別是對於:
- • 閃電網路:撤銷機制需要相對時間鎖
- • 雙向支付通道:確保舊狀態可被懲罰
- • 繼承合約:資金在一段不活動期後轉移
nSequence 位元結構
位元 31: 停用標誌 (1 = 停用相對鎖定)
位元 22: 類型標誌 (0 = 區塊, 1 = 時間)
位元 0-15: 值 (區塊數或 512 秒單位)
解碼規則
區塊高度模式
位元 22 = 0
值 = 區塊數量
範圍:1 ~ 65535 區塊
時間模式
位元 22 = 1
值 × 512 秒
範圍:~8.5 分鐘 ~ ~1 年
範例
鎖定 144 區塊(約 1 天)
nSequence = 0x00000090 (144 in hex)
鎖定 1 天(時間模式)
nSequence = 0x004000A8
# 位元 22 = 1, 值 = 168 (168 × 512 秒 ≈ 24 小時)
CLTV vs CSV
| 特性 | CLTV (BIP-65) | CSV (BIP-68/112) |
|---|---|---|
| 時間類型 | 絕對時間 | 相對時間 |
| 參考點 | 固定區塊/時間 | 輸入確認時間 |
| 用途 | 到期日合約 | 等待期合約 |
| 閃電網路 | HTLC 超時 | 撤銷機制 |
閃電網路應用
在閃電網路中,相對時間鎖用於懲罰機制:
- Alice 廣播舊的通道狀態
- Bob 有一個相對時間鎖窗口期(例如 144 區塊)來檢測
- 在窗口期內,Bob 可以使用撤銷密鑰拿走所有資金
- 這確保了通道參與者不會作弊
相關 BIP
延伸閱讀: 查看 GitHub 上的完整 BIP-68 文件
已複製連結