NONDUBITO

凿构周期律 · 区块链系列 02 / 21

从 CPU 到矿场

GPU、ASIC、矿池与预售矿机如何把人人可参与的计算,变成资本、能源与地理高度集中的产业。

一 一个君子协定

2009年12月12日,中本聪在论坛上回了一则帖子。

他说,大家最好有一个君子协定,尽量把 GPU 军备竞赛往后推一推。

理由他写得很具体:当时普通人用 CPU 还能比较平等地参与,而一旦需要新加入的人去折腾显卡驱动和兼容性,门槛就抬上去了。

这段话的时间点要摆正。

它不是在 ASIC 已经铺开之后回头怀念 CPU 时代。它写在 GPU 大规模进入网络之前,是一次预判。

第一篇里那封写给 laszlo 的私人邮件是 2010年5月,内容也是同一件事的顾虑。也就是说,同一个人在半年里至少说过两次。

接下来的五年,这件事按他担心的方向走完了全程。

而余项在这里已经可以先点一次名。这套设计要通约的是算力:谁算得多,谁拿到新币。这把尺子干净得几乎不像人造的,它不问你是谁,不问你在哪一国,不问你有没有人担保。而它一开始转就会把算得少的那些人往外推,而被推出去这件事,在这把尺子上不显示为任何东西。

中本聪那句话担心的正是它。

而他担心的说法也要看准。他没有说这会毁掉什么,也没有说要禁止谁。他用的词是君子协定,也就是一件全靠自觉,没有任何强制手段的事。一个把不需要信任写进设计的人,在这件事上只能指望大家讲道义。

而这一节要先立一个判断,因为它决定后面七节怎么读:这个过程里,几乎每一步都是有人在做完全合理的事。

没有一步需要谁存心为恶,也没有哪一步是偷偷进行的。每一样新东西都发在公开论坛上,附着实测数据,欢迎别人复现。

这一点后面会变得很要紧。这个域里后来确实出过大量真正的欺诈,而挖矿工业化这一段基本不属于那一类。它是一段几乎全程公开,每一步都讲得出道理的过程,而结果仍然是那样。

还有一个说法要先拆掉。

CPU 到 GPU 到 FPGA 到 ASIC,这个四级跳适合做教学示意,不适合当史料。原始材料给出的是一段技术世代重叠的过程:GPU 已经存在的时候 CPU 还在矿池里;FPGA 的单位算力购置成本早期并不一定比 GPU 低;Butterfly Labs 开始收 ASIC 订单的时候 Avalon 还没有公告;而 Avalon 真正交货的时候,Butterfly Labs 的客户仍然在等。

四个整齐的日期区间是后来整理出来的。当时的人是在几条线同时往前走的中间做决定的。

这个纠正对整个系列有用。构走过的路被后人整理成阶段,几乎是必然的,因为不整理就讲不清楚。而整理这个动作本身会抹掉一样东西:当时的人并不知道自己站在哪一级上,也不知道下一级什么时候来,更不知道自己刚买的机器会在几个月后变成什么。

二 两个数量级

先看硬件本身,因为后面所有的事都压在这几个数上。

CPU 这一级有一件事容易被略过:一台 CPU 的算力从来就不是一个固定的硬件常数。2010年论坛上的实测表里,AMD Phenom II X3 720 用一个常见的矿工程序大约 7.2 MH/s;而 Intel i7-980X 的记录会随程序,线程数和频率变化,从不到 10 MH/s 到大约 25 MH/s 都有。

同一颗芯片,换个程序,差好几倍。

这一点在后面几节会一直有用。算力这个数看上去像一个物理量,像重量或者长度,而它其实是硬件,软件和配置共同决定的。构在这里量的第一样东西,就已经不是一件纯粹的自然事实。

GPU 这一级的分界线,可以定在 2010年秋天。

2010年9月的论坛材料已经明确写着:ArtForz 用大约 12 张 Radeon HD 5770,个人算力超过 1 GH/s,而当时整个网络估计只有 5 到 6 GH/s。

一个人,占了全网五分之一上下。

而这个人用的是十几张可以在任何一家电脑店买到的显卡。

这一条要单独摆出来,因为它推翻了一个很流行的时间感:矿场集中化不是到了 ASIC 才第一次出现。2010年9月就出现过一次,只不过当时这种集中还可以用消费级显卡在自己家里组装出来。

