TronGreen

BTC 協議與礦業共識清理軟分叉

Wuille 以 Lean 證明 BIP-54 時間扭曲修補可封頂鏈長:上限僅比真鏈多約 5%,仍未啟用

Bitcoin Core 開發者 Pieter Wuille 9 月 17 日在 Delving Bitcoin 發表分析,10 月 21 日(UTC)更新:在 BIP-54 兩條時間戳規則下,以 2026-09-09 的鏈上時間與累積工作量計算,任何鏈最多約 101.3 萬個區塊,比當時真實高度 966,271 多約 4.8%;若少了任一條規則,上限仍超過 33.4 億塊。

長條資訊圖:以 2026 年 9 月 9 日的比特幣鏈上時間與累積工作量計算,真實鏈 966,271 塊、已知最長可行鏈 1,007,326 塊、精確工作量公式反推上限 1,009,930 塊、Lean 已證明封閉式上限 1,012,794 塊;下方註明缺少任一條 BIP-54 時間戳規則時上限仍超過 33.4 億塊。
BIP-54 兩條時間戳規則下的鏈長上限。TronGreen 編輯依 Pieter Wuille 在 Delving Bitcoin 討論串公布的數據以程式自製,非官方圖表;橫軸自 94 萬塊起算,僅示意相對差距。

公式已有 Lean 機器證明,但 Wuille 說明證明由 LLM 產生、他本人未審閱。BIP-54 仍無主網啟用參數,Core 實作 PR 尚未合併。

重點摘要

這份證明回答的是「BIP-54 的時間扭曲修補夠不夠」:兩條規則缺一不可、合起來足以把攻擊鏈長度壓到接近真鏈。直接受益的是節點的區塊頭防 DoS 邏輯;但 BIP-54 何時、是否啟用仍未定。

文章目錄

發生什麼:兩條規則被證明「合起來夠用」

BIP-54(共識清理,Consensus Cleanup)是 Antoine Poinsot 與 Matt Corallo 提出的軟分叉規格,一次處理時間扭曲攻擊、極端慢速區塊、64 位元組交易造成的 Merkle 樹弱點,以及重複 coinbase 交易。其中針對時間戳有兩條新規則:每個難度週期的第一個區塊,時間戳不得早於前一個區塊 7200 秒以上;每個週期的最後一個區塊,時間戳不得早於同週期第一個區塊。

Pieter Wuille 9 月 17 日在 Delving Bitcoin 發文,問的是這兩條規則是否足夠,還是仍有未知攻擊能讓鏈無限加長。他的結論是足夠:在時間上限 t、累積工作量上限 w 之下,鏈長 n 有封閉式上限,長期出塊速度最多約每 9 分 56 秒一塊,另外只能多出一段需付出難度上升代價的有限區塊。10 月 21 日(UTC)他更新首帖,把「給定鏈長與時間、反推最少工作量」的較精確公式併入,並把十進位近似式也納入 Lean 證明。

原始證據:數字與證明的範圍

Wuille 以 2026-09-09 21:30 UTC 的狀態示範:當時距創世區塊 557,982,895 秒、真實鏈高 966,270(含創世共 966,271 塊)、累積工作量約 2 的 96.35 次方。代入公式的上限是 1,012,794 塊,較精確的工作量公式反推為 1,009,930 塊;他目前找到的最長可行鏈為 1,007,326 塊。上限比真實鏈多約 4.8%。若只保留其中一條規則,上限仍超過 33.4 億塊,相差約 3300 倍,這是「兩條缺一不可」的依據。

證明檔用 Lean 4 與 Mathlib 寫成,模型照搬 Bitcoin 的難度調整:時間跨度夾在 1/4 到 4 倍、目標值截斷成 nBits 緊湊格式,以及整數除法。README 要求編譯後只依賴三個標準公理,不得出現 sorry。Wuille 在首帖寫明:證明由 LLM 產生,他沒有審閱證明本身,讀者只需檢查被證明的命題是否正確。我們下載並核對了證明檔內的三個定理名稱與 README,但沒有自行重跑編譯。

為什麼要算這個:區塊頭防 DoS

Wuille 在討論中說明動機:Bitcoin Core 2022 年合併的 headers presync(PR #25717)會先在不存檔的情況下預先同步對方的區塊頭,確認累積工作量達到門檻後才重新下載並存下,以免被大量低難度的假區塊頭塞滿硬碟。現行邏輯只能依中位數時間規則假設鏈長最多每秒 6 塊;若 BIP-54 啟用並固化,攻擊鏈的長度上限會降到略高於真實鏈,防護參數可以收得更緊。

狀態要說清楚:BIP-54 規格標示為 Complete,但 Bitcoin Core 的實作 PR #35793 標題就寫明「不含主網啟用」,至今仍未合併;規格也沒有啟用方式與日期。Wuille 的推論以「已啟用並固化」為前提,現在的節點不受影響。

AI 觀點分析與推論

AI 觀點:這份證明降低的是「修得夠不夠」的爭議,不是「要不要啟用」

我傾向認為,這份工作最大的價值在於把時間扭曲修補從「看起來夠」變成「有上限可算」。過去討論常卡在是否還有交替時間戳一類的變形攻擊;現在若要主張還有漏洞,就得指出 Lean 命題本身與共識規則哪裡不符,門檻高很多。討論串裡 Zawy 一度質疑可能出現無限區塊,後來也自承誤解,說明這個框架能把爭論收斂到可檢查的命題。

但它不會直接推動啟用。BIP-54 其餘三項修補(慢速區塊、64 位元組交易、重複 coinbase)不在這份證明範圍,啟用方式也還沒有共識。受益最直接的是節點實作者與輕節點的區塊頭驗證;一般持幣人短期沒有要做的事。另一個限制是證明由 LLM 產生且作者未審:若日後有人審閱命題時發現建模與實際共識規則有落差,結論就要打折。我會觀察兩個訊號:PR #35793 是否進入合併或附上啟用參數,以及是否有第二位開發者公開審閱 Lean 命題。

原始來源與延伸閱讀

  1. Pieter Wuille:Bounds on chain length with BIP-54 timewarp fixes(Delving Bitcoin 首帖與討論串) ↗原始研究 · 原始發布 2026-09-17 · 查閱 2026-10-22
  2. Pieter Wuille:首帖更新說明(討論串第 29 則) ↗原始研究更新 · 原始發布 2026-10-21 · 查閱 2026-10-22
  3. BIP-54 鏈長上限 Lean 證明檔(bip54proof.tgz) ↗形式化證明原始碼 · 原始發布 2026-10-21 · 查閱 2026-10-22
  4. BIP-54: Consensus Cleanup ↗技術規格 · 原始發布 2025-04-11 · 查閱 2026-10-22
  5. Bitcoin Core PR #35793:Implement BIP 54 (Consensus Cleanup) without mainnet activation ↗參考實作 · 原始發布 2026-07-24 · 查閱 2026-10-22
  6. Bitcoin Core PR #25717:p2p: Implement anti-DoS headers sync ↗既有實作 · 原始發布 2022-07-26 · 查閱 2026-10-22

更正與更新

本文發布後沒有更新。之後若有修改,會建立新版本並在這裡標示更新時間。

內容有誤?請見更正方式,或寄信至 [email protected](請附文章網址、段落與參考資料)。

延伸閱讀

更多 BTC 新聞