待處理交易很多,為什麼礦工還會挖出空區塊?

區塊鏈瀏覽器明明列著大量待處理交易,下一個區塊卻偶爾只顯示一筆交易。這個畫面很容易讓人懷疑:礦工為什麼放著手續費不收,甚至讓有限的區塊空間白白經過?
不過,所謂「空區塊」並非真的沒有任何交易。它至少包含一筆 Coinbase 交易,用來宣告規則允許的區塊補貼;只因沒有收錄其他一般交易,才得到這個名稱。它仍可能是完全有效的新區塊,只是礦工領不到一般交易附帶的手續費。
理解這個現象的關鍵,是新區塊抵達後那段極短的交接時間。礦工必須立刻改用最新區塊的雜湊作為起點,同時確認新歷史、更新可用交易集合並建立下一份完整模板。有些礦池會先派發只有 Coinbase 交易的簡化工作,讓礦機不用等待完整模板;若恰好在過渡期間找到合格雜湊,公開紀錄裡就會出現空區塊。
新區塊會讓舊工作立即過期
每個候選區塊都要引用前一個區塊。當別人先找到有效結果並廣播出去,仍沿用舊起點的礦機,其實是在競爭同一個高度的另一條短分支。若大部分算力已經移到新鏈尖,舊工作即使成功,也更可能成為沒有被延續的落敗區塊。
因此,礦池收到新區塊後,首要工作是把新的前一區塊雜湊送給旗下礦機,讓算力盡快轉向下一個高度。只有 Coinbase 交易的模板需要處理的交易關係較少,可以很快形成一份可運算的工作;這使礦機在完整模板準備好以前,也有機會參加下一輪競賽。
完整模板多做的事情很實在。剛收到的區塊可能已收錄原本等候中的交易,也可能讓某些互相衝突或彼此相依的交易失去資格。建立者要在確認新狀態後重新挑選內容、排列相依順序、計算可領取的總手續費,再更新交易樹摘要。流程可以高度最佳化,仍不等於完全不需要時間。
幾秒算力與交易收入之間存在取捨
先送簡化工作能少掉短暫空轉,代價是它一旦真的挖到區塊,礦工只能取得區塊補貼,放棄原本可收的交易手續費。完整模板愈快送達,這個過渡窗口就愈短;如果礦機沒有及時切換,持續計算舊的空模板,損失的費用也會增加。
所以,空區塊不代表這種策略永遠划算,也不表示所有礦池都採取相同流程。有些營運者寧可等可用交易模板,有些會依網路延遲、設備切換速度與費用水準權衡。偶爾看見一個空區塊,只能證明那次成功雜湊對應的模板沒有一般交易,無法單靠結果還原礦工當時的完整理由。
風險邊界也要說清楚。若只取得新區塊標頭便直接延續,卻沒有確認前一區塊是否有效,雖然可能更早開始計算,也可能把算力押在不合規的歷史上。全節點最後仍會檢查整個區塊;前一段歷史有問題,後續投入再多計算也不會讓它通過。速度上的競爭不能取消驗證責任。
空白也可能來自各自不同的交易清單
另一種情況與交接時間無關。比特幣沒有一份全網同步的等候名單;礦工只能從自己收到並願意接受的交易中挑選。特定交易可能尚未傳到、費率低於本機門檻,或被營運政策排除。早期交易活動很少時,也確實可能沒有其他內容可放。
這表示瀏覽器看到很多待處理交易,無法證明某個礦池當時看見完全相同的集合。反過來說,一個空區塊也無法證明全網沒有交易。公開結果呈現的是該礦工最後提交的模板,不是所有參與者記憶池的聯集。
比特幣的共識規則沒有要求每個區塊至少放入幾筆一般交易。硬性門檻也很容易被建立者用自己產生的交易湊足,未必能真正增加他人的確認機會。規則更關心區塊中的內容是否有效、大小是否合規,以及工作量證明是否達標;要收錄哪些合格交易,仍留給區塊建立者決定。
空區塊仍推進歷史,沒有替等待者確認
有效空區塊會接到目前的鏈尖,增加一層累積工作量,也讓區塊高度往前一步。可是,它沒有替等候中的一般交易帶來交易確認;那些交易仍要等待後續區塊。有限空間在這一輪沒有被使用,也是全體等待者實際承受的機會成本。
因此,看到空區塊時,較穩健的判讀是先看它和前一區塊相隔多久,再分開考慮模板切換、礦機更新、本機交易集合與營運政策。它可能是高速競賽留下的短暫縫隙,也可能反映另一種選擇。空白本身是一項可驗證結果,背後原因則需要更多證據才能判定。