大家都知道比特币可以通过挖矿获得,但是我们对挖矿如何产生比特币却知之甚少。我们将通过一个小故事,让你在三分钟内了解比特币挖矿。
这是一个古老的传说。有七颗龙珠散落在世界各地。谁集齐这七颗龙珠,念一段咒语,谁就能召唤龙。龙会实现他的一个愿望。龙的愿望实现后,七颗龙珠会自动飞走,变成石头,一年后才能再次使用。没错,这个故事来自日本知名动漫《七龙珠》。只要你能理解这个故事,你就能理解比特币挖矿。不信,走着瞧。
召唤龙需要收集七颗龙珠。比特币挖矿和召唤神龙很像,需要收集6颗“龙珠”才能召唤出来。为什么是六个?我们先来看看比特币区块的结构。
比特币区块主要由两部分组成:区块头和区块体。块体用于加载块中封装的所有事务,充满事务信息的块的大小一般不超过1M。
块头包含的信息包括六个字段:版本、父块头(即前一块)的哈希值、本块中默克尔根的哈希值、时间戳、难度目标和nonce。块头的大小是固定的,只有80字节,12500块头的容量也只有1M。
请注意:如果你发现你看不懂这些术语,没关系。忽略它们,把它们当成“龙珠”,不会影响你对挖矿的理解。
对于挖矿来说,在块头收集到的“六颗龙珠”有机会“召唤神龙”。六个“龙珠”是块头中的六个字段,“龙”是挖出来的新块。你对“龙”的愿望是比特币奖励,包括创建新区块的奖励和区块所包含交易的交易费。
我们先来了解一下比特币挖矿的六大“龙珠”是什么,得到它们并不容易。六个字段中,除了随机数需要试错,其他五个字段都很容易获得。
1.版本字段:用于跟踪软件升级的版本号,可以从软件信息中自动获取;
2.父块头的Hash值:父块挖出来后,其块头的hash值就确定了,很容易得到;
3.Merkel根在这个块中的哈希值:当一个块中打包的交易被确认时,这个字段也被确认,好容易;
4.时间戳是指块生成的大概时间,也是确定的;
5.难度目标:本块工作量证明算法的难度目标,系统给的,也是一定的;
也就是说,在块头中,六颗“龙珠”中有五颗是容易获得且相对确定的。只有第六个“龙珠”——随机数(Nonce)是矿工需要不断尝试寻找的不确定变量。
只有找到合适的Nonce,才能召唤“神龙”——挖出新块,获得比特币奖励。
什么是合适的随机数?取块头中六个“龙珠”的哈希值。如果该值小于或等于系统给出的难度目标值,即使找到合适的随机数,也可以成功“召唤神龙”——挖出新块,获得比特币奖励。这就是比特币挖矿的过程。
我们总结一下:比特币挖矿类似于《七龙珠》年的呼龙。集齐六颗“龙珠”,就有机会“召唤神龙”。
六颗“龙珠”中,有五颗容易得到,只有第六颗是——随机数,需要矿工不断尝试寻找。直到找到合适的随机数,也就是将块头中的全部6个“龙珠”进行哈希运算,得到的值小于等于难度目标值,再挖出一个新的块,获得相应的比特币奖励。
比起收集七颗龙珠召唤神龙,收集六颗“龙珠”召唤比特币从概率角度来说难度更大,但挖矿确实是一门好生意,所以即使难,也不断有人进场。好在现在很多网矿平台都提供全方位的托管服务,不用再像以前那样自己买矿机建矿了。选择综合挖矿服务平台,如考拉矿工,不仅轻松方便,还能保证持续收益,并推出了“增值回购”