两件事要分开:门槛低,和不集中,不是同一件事。2010年9月的门槛低到任何人都可以去买显卡,而集中已经发生了。集中的原因不是别人被挡在外面,是别人没有想到,或者想到了不肯花那个钱。

这个分别在后面十九篇里会反复出现,而且越来越难分。一样东西所有人都可以参加,和所有人实际上都参加得起,中间隔着钱,隔着信息,隔着一个人肯不肯在一件还看不出用处的事情上先押一笔。

单卡的数字是这样的:一张 Radeon HD 5870 论坛实测约 299 MH/s,上市定价约 379 美元,典型板卡功耗约 188 W。折下来大约 1.27 美元每 MH/s,0.63 W 每 MH/s。

相比前面那颗 7.2 MH/s 的 CPU,差了大约四十倍。

要说明的是,这里的美元每 MH/s 只用于横向比较,不是矿业财务意义上的成本核算。显卡是一件可以拿去打游戏的通用设备,而后面那些专用矿机除了算哈希什么也做不了。同一个数字,底下的东西不一样。

FPGA 这一级最容易被讲错。

开源的 FPGA 矿工代码至少可以追溯到 2011年5月20日。商业化的板卡随后出现,ZTEX 的 USB-FPGA Module 1.15x 大约 190 MH/s,8.5 W,单板约 460 美元,五片价约 430 美元。

折下来大约 2.42 美元每 MH/s。

比 GPU 贵。

也就是说,FPGA 并不是在购买一单位算力要花多少钱这件事上压倒 GPU。以发行价算,消费级显卡反而更便宜。

它真正发生数量级变化的地方是电。8.5 W 对 190 MH/s,约 0.045 W 每 MH/s,而前面那张 5870 大约 0.63,相差约十四倍。

这一步比它看上去更要紧。

因为从这里开始,矿业的优化目标换了。不再是有没有足够快的桌面硬件,而是每一瓦能生产多少哈希,同一个机架能塞进多少算力。ZTEX 自己的销售帖就是直接用每瓦算力在讨论竞争力的。

从个人爱好变成工业设施的那一步,发生在指标换掉的时候,不是发生在某个人决定要建厂的时候。

ASIC 这一级把这两个方向同时推到了底。

Avalon 第二批的预售参数留下了一组很干净的工业化数字:大于 60 GH/s,6.6 到 6.7 W 每 GH/s,单价 1,500 美元,600 台,计划 2013年3月6日到 4月5日发货。

按 60 GH/s 保守算,资本成本不高于 25 美元每 GH/s,也就是 0.025 美元每 MH/s;整机电力约 396 到 402 W。

和 2010年那张 5870 比:硬件的单位算力成本下降了约五十倍,功耗从 0.63 W 每 MH/s 降到约 0.0066。

三年,两个数量级。

而这两个数量级不是同一件事的两次改进。第一个数量级降的是买机器要花多少钱,第二个数量级降的是机器跑起来要烧多少电。前者决定谁买得起,后者决定谁开得起。到 ASIC 这一级,这两个问题的答案开始指向同一批人。

三 同一台机器

难度这条曲线是全篇的枢纽。

先说口径。下面的等效全网算力,是按难度乘以二的三十二次方再除以 600 秒算出来的,也就是难度对应的十分钟稳态算力,不是某个网站按过去二十四小时实际出块数估计的滚动值。后者会因为区块到达的随机性上下波动,两者不要求完全一致。

几个观察点:

2010年5月中下旬那个难度周期,难度约 11.846,等效算力约 84.8 MH/s。

2011年6月15日,难度 876,954.493513,约 6.28 TH/s。

2012年11月28日,第一次减半,区块 210,000,难度约 3,438,908.96,约 24.62 TH/s。

2013年12月下旬,难度约 1,180,923,195.26,约 8.45 PH/s。同一个十二月的月初难度还只有 707,408,283,一个月里经历了多次大幅调整。

2014年12月30日,难度约 40,640,955,016.58,约 290.92 PH/s。

四年半,从 84.8 MH/s 到 290.92 PH/s。

这中间还有一个细节:2013年那一整年,难度上调了三十次,只下调过一次。也就是说,那一年里几乎每两周,所有已经在挖的人就被往后推一格。

