矿工遍历所有随机数仍得不到正解是爱情誓言错了?

  在《为什么有的区块没有打包买卖,是矿工健忘了吗?》一文中,有读者留言提问:

  假设最新的区块高度为 1 万,在10: 00 整被挖出,矿工快速建立区块高度为 1 万零 1 的区块,然后在10:05,大鹤发布了一个买卖,在10: 06 最新的区块被挖出,并且打包了大鹤发布这笔买卖,这是为什么呢?按理说,这个新买卖发布的时候,矿工早就建立好了候选区块,这个买卖必定不在他当初建立的候选区块里。

  在《一个典范的故事,让你 3 分钟搞懂比特币挖矿》一文中,白话区块链引见过,挖矿的过程就是不竭测验考试随机数,试图找到合适要求的解的过程。矿工在建立好区块后,不竭测验考试随机数,直到有人找到合适要求的随机数(区块头的哈希值≤方针值),新区块被挖出,该矿工获得出块奖励。

  比特币系统中的能够测验考试的随机数是无限的,只要2^ 32 种可能的取值。矿工建立区块后,遍历所有的随机数,很可能仍没获得合适要求的解。这种环境,矿工该怎样办呢?哈希函数特点是,输入值改变哪怕一点:能够是改变挨次、添加内容、削减内容等,输出值的成果城市有天差地别般的变化。所以这种环境下矿工能够从头建立区块,好比其他内容不变,将一笔方才发布买卖打包进区块,然后再测验考试随机数,这种环境下,若是刚好找到了合适要求的解,新的区块就被挖出来了,这笔新发布买卖也就被确认了。这也就回覆了我们开首的阿谁问题。

  在遍历所有随机数后仍没有找到合适要求的解的环境下,矿工除了调整区块里打包的买卖,还有哪些其他调整方案呢?

  除去随机数字段,块头里的版本字段、父区块头哈希值、难度方针都是确定的,无法调整,而时间戳字段可调的范畴很是无限。如许下来,便利调整的部门还就剩默克尔树根字段。区块头内并没有包含该区块的买卖数据,而是对这些买卖消息取哈希值,然后再对买卖的哈希值两两归并再取哈希值,直到构成最初构成一个字段,这个字段就是默克尔树根字段,它将被存储进区块头里。添加打包的买卖、削减打包的买卖等,这些调整最终都将形成区块头里默克尔树根哈希值的变化,从而影响整个区块头的哈希值。但如许的处置都是辅助的体例,矿工更遍及的体例点窜一个特殊买卖的额外的随机数(ExtraNonce),这种调整方式相对来说愈加高效。

  别的值得一说的是,这个特殊买卖的输入域仍是良多人消息上链的窗口,好比神鱼的执子之手,与子偕老。神鱼to冬冬就写在创币买卖的输入域里。

  若是你是矿工,想在创币买卖输入域秀恩爱,你该当在区块挖出之前上写“秀恩爱“的消息,仍是等区块挖出之后再写呢?为什么呢?接待在留言区写下你的见地。

  更多精彩报道,尽在https://www.jmmodelautos.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注