首页 > 新手入门 > 正文

比特币矿机的工作原理

分类:教程chansichansi 2021-02-23 11:23

  矿机对区块头(blockheader)做两次哈希计算(SHA256),运算出来的结果小于矿池下发的难度即为一个有效的结果(Share),不断循坏这个过程就是挖矿。

  比特币区块的区块头数据结构如下图:

  比特币矿机的工作原理

  Chunk1和Chunk2分别为两次哈希计算的消息输入,各64个字节,每完成一次运算,矿机会对区块头中的Nonce字段 1,从而改变区块头,进行下一次运算, 试图碰撞出新的有效的Share。

  问题在于Nonce只有32个bit, 比特币芯片的计算速度很快,毫秒级就会耗尽。因此,当Nonce耗尽后,早期的方案是改变Coinbase(区块中的第一比交易)中的extraNonce字段,从而导致Merkle root发生变化(上图蓝色圈中)并生成新的区块头重新投入运算。

  目前基本上所有的矿机厂家都支持Asic Boost算法,原理就是不改变Chunk2中Merkle root的最后四个字节,从而通过在第二次哈希计算时复用部分计算结果(上图红色框中)来加速。有一种比较常见的,叫做overt-Asic Boost的算法,就是通过改变Chunk1中的Version字段来实现这一目的。

  有些矿机厂商将Chunk1和Chunk2的计算都实现在芯片中,系统软件和主控板就会比较简单,有些厂商仅仅将Chunk2的计算实现在芯片中,则系统软件和主控板就会相对复杂一些。

  注:从矿池下发的数据,红框中的几点,可以看出,是支持通过Coinbase中的extraNonce字段来增加Nonce的枚举空间的。

上一篇:返回列表

下一篇:区块链的常识之,什么是区块链,区块链节点是什么?

猜您喜欢
关于我们联系我们作者投稿APP下载