比特币挖矿是什么?了解比特币的人都或多或少知道 “挖矿”,挖矿是参与维护比特币网络的节点,通过协助生成新区块来获取一定量新增的比特币。当用户发布交易后,需要有人将交易进行确认,写到区块链中,形成新的区块。
在一个互相不信任的系统中,该由谁来完成这件事情呢?比特币网络采用了 “挖矿” 的方式来解决这个问题。目前,每 10 分钟左右生成一个不超过 1 MB 大小的区块,串联到最长的链尾部,每个区块的成功提交者可以得到系统 12.5 个比特币的奖励,以及用户附加到交易上的支付服务费用。
拿比特币举例,挖矿的具体过程为:参与者根据上一个区块的 hash 值,10 分钟内的验证过的交易内容,再加上自己猜测的一个随机数 X,让新区块的 hash 值小于比特币网络中给定的一个数。这个数越小,计算出来就越难。系统每隔两周会根据上一周期的挖矿时间来调整挖矿难度,来调节生成区块的时间稳定在 10 分钟左右。为了避免震荡,每次调整的最大幅度为 4 倍。
很自然的,有人会想到,如果我有很强大的计算力,所有的块都是我算出来了,拒不承认别人的交易内容,那是不是就能破坏比特币网络。确实如此,拿到 51% 的算力,就可以攻击整个网络了。
那么有没有办法防护呢?除了尽量避免计算力放到同一个组织手里,如果觉得一个矿池掌握的算力太多,矿工应该主动换个矿池挖矿,解决这个问题有人提出了 PoS,因为 PoW 机制的安全只能来自于区块挖矿收益,矿工的激励来自于避免丢失区块收益的风险,这样 PoW 就是依靠一个大量的激励来保证的巨大算力来运作。
PoS 打破这种对称性,不是依靠收益来保证安全,而是惩罚。矿工必须付出一大笔押金,并少量的得到奖励,以补偿他们的押金被冻结以及运行节点的开销,但逆转交易的最大开销来自于大于收益几百到上千倍的惩罚(押金被消耗)。PoS 的哲学不是 “安全来自于电力消耗”,而是 “安全来自于押金”。
众所周知比特币的总量大概固定在2100万个,但是比特币是如何获取的想必是很多人都会疑惑的事情,或许很多人都听说过“挖矿”这个词,但是何为“挖矿”?比特币的“挖矿”和我们传统理解上的“挖矿”有何不同呢?
(传统理解中的“挖矿”一般指的是黄金、宝石等稀有金属行业和石油、天然气等能源资源行业的开采步骤。)
首先“挖矿”是生产比特币的唯一途径,也是市面上比特币有且只有一种的来源途径。用传统的思维去理解,埋藏比特币的区块链网络就相当于是“矿山”,而“挖矿”所要用到的机器就被称为“矿机”,“矿机”一般都是计算机软件,一般由开源社区或者个体开发者提供。
挖矿早期的参与者很少,全网的算力很低,个人通过计算机的显卡甚至CPU便可以轻易的挖到比特币。但伴随着大量的矿工的加入,全网的算力持续性的竞争性的提升,个人通过普通的计算机直接挖到比特币的概率急速下降,目前个人通过普通计算机挖到比特币的概率更是趋于0.
挖矿很关键的一个工具是“矿机”。矿机的目的就是,针对挖矿算法进行硬件设计和优化,因为矿工数量的急剧上升、加入“挖矿”行业的个人数量上升,专用的挖矿芯片应运而生。矿机的竞争之战已经深入到了计算机芯片设计与制造层面。目前市面上的矿机成本都较高,一般是由公司整体运作,并对外出售或租赁。
即使拥有了专用的矿机,单个矿工或机构也很难凭借一己之力获得比特币。因为在形式上,比特币的记账权每次只能被一个矿工获得,一旦有人获得了权限,参与竞争的其他对手将颗粒无收。
因此个体挖矿的成本代价巨大。而为了改变这种情况,有人便提出了“矿池”概念。集中大量的设备和矿工共同开采挖矿,再依照算力分配至各个个体计算机中,将挖掘比特币的失败风险降到最低。