往后推一格这个说法要落到具体的钱上。一台按 2013年3月的难度算得出回本周期的机器,买的时候算的是那个难度。而它到手之后每两周被推一次,推到某一格上,回本周期就从几个月变成永远回不了。买它的人没有做错任何计算,他只是没有办法把两周之后的难度算进去,因为那取决于别人买了多少机器。

而真正冷的不是这条曲线,是把同一台机器放上去看。

一台 66 GH/s 的 Avalon,2013年1月30日到手那天,占全网约 0.31%,单独挖平均 2.24 天能出一个区块。当天论坛上有人用 66 GH/s 和难度 2,968,775.33208 估算,这台机器每天可以产出约 11 枚。

同一台机器,到 2013年12月下旬,占全网约 0.00078%,平均 889 天一个区块。

同一台机器,到 2014年底,占全网约 0.0000227%,平均 30,610 天,大约 84 年。

机器一个零件都没有换。

变的是别人。

一台机器的收益,取决于所有别的机器加起来有多少。这在别的行业里也有,而很少有这样纯粹的:一个面包师傅多开一家店,不会让别家的烤箱变慢;而一台矿机接上电,确实会让此前所有的矿机都变慢一点,而且是即时的,可计算的,精确到下一个难度周期。

构在这里做的动作非常干净,干净到几乎不像一个动作:它不淘汰任何人,它只是把标准往上抬,而抬的依据恰恰是所有人自己的努力。

每一个新加入的矿工,都让所有已经在里面的矿工挖得更慢,包括他自己。

这是这个域里第一次出现的一种结构,而它后面还会以很多形式回来:一个人为自己做的最优选择,同时是所有人处境变差的原因,而且包括他自己在内。没有人可以靠不参加来避免它,因为不参加只意味着更快被推出去。

而这条曲线是协议自己写的。每 2,016 个区块调整一次,按十四天的目标耗时反算。中本聪 2010年2月解释它的时候用的就是这个算法:一轮只花了 9.4 天,新难度就乘以十四除以 9.4。

没有任何一个人可以决定它。也没有任何一个人可以停下它。

这一句既是这套设计最漂亮的地方,也是它最难对付的地方。漂亮在于没有人能操纵发行节奏,不会有谁半夜多印一批。难对付在于,当这条曲线开始伤人的时候,也没有一个可以去找的人。第一篇里说过构在这里是自己执行的代码,这就是第一个具体的例子。

方差是另一条要说的。

一台 299 MH/s 的显卡,在 2011年6月那个难度下,平均约 146 天才能出一个区块。按泊松分布算,一个月完全没有区块的概率大约是 81%。

一台 215 MH/s 的 FPGA,在 2012年减半那个难度下,平均约 795 天一个区块。一整年一个区块也没有的概率大约是 63%。

这两个概率只由难度和算力推出来,和矿工的技巧没有任何关系。

一个人可以什么都做对,买了当时最好的硬件,程序调到最优,机器一天二十四小时不停,然后一整年颗粒无收。

矿池就是从这个地方长出来的。

四 二万人

商业模式的真实形状,先从预售这一层看。

到了 FPGA 和 ASIC 阶段,有一件事发生了变化,而这个变化比硬件本身更要紧:制造商可以在芯片还没有流片成功之前,就收到全额预付款。

Butterfly Labs 是这条路上最完整的案例,因为它后来变成了一起联邦执法案件,留下了法院材料。

按 FTC 后来提交的起诉书,BFL 从 2012年6月开始广告 BitForce SC 系列,价格从 149 美元到 29,899 美元,告诉消费者产品已经进入最后开发阶段,初始交付计划是 2012年10月。所有订单要求在下单时全额预付,可以用 PayPal,比特币或者电汇。

2012年10月没有交付。

截至 2013年4月1日,仍然没有向客户交付任何一台。

截至 2013年9月,超过 20,000 名已经全额付款的消费者还没有收到机器。

FTC 的起诉逻辑值得看清楚,因为它不是泛泛地说消费者不满意。

它把交付时间,难度,算力,功耗和投资回报放在同一条因果链上。BFL 自己推广的收益计算器就要求输入挖矿难度和交货日期;而 FTC 指出,随着矿工增多和硬件更新,旧设备会迅速接近淘汰,因此及时拿到最新设备对能不能回本至关重要;起诉书又称,BFL 实际交付的设备在不少情形下已经过时,所挖到的比特币只是按承诺时间交付本可挖到的一小部分。

