随机值升位方案(the extra nonce solution)

2012年以来,比特币挖矿发展出一个解决区块头基本结构限制的方案。在比特币的早期,矿工可以通过遍历随机数(nonce)获取符合要求的hash来挖出一个块。

难度增长后,矿工经常在尝试了40亿个值后仍然没有出块。然而,这很容易通过读取块的时间戳并计算经过的时间来解决。因为时间戳是区块头的一部分,它的变化可以让矿工用不同的随机值再次遍历。当挖矿硬件的速度达到了4GH/sec,这种方法变得越来越困难,因为随机数的取值在一秒内就被用尽了。

当出现ASIC矿机并很快达到了TH/sec的hash速率后,挖矿软件为了找到有效的块,需要更多的空间来存储nonce值。可以把时间戳延后一点,但将来如果把它移动得太远,会导致区块变为无效。

区块头需要信息来源的一个新的“变革”。解决方案是使用coinbase交易作为额外的随机值来源,因为coinbase脚本可以存储2-200字节的数据,矿工们开始使用这个空间作为额外随机值的来源,允许他们探索一个大得多的区块头值范围来找到有效的块。这个coinbase交易包含在merkle树中,这意味着任何coinbase脚本的变化都将导致Merkle根的变化。

8个字节的额外随机数,加上4个字节的“标准”随机数,允许矿工每秒尝试2^96中可能性而无需修改时间戳。如果未来矿工穿过了所有的可能性,他们还可以通过修改时间戳来解决。同样,coinbase脚本中也有更多的额外空间可以为随机数的扩展做准备

你可能感兴趣的:(随机值升位方案(the extra nonce solution))