概述

  • CPU挖矿
  • GPU挖矿
  • ASIC挖矿
  • 大型矿池

CPU挖矿

起初挖矿竞争还不激烈,大家可以随意用自己的 PC 进行挖矿,出块的概率也算可以接受。

但是随着竞争的激烈,CPU 无法满足算力的需求,因为通用计算机的的CPU在挖矿过程中只用到了 CPU 指令的很少的一部分。

GPU挖矿

这时大家开始用GPU挖矿,因为 GPU 是专门为了通用的大规模的并行运算而开发的,效率要比 CPU 挖矿提高了很多。

但是由于 GPU 依然是为了通用计算而开发,所以依然有很多功能无法利用导致浪费,如浮点运算。

ASIC挖矿

Application Specific Integrated Circuit,专门为了某种需求开发的芯片。随着挖矿竞争的加强,也有了专门用于挖矿的芯片,这种芯片的性价比是很高的,效率也远高于 GPU。

据统计,此类芯片的主要利润主要来自发布的前两个月,两个月后基本就会被淘汰。矿工之间的竞争就像是军备竞赛。

大型矿池

矿工单干时就像是买彩票,出块的概率很低,但是一旦出块了就能大赚一笔。这时就有了矿池的出现。

矿场主号召矿工加入自己的矿池,由矿场主分配不同的任务给每个矿工,矿工出块后就提交给矿池,大家一起分享收益。区块由矿场主组装,矿工只负责计算 \( Hash \),矿场主则会收取一部分管理费。

矿池的出现使得矿工的收益相对来说更加稳定,但同时单次收益也会减少。

如何分配收益

首先肯定不能是平均分配,因为这种方式会导致干多干少收益都是一样的。矿场主可以自己规定一个挖矿难度,这个难度小于比特币网络所规定的挖矿难度。矿工挖出出块后,如果符合矿池规定的难度但不符合比特币网络的难度则这个区块可以作为工作量证明提交给矿池,这种区块称为 Almost valid block,如果符合比特币网络的难度则可以作为整个矿池收益的一部分。最后按照每个矿工提交的两种区块的数量来分配收益。

  • Q:矿工可否挖到合法区块后绕过矿主自己去提交从而独吞奖励,而 Almost valid block 作为工作量证明提交给矿池?
  • A:不可以,因为区块中的收款人是矿场主,就算矿工自己发布也赚不到比特币,比特币依旧是矿场主的。

担忧

矿池的出现使得算力的集中更加简单,因为原本大家都是各干各的,而现在矿工加入和更换矿池是非常容易的。此时如果矿场主以较低的管理费吸引大量的矿工以获得半数以上的算力,同时因为每个矿工只负责计算\( Hash \),因此其不知道自己是否在发起攻击,所以可以以此发起「51%算力攻击」。

而如果没有矿池,攻击者需要自己购置硬件来对抗全网的算力,成本十分巨大。

参考资料