比特幣礦工為什麼會故意藏住區塊?

比特幣礦工找到合格區塊後,通常會立刻向網路公布,因為愈早讓其他人接著挖,自己的成果愈有機會留在有效歷史中。這也讓人自然以為,隱瞞新區塊只會增加失去收入的風險。
可是,比特幣規則能檢查區塊是否有效,無法強迫發現者在某一秒廣播。若一群礦工先把成果藏起來,並在私下分支繼續挖礦,就可能利用資訊差選擇公布時機,讓公開分支上的部分工作最後落選。這種策略稱為「自私挖礦」(selfish mining)。
因此,自私挖礦的核心不在於偽造資料,也不需要先取得整個網路的管理權。它是一場高風險的排序競賽:策略方希望自己藏住的區塊進入累積工作量較多的有效分支,同時讓其他參與者已耗費電力找到的區塊變成落選成果,藉此提高自己的相對收入。
資訊差從延後公布開始
一般情況下,全節點收到新區塊後會驗證內容,再把有效資料轉給其他節點。礦工也會盡快把設備移到新尖端上,避免繼續替舊歷史計算。快速傳播讓眾人較早集中在同一個候選分支,降低同高度區塊彼此競爭的機會。
採取自私挖礦的一方則先保留新區塊,只在自己的群組裡繼續延伸。公開網路看不到這項進度,其他礦工仍會在原尖端上工作。此時形成兩條都可能符合共識規則的分支,只是私下分支掌握在策略方手中。
若策略方再次率先找到區塊,私下領先就擴大;若公開網路追上,它可以立即公布先前藏住的成果,製造兩個同高度候選區塊的傳播競賽。哪一個版本先抵達各地,可能影響誠實算力接下來選擇在哪一側工作。策略方若握有更長的有效分支,也可以在適當時機公開,促使節點改接到累積工作量較多的一側。
額外收益來自讓對手白做工
只有留在最終有效分支裡的區塊,才能保有區塊補貼與其中的手續費。另一側的有效區塊即使曾被部分節點接受,後來仍可能成為落選區塊(stale block),其建立者拿不到那筆區塊收入。
自私挖礦追求的正是這個差距。策略方未必能提高每次雜湊找到合格結果的機率,但若公布時機使對手有較多成果落選,它在最終歷史中的區塊占比,就可能高於自身算力占比。這裡談的是長期相對收益,不代表每次藏住區塊都能賺得更多。
策略本身也會反噬。公開分支若在私下領先建立前快速前進,藏住的區塊可能來不及取得支持;策略方先前投入的電力便由自己承擔。它還必須協調私下分支、掌握網路傳播狀況,並在競賽變化時及時公布。判斷失誤或連線劣勢都可能讓預期收益消失。
它和 51% 攻擊關心的目標不同
自私挖礦最常討論的是收入誘因:低於全網一半算力的參與者,能否靠策略性公布獲得超過算力占比的區塊收入。51% 攻擊則著重多數算力能否持續壓過公開歷史,進而重組近期付款、干擾交易確認或進行雙重支付。
兩者都可能使用私下分支,也都利用工作量競賽,所以容易被混為一談。不過,某次自私挖礦獲得較高相對收入,不等於攻擊者已能穩定重寫任意近期歷史;反過來,掌握多數算力的一方也可能直接審查或重組交易,無須遵循以增加挖礦收入為目的的特定策略。
無論算力多少,策略方公布的資料仍要通過全節點驗證。藏住區塊不能讓超額發行、無效簽章或其他違反規則的內容突然有效,也不會憑空創造額外比特幣。它操弄的是有效候選歷史之間的資訊與時機。
沒有一個適用所有情況的危險門檻
早期簡化模型顯示,少數算力在特定條件下也可能從自私挖礦取得較高相對收益。不過,門檻會隨同高度競賽時有多少其他算力轉向策略方、區塊傳播速度、網路拓撲、參與者協調能力與採用的策略模型而改變。把單一百分比當成現實世界的固定警報線,會掩蓋這些假設。
手續費高低不一也會改變個別區塊的價值,礦池成員能否察覺異常、其他礦工如何調整連線,以及難度調整後的長期效果,都讓實際收益比簡化圖表更複雜。理論結果能指出誘因上的可能漏洞,卻不能保證某個礦池只要跨過一個數字就一定成功。
同樣地,區塊落選率突然上升可以是警訊,卻不直接證明有人故意藏住成果。兩名礦工幾乎同時找到區塊、網路延遲、區域斷線或中繼故障,也可能留下相似現象。外部觀察通常能看見公布後的區塊與傳播結果,無法完整看見每個參與者何時真正發現區塊以及當時的意圖。
快速而分散的傳播仍然重要
更快的區塊中繼能縮短資訊不對稱時間,良好的同伴連線分布也能降低單一參與者長期掌握傳播優勢的機會。這些條件不能禁止礦工延後公布,卻會改變策略成功的機率與成本。算力若集中在少數能緊密協調的實體,對傳播與分支選擇的影響也更值得注意。
所以,自私挖礦揭露的是工作量證明的另一層現實:規則驗證只能排除無效內容,參與者何時分享有效資訊,仍受經濟誘因與網路條件影響。藏住區塊有機會把更多對手成果變成白工,也可能讓自己的成果一起落選。理解這種策略,重點是看清算力、傳播與協調如何共同影響區塊收入,而非把它簡化成必勝作弊或 51% 攻擊的另一個名稱。