把第三节那张表接上来,就知道这条因果链有多硬。

六个月到一年的延迟,在 2013年意味着的不是晚点收货。它意味着同一台机器从两天出一个区块,变成八百多天出一个区块。

2014年9月,FTC 取得法院临时限制措施,BFL 业务受到法院控制。2016年双方和解:对 BFL 和 Sonny Vleisides 有金额约 3,861 万美元的判决安排,但在资产披露真实并支付规定的较小金额的条件下暂停执行;Darla Drake 的判决为 135,878 美元,通过交出包括用公司矿机获得的比特币在内的资产来满足条件。命令还限制此后对产品可获得性,盈利能力和新旧状态作欺骗性陈述。

Avalon 是另一种情况,而且不能和 BFL 压成一件事。

Avalon 的公开预售公告是 2012年9月17日,当时的保守计划是 2013年1月到 2月完成生产,从 2月开始按订单顺序发货。实际情况是 1月20日就公告开始发货,第一台寄给了 Bitcoin Core 的开发者 Jeff Garzik;1月30日论坛上出现了收货照片和运行验证,实测约 68 GH/s。

也就是说,Batch #1 本身不能作为晚几个月交货的例子。

而 Batch #2 的预售帖里有一句写得非常直白:公司需要在周末之前拿到钱,去下零部件的订单。

这一句把预售的性质说尽了。

买家付的不是货款。买家付的是这家公司的营运资本。

而这件事在当时并不是秘密,帖子就那样写着。买家看得见,而且还是买了。原因也不难理解:排在前面的订单先拿到机器,而先拿到机器意味着在难度涨上去之前多挖几周。预付是在买一个位置。

现在把两头追一遍。

厂商这一头拿到的是:无息的生产融资,零库存风险,以及需求确认。

买家那一头承担的是:硬件最终性能的风险,交付时间的风险,以及在等待期间难度上涨的风险。

三样风险全在一边,而拿到钱的是另一边。

这是这个系列里第一次出现的不对称,而它出现在第二篇。

要补一句公道话。预售这个安排本身不是骗局,它是硬件行业常见的做法,尤其在需要先流片的芯片上。没有预付款,一家新公司根本做不出第一批芯片。问题不在于谁承担风险,而在于承担风险的那一方拿不到与风险相称的补偿:延迟发货的损失全部由买家吃下,而按时发货的好处并不额外归买家。

还有一条界线要守住。

厂商是不是把最好的机器留下先挖,等收益下降了才发货,这个说法在当时非常流行。证据强度要分层:FTC 已经证明的核心是延迟,未交付,以及设备到手时已经过时;和解材料显示公司管理者确实曾用公司的机器取得过比特币。而一位私人原告的诉状里提出过更直接的指控,说被告使用了本应属于客户的矿机挖矿。

诉状里的主张不是经过审理确认的普遍事实。

公司机器被用于挖矿,和所有迟交的客户机器都被秘密挖过,是两个不同的命题,而现有材料只支持前一个。

守住这条界线不是为了替谁开脱。是因为这个域后来会出现大量真正的欺诈,而如果把指控和认定混着写,到了真正需要直书的那几篇,句子就不值钱了。

五 谁承担倒霉

矿池这一层,是这个系列里少见的一处:风险的分配被公开定价,而且可以选。

Slush Pool 的原始帖子发在 2010年11月27日。发帖人 Marek Palatinus 的问题定义非常具体:GPU 已经让别人的单独挖矿变得困难,而他自己的三台 CPU 很长时间找不到一个区块。

他在帖子里举的算术很朴素:如果一个矿工有 1,000 kH/s,而池子总算力 20,000 kH/s,池子平均两天找到一个 50 枚的区块,那么这个矿工按算力占比大约可以拿到 1.25 枚每天。他特别把这种小而连续的回报,和单独挖矿可能等上几周几个月才一次拿到 50 枚做了对照。

这个池子挖出的第一个区块是 2010年12月16日,区块 97,834。

而原帖底下几乎立刻就有人指出了一件要紧的事:两台 1,000 kH/s 的机器和一台 2,000 kH/s 的机器,总的期望成功率是一样的。

矿池不改变期望收益。

它改变的是收益分布的方差,和到账的时间。

