比特币挖矿源码学习

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 10:29   34   0

挖矿的本质:找到一个随机数,计算区块头的哈希值,使哈希值小于一个目标值。

流程如下:

1、构造候选区块

2、计算区块头哈希值,满足目标哈希值,挖矿成功

3、区块加入到本地区块链,并广播区块

4、其他节点验证区块,加入到本地区块链

5、新一轮竞赛。

问题一:所有矿工都从0开始计算随机数,所有矿工的目标值都一样,那是不是硬件速度快的矿工永远先挖到矿?

答案:否,由于区块体中包含了交易池中的部分交易,并且包含coinbase交易,coinbase交易包含了矿工的比特币地址,这就导致了每个矿工候选区块的区块头中Merkel根的不一样,所以区块头都完全不一样,那么计算区块头的哈希值与目标值比较,就是概率性问题了,性能低的矿机也可能比性能高的矿机先找到随机数。

问题二:对于矿池矿工,他们的矿工地址都一样,是每台都从0开始计算随机数还是每台矿机都计算某个区间的随机数,如果都从0开始计算那岂不是会导致矿池中矿机相互竞争,而不是相互合作?

答案:对于随机数,每台矿机依然是从0开始计算,递增1遍历找到目标值,但不同的是,这时会利用到coinbase交易中的coinbase data(币基数据)这个数据域,对每台矿机,这个数据域的值都不同,和随机数组合起来,每台矿机之间就是合作关系了。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP