时间:2023-07-04|浏览:183
作者:晏文春
在之前的科普文章里,我们曾介绍过比特币挖矿的过程:矿工通过不断尝试,直到找到合适的随机数,挖出新的区块,并获得相应的奖励。
有一些读者留言希望对挖矿过程进行更详细的介绍。在本文中,我们将从不同的角度介绍,用三分钟让你了解比特币挖矿。
01、讲个故事给你听
02、比特币挖矿就像召唤“神龙”
召唤神龙需要集齐7颗龙珠。比特币挖矿和召唤神龙很相似,需要集齐6颗“龙珠”,才能挖出比特币。我们先来了解一下,比特币区块的构造。
比特币区块主要由两部分组成:区块头和区块体。区块体用来保存该区块包含的所有交易,一个完整的区块一般大小不超过1M。
区块头中包含了版本、父区块头哈希值(也就是前一个区块)、该区块中默克尔树根的哈希值、时间戳、难度目标和随机数(Nonce)6个字段。区块头的大小固定为80字节,12500个区块头的大小总共为1M。
请注意:读到这里,如果发现这些名词看不懂,没关系,忽略它们,把它们当作是一颗颗”龙珠“,不会影响到你对挖矿的理解。
对于挖矿来说,收集到区块头里的“6颗龙珠”就有机会“召唤神龙”。6颗“龙珠”就是区块头中的6个字段,“神龙”就是挖出的新区块,你对“神龙”许的愿望就是比特币奖励,包括创建新区块的奖励和该区块中所含交易的手续费。
我们先来了解一下比特币挖矿的6颗“龙珠”分别是什么,容不容易得到?6个字段中,除了随机数需要不断尝试寻找,其他的5个字段都是很容易获得的。
1、版本字段:用来跟踪软件升级的版本号,可从软件信息中获得;
2、父区块头的哈希值:父区块被挖出后,其区块头哈希值就确定了,也很容易得到;
3、该区块中默克尔树根的哈希值:当一个区块包含的交易确定后,这个字段也就确定了;
4、时间戳:指该区块产生的近似时间,也是确定的;
5、难度目标:该区块工作量证明算法的难度目标,系统给出的,同样是确定的;
也就是说,在区块头中的6颗“龙珠”中,有5颗是很容易获得的,并且是相对确定的。只有第6颗“龙珠”——随机数(Nonce),是个不确定的、需要矿工不断尝试寻找的变量。
只有找到合适的随机数,才能召唤出“神龙”——挖出新的区块,获得比特币奖励。
什么样的随机数才是合适的呢?对区块头的6颗“龙珠”进行哈希运算,如果结果小于或等于系统给定的难度目标值,那么这个随机数就是合适的,成功“召唤神龙”——挖出新的区块,并获得相应的比特币奖励。这就是比特币挖矿的过程。
03、小结
让我们来总结一下:比特币挖矿和《七龙珠》中的召唤神龙类似,需要集齐6颗“龙珠”才能成功召唤神龙。
在这6颗“龙珠”中,有5颗是很容易获得的,只有第6颗——随机数,需要矿工不断尝试寻找。只有找到合适的随机数,也就是对区块头中的6颗“龙珠”整体进行哈希运算,得到的结果小于等于难度目标值,才算挖出新的区块,获得相应的比特币奖励。
相比于集齐7颗龙珠才能召唤神龙,集齐6颗“龙珠”才能召唤比特币,你觉得哪个更难呢?快来留言区写下你的思考吧。
用戶喜愛的交易所
已有账号登陆后会弹出下载