十一月底2010,个人矿工可能让电脑运行数周却一无所获。如果他们运气好,整个50 BTC的奖励就归他们所有;如果运气不好,他们只付电费继续等待。来自布拉格的程序员Marek “Slush” Palatinus提出,人们应该停止各自玩自己的“彩票”。他们的机器应该共同工作于一个区块,服务将根据贡献的工作量来分配奖励。在十一月的27日,他推出了“合作挖矿服务器”。大约三个星期后,矿池挖出了97 834区块。从一个人最初的临时项目发展成为今天的典范——几乎无法想象没有它的现代挖矿,即使是关于去中心化网络能够安全承受多少协调的问题,也引发了争论。
五十个比特币,或者长时间没有任何东西
当时比特币会奖励找到块的赢家五十枚币。对于网络来说,这是一个简单的机制,但对于个人来说,却是一场艰难的赌博。找到块的概率对应于其计算能力占整个网络的比例。随着总计算能力的增长,小型矿工可能需要等待越来越长的时间,尽管他的机器一直不间断地工作。
长期平均值看起来很有利,但电费账单每个月都会到来。个人需要承担巨大的波动:要么获得全部奖励,要么在长时间内一无所获。这排除了小算力的人,即使他们的工作从网络的角度来看和大型运营的工作一样有用。
帕拉廷斯从自己的经历中知道这个问题。在论坛中,他描述了这样一种情况:一个共享服务器可以把成千上万个小尝试结合起来,并且把结果分配出去。参与者将不再等待自己的难得成功;每当小组中任何人成功找到一个区块时,他都会获得较小的份额。
矿池并不改变整个群体的概率,也不会创造更多的比特币。它改变的是风险在时间上的分配。这就像是一张彩票有大奖和从大量彩票中获得稳定份额的区别。为了获得更稳定的收入,矿工需要付出代价,并依赖运营者的正确记账。
Slush没有把他的设计仅仅当作纯粹的技术胜利。在第一帖中,他就列出了优点、缺点和必要的信任。服务器必须正确地衡量提交的工作,不偷窃奖励,并保持可用。矿池池消除了一个不确定性,但增加了一个中间人,而这个中间人本身并没有被比特币共识机制控制。
对于小型矿工而言,最大的问题不是平均回报率,而是时间。从统计上看,他每天可能有权获得奖励的一小部分,但实际协议并不为努力支付零头。要么他的机器找到了一个有效区块,获得整整五十枚比特币;要么一无所获。一连串的失败并不意味着设备没有在工作,只是说明彩票暂时还没有落到他头上。共享服务器将这种不规则事件按照已证明的工作量拆分成更小的份额。矿池并没有提高预期找到的区块数量,而是改变了收入的节奏,而正是这一差异可能决定一个人是否还能负担得起继续挖矿。
合作挖矿服务器
2010 年 11 月 27 日的公告还不是一款成熟的企业产品。Palatinus 正在寻找愿意测试协议、连接方式和奖励机制的人。系统需要接受部分工作量证明:这些计算结果还不足以产生有效区块,却足以表明矿工确实进行了计算。
这些被称为 shares 的部分计算结果,让矿池能够估算每台机器的贡献。如果某个参与者找到满足全网难度要求的哈希,矿池就会获得区块奖励,再按选定的计酬规则分配。对普通矿工来说,收入由不定期获得的五十比特币,变成了一笔笔更小的付款。
最初的服务形式以Bitcoin.cz Mining Pool的名称运行。网站、服务器以及支持几乎全部都是一个人所做的工作。这使得捷克的首创具有更准确的含义:这不是一个国家项目或国家计划,而是一个来自布拉格的程序员,他解决了全球网络的具体经济问题。
池同时需要组装候选块并向矿工分配任务。各个机器提供了计算能力,但操作员决定了它们工作在哪个块头以及模板包含哪些交易。因此,硬件在很多人之间的分配本身并不能保证决策的分配。
后来的挖矿协议的发展,包括Stratum V1,试图提高池和设备之间的通信效率。基本的交易仍然保持不变:池提供更可预测的支付,而矿工则将部分协调权交给池。第一个服务器创造了一个模式,其他服务器很快就跟随了。
区块 97 834
矿池于 2010 年 12 月 16 日正式投入运行,并在同一天挖出了第 97,834 个区块。如今,链上的记录能告诉我们结果,却无法呈现此前的紧张:服务器能否正确接收提交的工作、识别有效区块,并为贡献算力的人记下相应份额?
第一个区块的确认表明,协调不仅仅在测试中有效。奖励可以在参与者之间分配,其中大多数人在那一刻可能什么也没有获得。对于小型矿工来说,这是一个有形的证明,他们较弱的机器不必立即被排除出网络的经济体系。
日期很重要,要与十一月的公告区分开来。这个想法、公开测试和实际结果是三个不同的步骤。这个故事并不是从突然找到一个区块开始的,而是从几周前开始的,当时Slush公开描述了他的设计并请求社区帮助他找出错误。
成功带来了更大的工作量和责任。池子所占的网络份额越大,每个故障或错误的决定就越敏感。服务必须保护账户,计算奖励,并应对攻击。这不再只是一个用来平衡运气的脚本;这是一个基础设施,其账目依赖于他人。
区块97 834之所以引人注目,并不是因为其金额。其他矿工也获得过同样的五十个比特币。其特殊之处在于他们获得它的方式以及如何分配。区块链中的一行记录代表了许多机器的共同工作,并且是Pooling能够在公共网络中运行的第一个实际证明。
从Slush到矿池行业
该项目后来经过了Slush Pool和Braiins Pool的名称。Braiins团队使该服务专业化,而Marek Palatinus则将更多的精力投入到SatoshiLabs和硬件钱包Trezor中。然而,从原始服务器到最古老的比特币挖矿名称之一仍然保持着不间断的历史线索。
矿池拓宽了参与挖矿的途径,但也逐步将区块模板的构建集中到了更少的服务中。独立矿工自行决定构建哪个区块。普通矿池的参与者往往只是计算自己收到的任务。物理算力可以是分散的,而协调决策仍然是集中的。
这种集中并不意味着矿池拥有所有连接的机器。矿工可以在不同意手续费、审查或运营商行为时将算力转移到其他地方。然而,这种转移需要信息和反应的意愿。因此,去中心化不仅仅取决于设备的数量,还取决于谁组装了区块以及更换协调者的难易程度。
Slush的第一篇文章并没有隐瞒这个妥协。它提出了解决经济问题的方案,同时也提到了这个方案所需要的信任。正是这种开放的态度帮助我们阅读这个故事,而不受后来胜利者的偏见影响:矿池并不是最终的答案,而是一个具有明确成本的新工具。
这个来自布拉格的项目改变了挖矿的方式,将工作与运气分开。个人不再需要自己赢得整个区块才能获得其哈希率的持续奖励。同时,它也表明,即使是没有中央银行的系统,也会产生人们信任的协调服务。问题不在于是否会出现这样的服务,而在于参与者是否能够控制、离开和替换它们。
因此,矿池的集中度不能仅用连接的机器数量来衡量。重要的是,谁在组装区块模板、选择交易、设定支付规则,以及能否说服参与者在出现问题时更换软件。矿工只有在拥有其他可用选择并且真正关注该服务在做什么的情况下,才能离开矿池。Slush 最初对信任的描述在这方面至今仍然适用。矿池化解决了一个真实的经济问题,同时也创造了一个新的领域,在这个领域中,竞争、透明度和退出机制都是必需的。去中心化不是靠禁止协调来维持的,而是靠不让协调固化为不可控的权力来维持的。
图鉴中的人物与概念
资料来源与故事边界
- 01BitcoinTalk / Satoshi Nakamoto 学院 — 合作挖矿
原始的Slush公告,小额定期支付的理由以及对信任的公开讨论。
- 02
- 03Braiins — 算力作为一种商品
正式启动的日期是16。十二月2010,区块97 834以及分享奖励的经济意义。
- 04Mempool.space — 块 97 834
公共区块链记录显示了池的第一个区块。