比特币挖矿机制
比特币系统是一个去中心化的机制,没有设立特定的发行机构来发行比特币,而是通过激励矿工参与记账,系统自动生成一定数量的比特币给予奖励。
按照中本聪的设计构想,比特币的总量固定在2100万枚(实际上是20999999.97690000枚),并规定每个比特币可以细分到小数点后面8位,区块的产生是10分钟/个,刚开始是每个区块产量50个比特币,在每21万个区块之后,每个区块的比特币产量将减半。
通过计算,我们现在知道产生21万个区块需要的时间为四年。那么从2009年到2018年,比特币产量已经减半了两次,目前是每个区块产生12.5个比特币。预计到2140年,比特币将完全生产完毕。
现在人们把参与记账并获得比特币(或其它虚拟货币)的人形象地称之为矿工。就像去挖金矿一样去挖比特币,只不过把挖掘改成了计算,约每 10 分钟进行一次算力竞赛。竞赛的方式是让每个节点(计算机)通过穷举结果的方式求解复杂的数学题(哈希函数)。
在这个时间段,谁最先求解出答案就获胜,就有机会获得一个区块,获得一定数量的比特币。然后挖出来的比特币,就写在得到的区块上,最后系统告知整个区块链的所有节点,获得全网确认后,这个区块便成为合法的新增区块,矿工的比特币就成功获取。
比特币的算力竞赛
矿工们想获得比特币,就必须比别人更快算出哈希值答案,算力就成为了竞争的武器。到现在为止,比特币挖矿算力竞赛在不断迭代的过程中经历了 5 个时期:CPU挖矿→GPU挖矿→FPGA挖矿→ASIC挖矿→大规模集群挖矿。
最早的挖矿工具是个人计算机上的CPU。挖矿过程是:下载一个挖矿软件;新建一个文本文档,在里面写入矿池、矿工号、矿工密码、线程数等参数,保存并改扩展名为bat格式;然后打开挖矿软件开始挖矿。
2010 年之前基本是CPU在挖矿,全网算力在1GH/s以下(每秒运算 10 亿次哈希碰撞)。
2010年,美国程序员拉斯洛启用GPU进行挖矿,由于显卡可以交火,即将两块或者多块显卡连在一起协同工作提高计算效率,后来越来越多人开始将多个显卡交火后挖矿。
2011年,世界上第一台比特币挖矿机——阿瓦隆挖矿机问世,开启专业挖矿时代。
阿瓦隆挖矿机,简单来说就是在电脑主机中加入多块显卡,并交火后协同工作。这种挖矿机可以大大提高挖矿算力,2011年下半年全网算力一举突破 1 万GH/s,一年增长了 10000 倍,到2012 年,全网算力轻松超越 2 万GH/s。
2013 年 9 月底,全网算力达到 105 万GH/s。
到2019年2月,比特币的全网算力达到43EH/S,即430亿GH/s。
如此惊人的算力使得普通人已无法去正常挖矿,唯有大规模的矿场加顶尖的专业挖矿设备才能够分一杯羹。
在如此强大的算力面前,比特币为什么还没有被挖完呢?中本聪已经预测到算力增加这一问题。所以他设计了动态难度系数调节系统,就是说每间隔2016个区块(时间大约两周),矿工挖矿获得比特币的难度就调整一次。
比如两周内区块平均产生速度如果是9分钟,则难度系数要调高10%,反之同理,令调整后的难度确保每生成一个区块的预期时间为10分钟。所以哪怕算力怎样增长,区块的生成时间都不变,比特币就按照既定的节奏不紧不慢地产生出来。