2026 年 9 月 11 日,Bitcoin 喺區塊高度 966,500 曾經短暫出現兩個同樣有效的候選區塊。SpiderPool 同 AntPool 都係由同一個父區塊出發、各自成功挖到一個區塊,於是網絡一度有兩條只差一格的分支。
最後唔係由「邊個最早畀某部節點見到」決定勝負,而係 AntPool 的版本先獲下一個區塊延伸。當 966,501 建立喺 AntPool 分支之上,該分支累計嘅工作量(proof of work)較多,網絡便自動收斂到它;SpiderPool 的有效區塊則變成 stale block(過時區塊),不再屬於主鏈。
18
20
22
高度 966,500 當時發生咩事?
據引述 Galaxy Research 的報道,該研究機構的監測節點最初先收到 SpiderPool 的區塊,因此該節點一度將 SpiderPool 分支視為鏈頂。不過,AntPool 同時亦獨立挖到另一個指向同一父區塊的有效區塊。
區塊傳播去全球各個節點需要時間,唔同節點喺同一刻見到嘅「最新區塊」可以不同;呢種近乎同時挖到區塊而造成的短暫分叉,正正係單區塊重組的常見成因。
18
35
最終被接納的 AntPool 區塊,報稱區塊時間戳為 UTC 11:30:30,包括 4,359 宗交易。ForkMonitor 的資料則列出競爭中的 SpiderPool 區塊時間戳為 UTC 11:35:19;但其 bcoin 觀測節點反而喺 UTC 11:30:42 已先見到 SpiderPool 區塊,早過見到 AntPool 區塊。
17
40
呢度有個容易令人混淆的位:區塊標頭時間戳由礦工填寫,屬協議容許範圍內的元資料,唔等於全網實際收到該區塊的精確先後。單一監測節點的「first seen」紀錄,也唔代表其他節點見到的次序。
40
點解 AntPool 最後贏?
Bitcoin 並唔會永久採納某個分支,只因為它最先到達某個節點。節點會跟隨累計工作量最高的有效鏈。
一開始,兩個礦池各有一個高度 966,500 的區塊,工作量相同。其後,下一個高度 966,501 的區塊接喺 AntPool 的 966,500 上面,令 AntPool 分支多咗一層工作量。其他節點於是轉向呢條累計工作量較高的鏈,將它視為規範主鏈(canonical chain)。SpiderPool 的分支未有得到延伸,便被淘汰為 stale。
22
35
換句話講,呢個唔係人手判決,亦唔係礦池之間「投票」;係 Bitcoin 的工作量證明規則自動解決一次短暫競賽。
兩個區塊同獎勵最後點處理?
鏈上監測資料顯示,高度 966,500 的確曾有兩個版本:AntPool 的版本保留喺主鏈,SpiderPool 的版本則標記為 stale。呢唔代表 Bitcoin 帳本永久分裂成兩個版本,而係其中一個短暫分支最終冇被主鏈採納。
22
40
AntPool 獲主鏈接納的區塊,報稱總獎勵為 3.14112795 BTC。至於早前報道提到 SpiderPool stale 區塊約有 3.1389 BTC 獎勵,所提供的主要資料節錄未能獨立核實該精確數字;但結果好清楚:stale 區塊唔喺活躍主鏈內,其 coinbase 獎勵唔會成為已確認、可花費的主鏈獎勵。
22
一個月內第三次,係咪代表 Bitcoin 有問題?
Galaxy Research 將今次事件形容為 Bitcoin 四星期內第三次被報道的單區塊重組。此前兩次分別發生於:
- 8 月 16 日,區塊高度 962,722
- 8 月 24 日,區塊高度 963,853
三次的共同模式都係:不同礦工在非常接近的時間找到有效區塊,網絡因傳播延遲而短暫出現競爭分支;待其中一條鏈累積到更多工作量後,節點便自動統一採納它。
26
35
單區塊重組本身唔足以證明共識機制有漏洞。喺工作量證明系統中,礦工偶爾近乎同步找到有效區塊,係預期內的現象。現有報道將 9 月 11 日的事件定性為正常傳播與共識結果,而非已證實的雙重支付、協議 bug 或攻擊。
23
25
對一般用戶有咩意思?
最實際的教訓係:第一個確認唔等於最終確定。
如果一宗交易只係收錄喺後來被淘汰的 SpiderPool 區塊,原本顯示的一個確認可以消失;交易之後可以重新廣播,或被另一個主鏈區塊收錄。至於已經累積多個後續確認的交易,面對呢類只涉及一個區塊的短暫重組,風險會相應降低。
23
31
所以,商戶、交易所同處理較大金額收款的機構,唔應只憑交易剛進入最新一個區塊就當作最終完成,而應按交易金額及風險,等候合適數量的確認。今次事件反映的,正正係 Bitcoin 為何以後續區塊的累計工作量來建立更高確定性。