几乎每篇比特币科普都会说”平均每十分钟出一个块”,但很少有文章认真回答:为什么偏偏是十分钟?翻遍全部一手材料你会发现一个反直觉的事实——这个参数从诞生起就没有给出过严格的数学推导,它是一个工程上的折中值,而且到今天都没人动过它。
一手材料里能查到的说法
中本聪 2008 年的白皮书里,十分钟出现在一处顺带的估算中:一个不含交易的区块头约 80 字节,如果每十分钟出一个块,一年大约 4.2 MB,这个存储量”不成问题”。也就是说白皮书只是用十分钟去估算磁盘需求,并没有论证十分钟为何最优。
早期官方 FAQ 的口径是:十分钟是传播时间与孤块浪费之间的权衡——新区块广播到全网需要时间,在这段时间里其他矿工还在基于旧链继续算,这部分算力是白费的;出块间隔拉长,这种浪费就减少,但用户等待第一笔确认的时间也变长。中本聪本人在早期论坛回帖里也把十分钟描述为一个方便大家理解网络的”约定”,并承认它随网络变大可能需要调整。
这些说法共同指向:十分钟是一个”先拍一个数、再看演进”的初始假设,不是从公式里解出来的。

源码里它就是一行常量
在 v31.0 源码 kernel/chainparams.cpp 里,主网参数写着 consensus.nPowTargetSpacing = 10 * 60;,上面没有注释推导,旁边只有难度调整周期常量。注意这个”十分钟”是目标值:出块实际是泊松过程,实测平均间隔由总算力和难度闭环决定,单块间隔从一秒到一小时都正常出现。参数真正的作用是给难度调整公式提供分母——每 2016 个块(目标两周)比较实际耗时与目标耗时,把难度按比例拉回。
两侧的成本账
把十分钟挪到别的量级会怎样,可以各算一笔账:
改短(比如一分钟):确认等待缩短是收益;代价是同样的全球传播延迟下,两个矿工几乎同时出块的窗口占比大幅上升,孤块率跳升,链分裂与重组也更频繁。采用短间隔的链通常需要额外机制(更快的区块中继、叔块奖励等)来消化这部分浪费。
改长(比如一小时):孤块更少、传播更从容;代价是确认粒度变粗、转账体验变差、难度调整反馈更迟钝,并且出块奖励在时间轴上更稀疏,矿工收入方差更大。
传播延迟这一侧还有反身性:Compact Blocks 等中继协议把新区块传播做成了”先传骨架再补交易”,网络变快让十分钟在今天的网况下比 2009 年更保守——这也是”不需要改”的技术理由之一。
还有一层常被忽略的账:出块间隔乘以区块大小共同决定链的”记录粒度”。十分钟乘以当前区块吞吐,约等于每十分钟全球结算一批支付;这个粒度恰好落在传统金融清算节奏(信用卡清算、银行间结算的分钟到小时级)的下游,让”等一次确认”具备可解释的现实含义。间隔若缩到几十秒,确认次数变多但每次确认携带的算力担保变薄,安全语义与体验收益并不同步增长。
为什么多年没人改
改这个参数的最大障碍不是技术而是协调:它是共识层常量,所有节点必须一致,改动等于一次全网硬分叉,收益却主要是体验层面。围绕它的公开提案(比如降低出块间隔配合链外扩容)都停留在讨论阶段。一个 2009 年拍出来的数,靠”改动成本远高于收益”锁定至今,这在协议设计里并不罕见——它更像宪法的沉默条款,而不像仪表盘上的可调旋钮。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。