一个人一年颗粒无收的概率从 63% 变成接近零,而他一年的期望收入没有变。他买到的是确定性,付出的是费率。

分配算法后来的演变,是被套利逼出来的,而这条线很能说明构的性质。

最初的做法接近按一轮里提交的工作量比例分配。很快出现了 share 这个东西:矿工不必每次都提交真正达到全网难度的稀有哈希,只要提交满足较低的池内难度的工作量证明就行,这些低难度的 share 用来统计每个人贡献了多少计算量,而真正达到网络目标的那一个哈希才产生区块。

但简单的按比例分配产生了新的问题。

Meni Rosenfeld 在 2011年的矿池收益分析里指出:如果一轮已经持续很久,积累了很多 share,而区块仍然没有找到,那么之后新提交的一份 share 在按比例方案下的预期价值会下降。于是矿工可以只在新一轮的开头加入,等这一轮变老了就离开。

这就是 pool hopping。

Slush 因此转向了按分数计的办法:越新的 share 权重越大,旧的 share 分数随时间衰减。

这里要停一下,因为有一个流传很广的说法不对。

Slush 从一开始就是 PPLNS,这个说法不符合原帖。最初是按比例,然后是用低难度 share 衡量工作量,再往后才发展成最近的 share 权重更高的分数法。而分数法依赖的是 share 的年龄和时间,PPLNS 依赖的是最近 N 份 share,跨越一轮的边界,不以当前这一轮已经进行了多久作为结算边界。

把这些统称为按份额,会丢掉 2011年那场关于 pool hopping 和奖励设计的争论。

而这一整套方案,拆开看其实是一张风险分配表:

按比例分配,这一轮很倒霉的风险由矿工承担。

分数法和几何法,风险仍主要在矿工一侧,只是把套利的口子堵上。

PPLNS 不以区块轮次作为结算边界,付最近 N 份 share,可以通过调 N 来在方差和成熟期之间取舍。

PPS 是每一份有效的 share 立即按理论期望值买断,和池子什么时候真的找到区块脱钩。这意味着坏运气和资金储备的风险由运营者承担,所以 PPS 通常收取高得多的风险费。

DGM 则通过双重几何权重,在运营者和矿工之间重新分配方差。

这张表是明码标价的。矿工可以自己承担方差,费率低;也可以让运营者替他承担,费率高。双方都知道自己在换什么。

把这一节和上一节并排读,能看出很清楚的一件事。同样是风险分配,预售那一层是不对称的,矿池这一层是对称的。差别不在于谁更有良心,在于矿池这一层的风险可以被算出来,可以被定价,而且矿工随时可以换一家。

可算,可选,可退出。三样齐了,风险分配就自己找到一个大致公道的位置。

这三样在后面十九篇里会一次一次地缺。有时候缺的是可算,因为没有人知道那份资产究竟值多少;有时候缺的是可选,因为只剩下一家能用;有时候缺的是可退出,因为钱已经锁在合约里,而合约要等三十天。缺哪一样,余项就从哪一边溢出来。

费率上,2011年的比较材料里 Slush 的分数模式大约 2%。而到 2014年初,GHash.io 走的是另一条路:明确的 0% 池费,再把免费的矿池和 CEX.IO 的交易,云算力等业务结合起来。GHash 自己在公告里把 0% 费列为它能超过 40% 的重要原因之一。

云算力又把机器本身从客户视野里拿掉了。

CEX.IO 在 2014年把 1 GHS 定义成 GHash.io 里一份云端算力,持有人可以在市场上交易这一份;而运营矿机的电力,维护和硬件更换成本,由持有人承担。2014年5月公司公开的维护成本是每 GHS 每小时 0.00045 美元。

2015年1月,在币价下降,难度上升之后,公司暂停了自动云挖矿。当时公开引用的条款允许 CEX.IO 在维护成本超过区块奖励,或者挖矿被判断为在经济上不划算的时候,停止用持有人的 GHS 挖矿。公司同时说 GHS 仍然是持有人的资产,并允许自行选择重新开启。

这里的纠纷结构和矿机没发货完全不同。

客户买到的是一份算力的权利。而运营条款允许在不划算的时候,停止执行那份权利。

这一层的性质要看准:它不是违约。条款是公开的,写在那里,买之前可以读。而它说明了一件事:把一样东西做成可交易的份额,和把它做成一项确定的权利,不是同一回事。你手上那份 GHS 一直是你的,只是它在最需要它工作的时候可以合法地不工作。

