区块链挖矿到底在挖什么?

时间:2023-11-18 15:29:01

要想理解挖矿,就要先搞清楚区块链的结构。

每个区块都包括两个部分:区块体和区块头。区块体有大小限制,不能被无限放大;区块最初的大小被限制在1M字节,这是因为在Segwit被激活之前,根据比特币网络建立之初达成的共识,比特币网络节点只能识别不大于1MB字节的区块。

区块链挖矿到底在挖什么?

区块头主要用来记录说明信息,而区块体则用来记录“交易”。真正的数据记录在客户端的数据库列表中。区块链的结构中重要的是区块头。区块头共有六个字段,分别是:版本号、前一区块的哈希值、梅克尔根、预设的难度值、时间戳、要寻找的随机数。

其中,版本号主要用于区分软件的升级换代,在一段时间内不变且相同;前一区块的哈希值就是前一区块头的哈希值,10分钟的挖矿过程,在所有矿机中,这个值都不变;梅克尔根也是一个哈希值,由列表中的各交易两两递归生成一个总哈希值;预设的难度值强调,10分钟内所有矿机中的这个值不变且相同;要寻找的随机数就是要获得挖矿奖励的核心要素。挖矿过程就是对上面这六个字段进行一系列转换、连接和哈希运算,不断地寻找随机数,最后成功找到一个随机数满足条件。

当经过哈希运算后的值比预设难度值的哈希值小时,挖矿就成功了。当然,不管挖矿是否成功,每一节点都要预先把奖励的50个比特币、所有交易的手续费记录在交易列表的第一项,输出地址就是本节点的地址。如果挖矿不成功,这笔交易就作废,没有任何奖励。