白话区块链
比特币挖矿:矿工通过不断试错,直到找到合适的随机数,新的区块被挖出,得到对应的区块奖励和交易手续费奖励。
01
讲个故事给你听
这是一个远古的传说,世界上散落着7颗龙珠,谁集齐这7颗龙珠,并念出咒语,就能呼唤神龙;神龙会完成他的一个希望。神龙在完成希望后,7颗龙珠便会自动飞散,变成石头,一年后才可再次运用。
02
比特币挖矿便是呼唤“神龙”
呼唤神龙需求集齐7颗龙珠。比特币挖矿和呼唤神龙很类似,需求集齐6颗“龙珠”,才能呼唤出比特币。
我们先来了解一下,比特币区块的构造。
比特币区块主要由两部分组成:区块头和区块体。区块体用来装载该区块打包的一切买卖,一个装载满买卖信息区块体,其巨细约在1M左右(为了便于了解,我们以最原始的1M约束来举例,现在常常会突破1M)。
▲区块结构简易示意图
区块头里包含的信息有版本、父区块头哈希值(也便是前一个区块)、该区块中默克尔树根的哈希值、时刻戳、难度方针、随机数(Nonce)6个字段。区块头的巨细是固定的,只要80字节,12500个区块头容量巨细也只要1M。
请注意:读到这里,假如发现这些名词看不懂,没关系,忽视它们,把它们当成是一颗颗”龙珠“,不会影响到你对挖矿的了解。
▲区块结构简易示意图
关于挖矿而言,收集到区块头里的“6颗龙珠”就有机会“呼唤神龙”。6颗“龙珠”便是区块头里的6个字段,“神龙”便是挖出的新区块,你对“神龙”许的愿便是比特币奖赏,包括创建新区块的奖赏及该区块中所含买卖的买卖费。
我们先来了解一下比特币挖矿的6颗“龙珠”别离是什么,容不容易得到?
6个字段中,除了随机数需求不断试错寻找,其他的5个字段都是很简单取得的。
1、版本字段:是用来跟踪软件升级的版本号,可自动从软件信息得到;
2、父区块头的哈希值:父区块被挖出后,其区块头哈希值就确认了,也很简单得到;
3、该区块中默克尔树根的哈希值:当一个区块打包的买卖确认了,这个字段也就确认,So Easy;
4、时刻戳,是指该区块产生的近似时刻,也是确认;
5、难度方针:该区块工作量证明算法的难度方针,体系给出的,同样是确认的;
也便是说,区块头中,6颗“龙珠”中的5颗是很简单取得的,并且是相对确认的。只要第6颗“龙珠”——随机数(Nonce),是个不确认的、需求矿工不断试错去需找的变量。
只要找到了适宜的Nonce,才能呼唤出“神龙”——挖出新的区块,得到比特币奖赏。
什么是适宜的随机数呢?对区块头里的6个字节取哈希值,假如这个值小于或等于体系给定的难度方针值,那么就算是找到了适宜随机数,就能成功“呼唤神龙”——挖出新区块,得到比特币奖赏。这便是比特币挖矿的进程。
03
小结
我们来总结一下:比特币挖矿和《七龙珠》里召集神龙类似,集齐6颗“龙珠”就有机会“呼唤神龙”。
6颗“龙珠”中,其间5颗很简单得到,只要第6颗——随机数,需求矿工不断试错寻找。直到找出适宜的随机数,也便是对区块头里的6颗“龙珠”整体进行哈希运算,得到的值小于等于难度方针值,才算挖出新的区块,得到相应的比特币奖赏。
链想家寄语:本站文章版权归原作者及原出处所有。内容为作者个人观点,并不代表本站观点及对其真实性负责,本站只供参考并不构成任何投资及应用建议。