六 39.99%

2014年6月那件事,通常被讲成一个矿池突然逼近了 51%。原始材料给出的过程要长得多,而且更有意思。

2014年1月8日到 9日,Blockchain.info 的短期统计已经把 GHash.io 放在超过 42%。一天之后,随着矿工主动转池,报道中的占比降到约 38%。

同一天,GHash.io 自己发了一份声明,承认进入 2014年的时候总算力已经超过 40%,并宣布暂时停止接受新的独立矿场加入。

而那份自报公告里最有价值的是另一句话:池内大约 45% 来自 BitFury 的 ASIC 系统,大约 55% 来自独立矿工。

这一句要记住,后面第七节全靠它。

2014年6月12日到 13日前后,短期的区块统计终于越过了那个象征性的阈值。当时的报道把它列为在一个滚动观察窗口中产出约 51% 的区块;部分按更短窗口的二手报道给出约 55% 的峰值。

所以严格说,峰值到底是 51% 还是 55%,取决于采用什么时间窗口,以及是否把观察到的区块份额直接等同于瞬时算力。可靠的共同部分是:它确实曾经在一个足够受关注的短期窗口里越过了 50%。

社区的反应不是协议层立刻分叉。是矿工迁出,公开呼吁分散算力,以及重新讨论 P2Pool 这一类去中心化的池机制。此前一月份从 42% 降到 38%,已经展示过这种用脚投票的调整方式。

2014年7月,在行业会议和圆桌讨论之后,GHash.io 公开承诺其未来算力不超过全网的 39.99%。

39.99 这个数本身值得看一眼。它不是四十,也不是三十五。它精确到小数点后两位,而它要表达的其实只有一件事:我离那条线还差一点点,而且我知道那条线在哪儿。

这个承诺是一项自愿的治理安排,不是协议强制的上限。

没有任何一条共识规则会让第 40 个百分点的 share 自动被拒绝。

而社区当时提出的技术回应有三类,它们针对的是完全不同的控制点。

第一类不动哈希函数,只改变组池的结构。P2Pool 把集中式的矿池协调者换成分布式的 share chain。到 2014年 GHash 事件的时候,Gavin Andresen 仍然在公开提这个方向。

第二类改变协议博弈本身。Eyal 与 Sirer 在 2013年的那篇论文证明,在他们的模型下,并不是只有绝对的 51% 才会出现策略性的挖矿优势;他们并提出了一种协议修改,使得采用自私挖矿策略的联合体在低于约四分之一资源的时候不能获得那种优势。

第三类最激进:更换工作量证明,做抗 ASIC 的设计。这一路在别的链上做过很多实验,而比特币主链并没有用这种方式淘汰已经部署的 SHA-256 设备。

第三类为什么没有走通,原因值得单独说。

一旦 Avalon,BFL,ASICMiner 这些厂商已经把钱投进流片和供应链,更换工作量证明就不再只是一次软件优化。它会一次性让已经存在的资本设备全部失效。

2013年之后关于更换哈希函数的讨论,因此同时是一场关于既有矿业资本损失该由谁承担的治理争议。

而这三类回应的关键在于:它们不是同一个去中心化参数的三种写法。

P2Pool 针对的是池的协调者。协议修改针对的是博弈结构。抗 ASIC 针对的是专用硬件优势。GHash 那个 39.99% 针对的是池层面的自愿约束。

四种办法,四个不同的位置。

而没有一种办法能同时解决另外三个位置上的问题。社区在这几年里其实做了很多事,只是每一件都只够得着一个地方。

这也是构最难对付的一种处境。它不是没人管,恰恰相反,管的人很多,方案很多,而且每一个方案在自己那个位置上都是对的。问题在于余项不待在任何一个位置上,它待在这些位置之间。

七 五把尺子

现在可以问那个真正的问题了:挖矿到底有没有中心化。

答案取决于你用哪一把尺子,而尺子至少有五把。

按矿池统计最容易,因为每个区块的 coinbase 都能识别归属。按这个口径,2014年6月那次短暂越过 50% 就是一个清清楚楚的集中化事件;后来关于前五大矿池份额的研究也持续得到较高的集中度。

它的优点是直接对应一件确定的事:哪一套矿池基础设施在发布区块模板并收到 coinbase。

