跳至主要內容
Informational Draft

BIP-8: Version Bits 改進

改進的軟分叉部署機制,支持強制啟用(LOT)選項。

Shaolin Fry 2017年2月1日
BIP 編號

8

類型

Informational

狀態

Draft

創建日期

2017-02-01

摘要

BIP-8 是 BIP-9 的改進版本,增加了在超時後強制啟用(lock-in on timeout)的選項。 這解決了 BIP-9 中礦工可能無限期阻止升級的問題。

BIP-9 的問題

為什麼需要改進?

  • • BIP-9 給予礦工事實上的否決權
  • • 超時後升級自動失敗,必須重新部署
  • • 礦工可能出於商業利益而非技術原因阻止升級
  • • 這與比特幣「用戶主導」的精神相悖

BIP-8 的解決方案

LOT 參數

BIP-8 引入了 lockinontimeout(LOT)參數:

LOT = false

與 BIP-9 行為相同。超時後如果未達閾值,升級失敗。

礦工主導

LOT = true

超時後自動鎖定(MUST_SIGNAL),強制啟用。礦工必須發送信號否則區塊無效。

用戶主導

改進的狀態機

                    DEFINED
                       │
                       │ start_height 到達
                       ↓
                    STARTED ──────────────────────┐
                       │                          │
          ┌────────────┼────────────┐             │
          │            │            │             │
          │ 達到閾值   │ 超時       │ 超時       │
          │            │ (LOT=true) │ (LOT=false) │
          ↓            ↓            │             ↓
      LOCKED_IN   MUST_SIGNAL       │          FAILED
          │            │            │
          │            │ 下一週期   │
          │            ↓            │
          │       LOCKED_IN ────────┘
          │            │
          └────────────┤
                       │ 下一週期
                       ↓
                    ACTIVE

MUST_SIGNAL 狀態

當 LOT=true 且超時到達時,進入 MUST_SIGNAL 狀態:

  • • 所有區塊必須設置對應的信號位元
  • • 不設置信號的區塊被視為無效
  • • 這確保升級必定啟用

部署參數

參數 說明 對比 BIP-9
bit 信號位元位置 相同
start_height 開始高度(區塊高度而非時間) 改用高度
timeout_height 超時高度 改用高度
threshold 啟用閾值 相同
min_activation_height 最早啟用高度 新增
lockinontimeout 超時後是否強制啟用 新增

使用高度而非時間

BIP-8 使用區塊高度而非 MTP(中位時間)的原因:

  • 更可預測:高度是確定的,時間可能因難度調整而變化
  • 避免時間戳攻擊:礦工可以操縱時間戳來影響啟用
  • 更容易驗證:輕客戶端可以輕鬆驗證高度

Taproot 啟用案例

Taproot(BIP-341)使用修改版的 BIP-8 進行部署,稱為「Speedy Trial」:

Taproot 部署參數

bit

2

start_height

681,408

timeout_height

693,504

min_activation_height

709,632

threshold

90% (1815/2016)

結果

鎖定於區塊 687,284

LOT 爭議

社群辯論

LOT 參數引發了激烈的社群辯論:

LOT=true 支持者
  • • 用戶應該控制協議規則
  • • 防止礦工否決權
  • • 更快達成共識
LOT=false 支持者
  • • 避免鏈分裂風險
  • • 給予更多協調時間
  • • 更保守的升級方式

總結

BIP-8 提供了更靈活的軟分叉部署機制,特別是 LOT=true 選項讓社群可以 確保升級不被少數礦工阻止。Taproot 的成功啟用證明了這種機制的可行性。

延伸閱讀: 查看 GitHub 上的完整 BIP-8 文件

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