跳至主要內容
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 超時 撤銷機制

閃電網路應用

在閃電網路中,相對時間鎖用於懲罰機制:

  1. Alice 廣播舊的通道狀態
  2. Bob 有一個相對時間鎖窗口期(例如 144 區塊)來檢測
  3. 在窗口期內,Bob 可以使用撤銷密鑰拿走所有資金
  4. 這確保了通道參與者不會作弊

相關 BIP

  • BIP-65:OP_CHECKLOCKTIMEVERIFY
  • BIP-112:OP_CHECKSEQUENCEVERIFY
  • BIP-113:Median Time Past
已複製連結
已複製到剪貼簿