比特币挖矿进化史

本文共3600字,阅读约需17分钟

  • 前言
之前的文章中,我们了解了比特币系统中的密码学原理、数据结构、防篡改以及双花攻击等知识。随着阅读量一篇不如一篇,我觉得还是整点大家更愿意看的内容比较好。有人曾问我,现在个人挖矿还能赚到钱么?我没法回答能或者不能,但我可以告诉你比特币挖矿到底经历了怎样的发展历程,以及目前的矿工们是怎么协同工作的。希望能够帮到大家评估参与这场淘金热潮的代价。本文主要分为三部分:1. 挖矿设备的演化 2. 大型矿池的出现 3. 矿池收益的分配。

 

  • 挖矿设备的演化

随着有越来越多的人对比特币价值的认可,参与挖矿的人也越来越多,甚至出现了有组织的集团式作业,全网算力不断上涨的同时,挖矿的难度也逐渐上涨。为了能够在这场“军备竞赛”中脱颖而出,矿工们手里的工具也经历了多次升级。刨除同类设备工艺的提升带来的算力提高,仅就设备本身的进化,就经历了CPU、GPU、ASIC芯片三类。让我们从头说起。

  • CPU:青铜时代

2009年1月,随着比特币创始人中本聪利用个人电脑挖出了世界上第一批比特币,这场轰轰烈烈的互联网淘金热潮就此拉开了帷幕。最初,大家都是用普通CPU进行挖矿,你家里的计算机、笔记本电脑都可以用来挖矿。

然而如果我们买来一台计算机专门用来挖矿,其实是非常不划算的。计算机中大部分的内存都是闲置的(挖矿所需内存极少);CPU中的大部分部件也是闲置的,挖矿过程中计算哈希值的操作只用到通用CPU中很少一部分指令;硬盘以及很多其他的设备同样也是闲置的。因此随着比特币挖矿难度的提高,继续用通用PC来挖矿很快就变得无利可图。这一时期大概持续了一年多的时间,此时CPU挖矿已经收益寥寥。

  • GPU:白银时代

     

2010年9月18日,第一个显卡挖矿软件发布,自此,显卡GPU挖矿进入历史舞台。由于GPU相较于CPU在大规模并行计算方面更为擅长,此时一张主流显卡的挖矿效率相当于几十个CPU,挖矿能力得到了明显的提升。2011年开始,随着显卡挖矿大热,甚至出现了“一卡难求”的现象,当时AMD的高端显卡在各个渠道全面售罄,有价无市。GPU作为通用并行计算专用设备,在很多研究领域都有所应用,比如深度学习。近几年,GPU的价格上涨很快,除了目前深度学习等研究的火热,还有很多的GPU都被用来挖矿了。

即便是GPU,用来挖矿也是浪费的,其内部用于浮点运算的部件在挖矿时是明显闲置的,因为比特币挖矿是在进行整数运算。然而目前挖矿难度的提升早已超出了GPU的算力范围,也就没那么多人再抢GPU了,这可能对广大游戏玩家来说是个好消息。

  • ASIC芯片:黄金时代

随后,比特币挖矿设备经历了一段短暂的FPGA矿机后,来到了ASIC芯片独领风骚的时代。ASIC即Application specific Integrated Circuit,这是一种专门设计用来挖矿的芯片,它上面没有多余的电路逻辑,整个芯片都是为了计算哈希值这一操作而设计的,除此之外的任何事情都做不了。甚至为某一种加密货币设计的ASIC芯片只能挖这一种,换成其他的加密货币都不行(除非这两种加密货币采用同一种mining puzzle)。正因为如此,ASIC芯片带来了超高的算力和相对较低的价格,迅速成为了挖矿最具性价比的选择。

我们一般以每瓦Hash来衡量一款挖矿设备的效率。从这个数据来看,在ASIC的早期,GPU是CPU的1800倍;ASIC是GPU的188倍,是CPU的34万倍目前唯一在挖矿上能够挣钱的就是ASIC矿机。而GPU/CPU则是越挖越亏,还不够电费呢所以还想用CPU挖比特币的就洗洗睡吧。

从2013年7月起,ASIC矿机厂商如雨后春笋般涌现,ASIC芯片也开始了一轮又一轮的进化,从最初的110nm到55nm、再到28nm、16nm,直到去年底出现了采用7nm芯片的超级矿机。由于挖矿的成本大头是电力,因此ASIC芯片在制程工艺上的升级除了带来算力的显著提升,另一个好处就是功耗的下跌,即成本的降低。

ASIC芯片的研发周期是很长的,一款针对比特币的芯片从设计、流片到最后生产出来可能需要1年以上的时间。即便如此,与通用芯片研发周期相比,这样的速度也可以说是创造了芯片研发世上的奇迹。随着这场算力的“军备竞赛”越来越激烈,一款定制的ASIC芯片可能用不了几个月就过时了。