它的缺点是会把成千上万个可以随时转池的独立矿工,都记在同一个标签下面。

GHash 自己那份 45% 对 55% 的分解,就是这个缺点在同期留下的证据。

按实际机器所有人统计会得到一个不同的图景,而且方向相反。

2019年有研究者分析了三家大型矿池的链上奖励分配,发现每一个被分析的矿池里,不超过约 20 个实际收款实体就拿走了超过一半的比特币奖励,而且有矿工同时在三个池里活动。

按这个口径,矿池饼图不但没有夸大集中度,反而可能低估了底层经济主体的集中。

但地址聚类也有自己的假设:一个收款实体可能在代管多个客户,一个企业也可能把自己拆成多个地址。

按芯片厂商统计测的是另一种权力:谁控制高效 ASIC 的设计,流片和供货节奏。

这种集中不会显示在区块的 coinbase 里,却决定了谁能最先拿到下一代的能效。第四节里那几个月的延迟能把一个矿工的全网份额改变几个数量级,说的就是这件事。

而私人厂商并不定期公开卖给外部多少,自留多少,客户分别在哪里。所以这个口径比矿池数据更依赖估计。

按地理位置统计测的是电网,气候和监管的共同故障风险。

而这里有一个特别容易出错的地方:把某个被归类为中国矿池的区块份额,当成中国境内的物理算力份额,是不严谨的。矿池服务器,公司注册地,ASIC 厂商所在地,和客户矿机的实际位置,可以完全不同。

有研究说 2015年3月到 2017年2月,按运营者标签分类的中国矿池合计超过 51%。它测的是池的分类,不是逐台设备的位置。

按实际控制人统计最接近那个真正要紧的问题,也最难观测。

一家公司可以同时拥有矿机,经营矿池,制造 ASIC,经营云算力,并且托管别人的机器。反过来,同一个大矿工可以同时连接几个彼此竞争的池。

厂商份额,矿池份额,托管的兆瓦数,和实际协调攻击的能力之间,不存在一对一的转换。

五个数,五种权力,而它们分布在不同的人手里,谁也不掌握全部。这也是为什么关于中心化的争论一直吵不出结果:两个人可以同时是对的,只要他们说的不是同一把尺子。

把这五把尺子摆在一起,真正要说的那件事就出来了。

这条链把每一样东西都量得极准。难度精确到小数点后六位,每一个区块的时间戳,每一笔 coinbase 的去向,每一次难度调整的幅度,十五年一个数也没有错过。

而它最要紧的那个性质,它到底有多分散,没有一把公认的尺子。

一个构最要紧的那个性质,恰恰是它自己量不出来的。

这一条对整个系列有用,而且它不只对这条链成立。经济系列里那些构也各有一个自己量不准的东西:国民账户量不出它自己划在边界外的那一大块,评级量不出被写进几百份章程之后自己会触发什么,系统性风险那把尺子量不出一个不连着别人的人。

差别在于,这一次那样东西恰好是这个构存在的全部理由。

这不是因为没有人去量。它的原因更硬一点:要量这件事,得先回答一个协议答不出的问题。

什么算一个独立的人。

协议只认算力。它不问这些算力插在几个交换机上,属于几个法人,由几个人拿主意,也不问它们的电从几张电网上来。

而它不问这些,不是设计上的疏忽。恰恰相反,不问正是它能成立的条件。一旦要问你是谁,就要有人来核,而有人来核就回到了原点。这套东西全部的力气都花在了不必问这件事上,代价是它此后也永远问不出来。

这就是这一段历史里的余项。它不是被漏掉的,也不是被藏起来的,它每天都在链上以哈希的形式出现;它只是没有办法被这条链本身读出来。

八 电和人

真实世界那一侧,2014年初的美国报道已经把矿场写成了一个典型的工业设施问题,而不是一个网络问题。

MegaBigPower 的创办人 Dave Carlson,从 2012年的业余挖矿做起,2013年迁到华盛顿州中部的 Wenatchee 一带。同期报道明确说原因是当地极其便宜的水电。

2014年4月记者到现场看到的,是由两个仓库改造成的数据中心,里面是成千上万块板子,以及大量工业风机在持续抽走热空气。Carlson 当时还计划再建一个规模约为原设施十倍的新矿场。

