比特币出空块,不是因为矿工"没看到"待确认交易,而是因为他们在抢时间。当一个新的区块刚刚被广播出来,矿池需要短暂的时间去下载、验证这个区块,并从自己的交易池里筛出下一块能打包的交易。在这段窗口期里,继续用旧的交易列表挖矿有风险——旧列表里可能包含刚刚已被确认的交易,重复打包会让自己的区块作废。为了不让算力空转,矿池会立即切换到一个只包含Coinbase交易(矿工奖励)的"最小模板"上开始哈希。如果运气足够好,在这个极短的窗口内就找到了下一个块,这个块自然就是空的。
所以,待确认交易当然可以不被打包。比特币的共识规则里,没有任何一条要求矿工必须把交易池里的交易塞进区块。打包交易对矿工来说是收益选项,不是强制义务。
矿工为什么不等等再挖
算力是持续消耗电费的,停一秒就浪费一秒。新块到达后,矿池面临一个取舍:等自己把交易验证完、组装出一个"满"的区块模板再开挖,还是立刻用"空模板"先挖着,边挖边等完整模板就绪。
2026年6月SpiderPool挖出的高度954,352的空块是一个典型例子。它距离上一个区块只有62秒。如此短的间隔意味着矿池很可能还没完成新模板的组装,就发现自己的最小模板命中了有效哈希。这个块只包含Coinbase交易,重量约1.16 kWU,而比特币区块上限是4,000 kWU,空置率超过99%。SpiderPool的历史空块率超过5%,研究将其归为一种有意为之的运营策略,而非技术故障。
换句话说,矿工不是不能打包交易,而是在那个具体的时间点上,放弃手续费收入去换取更早开始哈希的机会,在他们看来更划算。尤其是在上一个块刚结束不久、交易池里手续费总额不算特别高的时候,这种取舍更容易发生。
"有待确认交易"和"空块"之间没有矛盾
容易产生的误解是:交易池里明明有交易,矿工为什么不顺手拿几个放进去?
交易池(mempool)只是节点本地缓存待确认交易的地方,每个矿池节点看到的交易池并不完全相同,传播延迟和各自的转发策略都会造成差异。矿工构建区块模板时,需要从自己的交易池里挑选交易、检查依赖关系、计算手续费率。这个过程需要时间。空块恰恰是跳过这个挑选过程的产物:矿工连交易都没选,直接拿一个只含奖励交易的空壳去哈希了。
所以"有待确认交易"描述的是网络状态,"出空块"描述的是矿工在那个瞬间的操作选择。两者并存不构成逻辑矛盾,只说明矿工选择了速度优先。
空块对普通用户意味着什么
一笔交易没被这个空块打包,不会失效。它仍然留在矿池节点(以及其他节点)的交易池里,等待下一个区块。空块的影响是延迟,不是拒绝。如果连续出现空块,或者网络拥堵时空块频繁发生,确认时间会被拉长,但交易本身不会因此作废。
从网络层面看,空块不违反共识规则,也不影响链的安全性和最终一致性。它消耗了区块空间却没有处理用户交易,效率上是一种浪费,但矿工仍然贡献了有效的工作量证明。批评者认为空块浪费了本可用于确认交易的稀缺空间,支持者则指出矿工有权选择自己区块的内容,协议靠手续费激励来引导他们打包交易,而不是靠强制。
真正值得留意的不是偶尔一个空块,而是某个矿池的空块率是否持续偏高。SpiderPool超过5%的空块率之所以被研究机构关注,是因为它反映的是一种系统性的运营偏好,而不是偶发的时序巧合。如果一个占有可观算力份额的矿池长期以速度优先、牺牲手续费收入,它确实会在拥堵时期降低网络整体的交易处理效率,但这是激励结构下的正常行为,不是规则被破坏。