有研究表明,一款ASIC矿机带来的大部分利润是在它上市的前两个月获得的,因为此时它的算力是同类产品中最强的。随着更强的矿机问世,很快它就会被淘汰。由于ASIC芯片研发周期较长,用户采购新矿机往往都是提前预定。因此就有一些不良的厂商,在生产出最新的矿机后,并不是马上提供给用户,而是自己先拿来挖矿赚取比特币,待最赚钱的黄金时期过去后,再将产品发给用户。这种情况我们在比特币系统中是可以观察到的,当算力在某一时点出现明显的提升,一般就意味着某个厂商一款新的矿机被投入使用了。因此,在比特币浪潮中,真正赚钱的可能不是挖矿的矿工,而是卖矿机的。

总结一下,比特币挖矿设备的演化趋势是从通用向专用。CPU是通用计算设备,GPU是通用并行计算设备,而ASIC芯片就是专用挖矿设备,其他什么都做不了,一旦性能落后就作废了。这种情况下,普通CPU和GPU几乎不可能挖矿成功,这与比特币倡导的去中心化的理念是不相符的,也违背了比特币设计的初衷。因此就有人提出,最民主的方式应该是大家只能用CPU进行挖矿,任何人只要你有一台计算机都可以参与。在这一构想下,某些新加密的设计采用了Alternative挖矿 Puzzles,目的就是要实现ASIC Resistance,即抗ASIC芯片化,为了让大家都能参与挖矿。

 

  • 大型矿池的出现

根据计算,单个矿工用ASIC芯片进行挖矿,从平均收益来看虽然是有利可图的,但这个收入是极不稳定的。我们之前介绍过比特币中平均每10分钟出一个区块,这是针对整个系统中所有矿工来说。具体到某一个矿工,他可能需要很久才能挖到一个区块,这个时间是以年计的。这就使得挖矿行为像买彩票一样,中奖的概率很小,挖到就等于中了大奖(目前的出块奖励是12.5个BTC,约值62万人民币)。此外,单个矿工除了挖矿,还要承担全节点的其他责任,比如维护完整的区块链信息、验证每个交易的合法性以及当出现分叉时决定沿哪条链挖下去等等。为了解决以上的问题,并且进一步提高挖矿效率,矿池(Mining Pool)就出现了。

 

所谓的矿池,就是一种将少量算力合并联合,作为一个整体共同挖矿的方式。矿池的架构一般是由一个全节点驱动很多矿机。这个全节点被称为矿主(Pool Manager),它负责监听网上的交易,并将这些交易组织打包成候选区块,同时监听是否有其他节点抢先发布区块。受矿主驱动的矿机被称为矿工(Miner),它们只负责哈希值的计算,并不承担全节点的其他功能。

 

  • 矿池收益的分配

矿池的出现还解决了矿工收入不稳定的问题。虽然单个矿工的收入波动很大,但大家合作一起干,有了收益后大家共享利益,这就涉及到收益要如何分配的问题。

矿池一般有两种组织形式,一种像大型数据中心一样,成千上万的矿机中心化部署在同一个区域,如果这些矿机都属于同一个机构,那收入分配就相当于内部发工资,反正都是这个机构所有。

还有一种情况,矿工和矿主不在同一个地方,采用分布式部署的方式去中心化在世界各地,甚至每一个矿工的所有权都不是同一个机构。一个矿工想要加入某个矿池,只需按照这个矿池规定的通讯协议与矿主进行联系,矿主将需要计算哈希值的任务分配给矿工,矿工计算完成后将结果返回给矿主,待产生出块奖励时大家一起参与分红。

第二种情况下我们要如何分配利益呢?如果采用平均分配的方式,干好干坏一个样,势必会出现某些矿工不干活或者出工不出力的情况。吃大锅饭的下场一定是大家都没有饭吃。因此我们要按照每个矿工的贡献大小进行收入分配。

实现的方法很简单,之前文章中我们介绍过的工作量证明就能派上用场了。我们可以通过降低计算随机整数nonce的难度(假如成功计算出一个新区块要求哈希值前75位都为0,这里我们可以设置为前60位都为0),这样挖到的就是一个share(almost valid block),即这是一个在一定程度上差不多符合要求的区块。矿工将挖到的share提交给矿主,虽然这对矿主来说并没有什么用,但其可以作为证明该矿工所做工作量的证明,仅仅是因为目标区块(block)的解是所有share的一个子集,且求解这两个问题的计算过程是一样的(都是计算哈希)。等到未来某个矿工真的挖到了矿,获得了出块奖励后,再按照大家提交的share多少进行利益分配。

最后再留给大家一个问题:是否会有这样一种矿工?它参与到一个矿池中,当它挖到share时提交给矿主,但当它挖到真正的区块时,就选择自己打包发布出去独享出块奖励?

 

  • 结语

今天我们介绍了比特币挖矿设备的进化史和当前挖矿作业的组织形式。从中我们可以看出,随着比特币挖矿设备逐渐特化,组织形式逐渐规模化和专业化,普通人已经很难介入其中,更遑论盈利。了解到这个真相的你,是否还要投身到这场淘金热潮?其实,正是由于大型矿池的出现,一场足以颠覆比特币根基的危机已经逐渐到来。下一篇中我们会深入分析一下大型矿池对比特币系统的影响和危害,敬请期待。

 

感谢您的阅读

提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