同一篇现场报道也说明了一件事:低电价和冷却不是两个分开的因素。算力设备一旦密集,所有输入的电力最终基本上都会变成热量,所以哪怕当地气候本来就凉,设施仍然需要大规模通风。

HashPlex 也从西雅图的临时托管空间,向 Cascade 山脉东侧的大型数据中心迁移。到 2014年,华盛顿中部已经同时出现了两类矿场:运营者自己拥有大量矿机的,和替外部矿机所有者提供托管的。

欧洲同期的例子是瑞典的 Boden。KnCMiner 在 2014年2月开始建设一座约 10 MW 的矿业数据中心,选址在一座废弃的瑞典陆军直升机机库,距北极圈约 50 英里。后来的行业材料把当地优势概括为寒冷气候,便宜电力,政治稳定和高度可靠的电网。

这四条里有三条和计算完全无关。选一座废弃的直升机机库,靠的是有大跨度的空间和现成的电力接入;而距北极圈五十英里,靠的是不用花钱降温。到这一步,决定一个人能不能挖到币的因素里,已经有一大半是地理和基建。

到这里,这一节本来应该继续往下走:这些矿场给当地带来了多少就业,交了多少税,当地的电价和电网因此发生了什么变化。

而这一段写不下去。

关于矿场给地方创造多少就业,多少税收,2010年到 2014年这一段的同期可核查数字,明显少于电力和资本支出的数字。

那篇 Wenatchee 的现场报道给了仓库规模,设备数量级,扩建计划,以及 Carlson 本人说的数百万美元投资,数千万美元回报。它没有给员工人数,没有给地方税款,也没有给电力公司的专门协议。Boden 那座 10 MW 的设施同样如此:公开材料没有给出它和电力公司的逐度合同价格。

这不是记者疏忽。

早期公开材料对矿场的描述,主要是兆瓦负荷,仓库,冷却,电价和设备投资。而如果没有地方电力公司,税务机关或者企业的工资表,就没有办法把兆瓦数换算成就业人数。

记电的是电力公司。记钱的是企业。而没有哪一个机构的职责是记人。

于是这一段历史留下来的,是一套非常精确的关于电和钱的记录,和一段几乎空白的关于人的记录。

这也是余项在这一节里的形状。它不是被谁划出去的,也不是量不准,是根本没有人被派去量。一个数字要存在,先得有一个机构的职责是记下它;而这几年里,兆瓦有人记,美元有人记,而仓库里那些换风扇的人不归任何人记。

而这个空白不会因为链是不可篡改的就被补上。链上记的是 coinbase 发到了哪个地址,不记那个地址背后的仓库里,有几个人在换风扇。

这条限制在这个系列里会一直在。链上的记录极其完整,而它完整的是它定义得出来的那一部分。仓库里的人,和第一篇里那段没有保存下来的聊天记录,是同一类东西:它们发生过,而它们不在这条链要记的范围里。

回到 2009年12月那个君子协定。

它当然没有成立。

它也不可能成立,因为它要求所有人自愿放弃一个对自己有利,而且完全合规的选择。

而这五年里的每一步,单独拿出来看,都很难说谁做错了。提高效率的人在提高效率,降低功耗的人在降低功耗,开矿池的人解决了小矿工几个月挖不到一个区块的真实困难,搬去便宜水电旁边的人做的是任何工业项目都会做的选址。

甚至那两万个等不到机器的人,买的时候做的也是当时看起来最合理的决定:早付钱,早排队,早拿机器,早开始挖。

这些完全合理的动作加起来,是 2014年6月那个 51%。

构不需要有人做错事。它只需要每一个人在自己的位置上,做那件对自己合理的事。

2014年7月那个 39.99% 是一句承诺。没有任何一行代码执行它,没有任何一条共识规则会在第 40 个百分点上把区块退回来。

而那条链自始至终没有察觉到 2014年6月发生过什么。

它照常每十分钟出一个区块,照常每 2,016 个区块调一次难度,照常把奖励发给算出答案的那一个。

它算得出难度,精确到小数点后六位。

它算不出那些算出答案的机器里,有多少插在同一个交换机上。

链还在结算,而结算什么还没有共识。

资料说明

本文依据公开协议文档、链上记录、法院文书、监管文件与同行评议研究写成;文中的数字均保留其统计口径。系列资料截至 2026 年 8 月。

Where next

沿着问题继续读