BTC系统中具体的区块信息

为一个区块的信息(取自视频中截图,源自blockchain.info)


什么是挖矿?
可以看到,区块哈希与前一区块哈希都是以一长串0开头的,挖矿本身就是尝试各种nonce,使得产生的区块哈希值小于等于目标阈值。该目标阈值,表示成16进制,就是前面含有一长串的0
下为block header的代码中实现的数据结构。里面的几个域在公开课笔记4中(比特币区块信息)已经解释过了,这里不再赘述。

可以看到,nonce是一个32位的无符号整型数据,在挖矿时候是通过不断调整nonce进行的,但可以看到,nonce的取值最多为2^32 (2的32次方)种。但并非将这些nonce全部遍历一遍,就一定能找到符合要求的nonce。由于近年来,挖矿人员越来越多,挖矿难度已经调整的比较大了(关于难度调整请关注后续博文,会有专门一篇介绍难度调整),而2^32这一搜索空间太小,所以仅调整nonce很大可能找不到正确的结果。

还有哪些域可以调整呢?

为block header中对各个域的描述。而仅仅调整nonce是不够的,所以这里可以通过修改Merkle Tree的根哈希值来进行调整。

思考:打包的交易和顺序确定了,根哈希值不就确定了吗?这个怎么能修改呢
————————————————
版权声明:本文为CSDN博主「Sinocifengs」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mu_Xiaoye/article/details/104342513

posted @ 2022-02-11 16:57  xjspyx  阅读(124)  评论(0)    收藏  举报