本章目标: 大约两年间,比特币因为「区块该多大」把自己撕成了两半。争论名义上是一兆字节的区块空间,真正的战场是:谁有权修改比特币的规则——矿工、大公司,还是运行节点的普通人。本章复盘战争如何开始、失败的协议与替代软件、围绕 SegWit 的僵局、用户逼出答案的那一刻,以及分叉出去的两条链。结局就是回报:它决定了此后每一次比特币升级的处理方式。
一场关于一兆字节的战争
比特币区块有大小限制。中本聪 2010 年悄悄加上,每个区块 1 MB。那时区块几乎全空、填满毫无成本,所以上限是对「有人往链里塞垃圾」的廉价防御。当时没人把它当神圣数字——它就是个临时护栏。
到 2015 年,护栏开始勒紧。繁忙时段区块被填满、确认等待变长、手续费悄悄爬升。问题显而易见:要不要提高上限?
回答这个问题,被证明是比特币有史以来最艰难的一件事。争论从 2015 年 8 月左右一直打到 2017 年 11 月。它把公司、开发者、矿工、网络社区切成敌对阵营,最终以两条永久分叉告终。Jonathan Bier 后来为此写了一整本书——《The Blocksize War》——书名把气氛拿捏得很准。
两边的分歧
争论把人分成了两个阵营,分歧在于「比特币到底为了什么」。
大区块派想尽快、大幅提高上限。理由直白:比特币应该作为日常电子现金运作,手续费应该便宜;区块装满了,那就把区块做大。磁盘和带宽又便宜又越来越便宜,凭什么忍受人为制造的拥堵?阵营里有重量级人物:中本聪亲自托付项目的 Gavin Andresen、开发者 Mike Hearn、企业家 Roger Ver,以及以比特大陆吴忌寒为首的大型中国矿场。
小区块派想保持小区块、用别的方式扩容。对他们来说,核心是去中心化。运行全节点的全部意义就是亲自验证规则而不是信任别人。区块越大,运行节点越贵,愿意跑的人越少。推到极端,验证就会集中到几座数据中心——那恰恰是比特币要避免的卡脖子点。更好的做法是保持底层精简、提高既有空间的利用效率、把日常支付量搬到上层系统,比如闪电网络。阵营里包括大部分 Bitcoin Core 开发者。
这里值得公道一点,因为当时的漫画式描绘是「一方想让比特币成长,另一方想勒死它」。不是这么回事。双方都想让比特币扩容;他们分歧的是怎么扩,再往下一层,分歧的是谁有权拍板。而战争最终裁决的,正是第二层分歧。
替代客户端
大区块阵营的第一步棋,是绕开 Bitcoin Core、发布内置更大上限的竞品软件。
Bitcoin XT 打头阵,2015 年 8 月,由 Mike Hearn 和 Gavin Andresen 基于 BIP-101 构建——上限提到 8 MB,然后持续翻倍。思路是:只要足够多的矿工和用户跑 XT,XT 的规则自然就成了比特币。它赢得一阵关注,然后淡出。
Bitcoin Classic 随后登场(2016 年初),方案更温和:直接提到 2 MB。Bitcoin Unlimited 是三者中最雄心勃勃的——干脆取消固定上限,代之以所谓「涌现共识」:节点运营者和矿工各设自己偏好的大小,网络 supposedly 自行收敛。它出现于 2016 年初,到 2017 年已成为大区块阵营的旗舰。
Bitcoin Unlimited 也是这套思路摔得最难看的地方。2017 年 3 月,它的代码漏洞被人利用,网上大部分 Bitcoin Unlimited 节点同时崩溃——数量从约 780 骤降到约 250,直到打了补丁的节点重新上线。原因是一条调试断言被留在了生产代码里,一个畸形消息就能打瘫一个节点。对一个全部卖点就是「由我们来接管比特币」的项目,七成节点被一个构造好的数据包放倒,实在不好看;这也让小区块阵营更加确信:这套软件没准备好扛网络。
没有一个替代客户端接近过接管成功。矿工们暧昧过,但切换代价高,而由交易所、企业和普通用户运行的那批节点——真正定义哪条链是「比特币」的接受度所在——大多留在 Core。但压力真实而持续,它构成了后续一切的背景板。
SegWit,以及它为什么卡住
小区块阵营对拥堵的答卷是 SegWit,全称隔离见证。
SegWit 很聪明。它把见证数据——证明交易被授权的那些签名——从主区块结构中移出,放进独立区域。这顺带修掉了一个积年老毛病:交易延展性,一个让交易 ID 在确认前可被改动的怪癖,它使得在比特币之上搭建支付系统并不安全。修掉它,为闪电网络清了路。副作用是容量也提升了:重构后的区块能装更多交易数据,有效上限约翻倍。而且这一切以软分叉完成——向后兼容,不强迫任何人立即升级。
于是 SegWit 同时给了小区块派想要的容量与二层地基,还避开了争议性硬分叉。卡点在激活机制:SegWit 要等矿工在最近 95% 的区块里发出支持信号才启动,而站队大区块的矿工干脆不发信号。一个生态大多数成员想要的升级,被一群不肯翻一个二进制位的矿工冻住了。
用握手打破这类僵局的尝试不是没有过。2016 年 2 月,一组 Core 开发者与主要矿池在香港会谈超过 18 小时后宣布「比特币圆桌共识」。合计产出超八成区块的矿工承诺运行 SegWit;作为交换,在场的开发者同意编写约 2 MB 硬分叉的代码并在数月内提出。看着像停火协议,但它没撑住:开发者以个人身份签署、无法替 Core 全体承诺;硬分叉代码始终缺乏广泛支持;觉得协议没被兑现的矿工也不着急激活 SegWit。双方的期限双双失约。到 2017 年初,两边比以前更互不信任,而 SegWit 依然卡着。
AsicBoost 疑云
矿工为什么要挡一个生态大部分成员想要、连自家客户都在要求的升级?2017 年 4 月,Core 开发者 Greg Maxwell 给出了一个火上浇油的答案。
他在开发邮件列表上指出:一种叫 AsicBoost 的挖矿优化能让硬件更高效、单芯片收益更高。它的一种常用「隐蔽」用法与 SegWit 不兼容;一旦 SegWit 激活,那个特定技巧就会失效。他还指出某大型制造商的芯片似乎支持它。那家公司是比特大陆——最大的矿机厂商、大区块阵营的核心玩家。
如果属实,意味着部分对 SegWit 的抵制,与其说是区块哲学,不如说是守护一台值钱的私有印钞机。比特大陆回应称其芯片确实支持 AsicBoost(一些竞品同样支持),但只在测试网上测过;公司否认在主链使用,并否认这与抵制 SegWit 有任何关系。
「谁在何时用了什么」的真相从未被完全钉死,你也无须站队就能明白它为什么重要。这项指控给大量旁观者重新框定了整场冲突:僵局可能是披着原则外衣的经济私利在维持。小区块阵营由此更不愿继续谈判。
纽约协议
2017 年 5 月,SegWit 依然卡死,另一拨人试图强行促成和解。在纽约的 Consensus 大会上,一批企业和矿工签署了后来所称的纽约协议。
协议由 Barry Silbert 掌舵的风投公司 Digital Currency Group 组织。22 个国家的 58 家公司签字,签署方宣称代表全网约 83% 的算力。方案名为 SegWit2x,是一个两半的妥协:先激活 SegWit(小区块派要的);几个月后硬分叉到 2 MB(大区块派要的)。各得一半。
问题在于房间里没有谁。这是交易所、钱包公司、矿池之间的协议。实际维护 Bitcoin Core 的开发者不在其中;从任何有意义的层面说,运行节点的用户也不在。对小区块阵营,这正是全部反对意见所在:几十位高管在会场签一份文件,改不了比特币的规则,因为执行规则的不是他们。执行规则的是运行节点的人,而节点会拒绝任何违反其所选规则的区块——不管区块谁挖的、协议谁签的。(我们的比特币治理词条讲清了那道否决权放在哪里、为什么。)
这份协议没有终结战争,而是安排好了终局对决。一边:手握协调方案、算力绝对多数、行业最大名号的产业联盟。另一边:运行节点的用户——而他们已经有了自己的最后期限。
用户设下死线
用户的武器其实在纽约协议签署前就已上桌。2017 年 2 月,一位化名 shaolinfry 的程序员提出了「用户激活软分叉」(UASF)。
想法在 2017 年 3 月成文为 BIP-148,把常规顺序倒转过来:不再等矿工发信号,普通节点运营者设定一个旗日——2017 年 8 月 1 日——此后他们的节点将拒绝任何不给 SegWit 信号的区块。威胁递到了矿工手里:继续拖,用户和企业的节点就拒绝你的区块,而你在分裂错误一侧挖到的币,将不是交易所和用户认的比特币。
这是一招真有风险的棋。若矿工识破虚张声势,比特币可能在 8 月 1 日分裂成两条链、胜负难分。但运动燃起来了:「UASF」帽子出现了,节点运营者公开宣称自己在跑 BIP-148,企业开始为分裂制定应急预案。很少作为有组织集体行动的用户,此刻正在执行自己设定的死线。纽约协议的紧迫感部分正来自这本日历——产业想在 8 月 1 日用户逼宫之前,以协议方式激活 SegWit。
面对旗日,矿工眨眼了。矿机公司工程师 James Hilliard 给了个体面的台阶:BIP-91——一套让矿工在更低门槛下把 SegWit 信号变为彼此强制的机制,抢在 8 月 1 日前激活 SegWit、避开 BIP-148 的分裂。BIP-91 约在 2017 年 7 月 20 日生效;SegWit 随后于 8 月初通过最终信号门槛、8 月 24 日在区块 481,824 上线。拖延两年的升级终于激活——是用户的死线把它推过去的。
8 月 1 日:Bitcoin Cash 分离
SegWit 激活不等于所有人归队。那群从头就不想要 SegWit、把大区块看得高于一切的派系,不会接受这个结局。2017 年 8 月 1 日——UASF 划线的同一天——他们分叉出去另立链条:Bitcoin Cash。
Bitcoin Cash 保留了分叉前的全部交易历史,所以每个持币人自动持有等量新币。此后新链走自己的路:拒绝 SegWit,区块上限直接提到 8 MB、后到 32 MB,立志成为大区块派一直主张的廉价支付链。两条链都在运行,各自都按某种定义自称「真正的比特币」。市场没有犹豫多久:原链保住了压倒性多数的算力、价格、开发者和「Bitcoin」这个名字。
分叉没有停在这里。2018 年 11 月,Bitcoin Cash 自身再度分裂成 Bitcoin Cash 与 Bitcoin SV——一场恶斗甚至包括所谓「哈希战」,双方往各自的链上倾泻算力以证明正统,Craig Wright 阵营则扬言直接攻击对方链条。Wright 自称中本聪;2024 年英国法院全面驳回其主张,认定其用于支持身份的文件系伪造。链条上的每一次分叉,用户和算力都比上一次更少。这个模式本身也是教训的一部分:分叉很便宜,但每条新链只带走了原链价值、安全和用户的一小片。
11 月:2x 的那半被取消
纽约协议还剩最后一截。SegWit 已激活,但后半场——2 MB 硬分叉——定于 2017 年 11 月中旬左右。
它从未发生。日期临近,支持不断流失:签署企业开始退出,开发者社群压倒性反对,而技术上也没有任何干净的办法把一次变更强加给「继续运行旧规则就好」的用户。2017 年 11 月 8 日,方案的部分组织者自己发布了一份简短声明,宣布暂停。他们写道:升级未能建立足够共识,保持社区完整比强行推进更重要。
这份暂停声明通常被标记为战争结束。想走的大区块派已经走了(Bitcoin Cash);靠产业协议放大比特币本身的尝试就此死亡。小区块赢了。更重要的是,运行节点的人赢了。
战争从来就不是关于兆字节的
把日期和缩写都拿掉,底层的问题一目了然:这场战争从来不关于 1 MB 对 2 MB、8 MB 还是 32 MB。它问的是:比特币经济里的强势玩家,能不能在他们想改规则的时候改掉规则。
战争给出的答案是:不能,至少不能单方面。算力的绝对多数做不到。与算力结盟的行业头部公司联合起来也做不到。拦住他们的,是整个系统里最不起眼的部分——成千上万独立运行节点、执行自己选择的规则、拒绝其余一切的人。
这就是持久的战果。变更比特币的共识规则,需要构成网络的各个群体达成大体一致,而其中任何一方——包括普通用户——都可以拒绝。过程缓慢而混乱,2015 到 2017 年甚至相当难看,但它有效。这就是为什么 2100 万上限可信得没有任何公司承诺能够企及:一场两年内战都逼不动一条反垃圾参数,更没人能悄悄改掉供应时间表。
证据写在战后。远不具争议性的升级 Taproot 在 2021 年激活时,走的是一条精心规划、共识充分、毫无戏剧性的路径。扩容战争的教训被吸收了:大变更从此等待全网就绪。
战争留下的底账
几件战争遗物至今还在,前提是你知道往哪看。
媒体战线与技术战线同样激烈。两大线上论坛——r/bitcoin 子版块和 bitcointalk——由小区块一方重度管理,把大区块阵营大量推向了对手版块 r/btc 和一个平行媒体生态。双方互指审查,且都部分成立。那个年代的一些域名封禁至今仍在默默执行——到 2026 年,仍有战争年代被拉黑的站点进不了 r/bitcoin,堪称媒体战的一枚活化石。
AsicBoost 的故事有个安静的尾声:那项优化后来以与 SegWit 兼容的形式公开支持、广泛使用,原来的指控失去了大部分戏剧性,但 2017 年谁到底做过什么,仍未完全了结。
分叉们的币也还在交易。Bitcoin Cash 和 Bitcoin SV 都还活着,各有社群,体量是比特币价值、安全与活跃度的零头。那些确信大区块才是未来的人,得到了自由去亲手建造他们想要的东西——他们做了——而市场用之后的岁月裁决了它真正想要的愿景。
这场战争买来了什么
本章要记住的事:比特币对变更的抵抗力是刻意设计的,而这场战争证明了它在压力下守得住。
- 没有人说了算——这一点在最大压力下兑现了。 规模最大的一次协同改规尝试失败了,不是输在投票,而是输在运行节点的用户不配合。这才是去中心化被真正测试时的样子。
- 经济多数是最终否决权。 最后一票属于亲自验证自己交易的人——这就是为什么「跑自己的节点」是一个有真实分量的行为。
- 硬通货的承诺因此可信。 一个委员会就能修订的 2100 万上限一文不值。扩容战争表明:连一个听起来微不足道的变更都几乎推不动——重要的规则因此安全。
- 分叉是泄压阀。 不同意的人可以离开、另立链条。Bitcoin Cash 和 Bitcoin SV 都走了。他们带不走的是网络的价值,而这种退出自由,正是原链保持凝聚的原因之一。
战争令人精疲力竭,也并不体面。但它回答了一个比任何区块大小都重要的问题,而这个答案,正是规则无需依赖任何特定的人去维护也能成立的原因。