主页 > imtoken官网下载2.0国际版 > 比特币挖矿教程图(图文详解挖矿过程)

比特币挖矿教程图(图文详解挖矿过程)

imtoken官网下载2.0国际版 2023-03-07 06:10:50

比特币挖矿科普专辑到此结束。在前两篇文章铺垫之后,相信读者朋友对比特币交易和出块的过程有了一定的了解。那么它们和“挖矿”有什么关系呢?

我们知道,在比特币网络中,有很多挖矿节点和矿工参与创建新的比特币区块。如果多个挖矿节点创建了相同高度的区块,应该判断哪个区块更合法?比特币引入了PoW(Proof of Work)共识机制,通过挖矿来争夺新区块的记账权。谁获得了新区块的记账权,它创建的新区块就是合法的。挖矿的目的是为了赢得记账权,并确认新的区块和交易。那么挖矿节点和矿工如何协同完成挖矿呢?

科普:比特币挖矿的过程

矿工破解挖矿任务

挖矿节点创建预备区块后,将预备区块的区块头数据发送给矿工。矿工收到挖矿任务后,会增加区块头中的随机数。每次调整时,根据比特币协议比特币计算过程,使用 SHA256 算法计算区块头的哈希值。如果区块头的哈希值大于目标哈希,则继续改变随机数,直到区块头的哈希值小于或等于目标哈希(或挖矿节点发现新区块已被其他节点挖出,则放弃原来的挖矿任务,构建新的储备块,重新开始挖矿)。

科普:比特币挖矿的过程

挖矿节点验证区块并扩展本地区块链

当矿工想办法使准备好的区块头的哈希值小于目标哈希的随机数时,会立即将挖矿结果上报给挖矿节点。挖矿节点收到信息后,立即根据矿工上报的信息对区块进行重组,并对区块进行验证。验证后,挖矿节点将新区块保存到节点本地数据库,并添加到节点本地区块链中。

区块的验证信息包括:

将新区块广播到全网

挖矿节点在本地保存新区块后,会同步到比特币网络广播挖矿结果。由于整个块的块大小较大,一般先广播新块的块头。其他节点收到广播后,首先会验证区块头信息。验证通过后,节点会首先在其本地区块索引库中创建新区块的索引。节点收到新区块的所有信息后,验证交易信息和区块头的 MerkleRoot 哈希。验证通过后,节点将交易信息记录到新区块中,并扩展本地区块链。至此比特币计算过程,新区块的广播和验证完成,挖矿节点开始下一个区块的挖矿。

科普:比特币挖矿的过程

目前挖矿集群矿池的一些特点:

比特币挖矿,理论上任何人都可以搭建自己的比特币挖矿节点,参与挖矿,甚至可以手动验证区块头哈希,破解挖矿任务,争夺记账权。

但博主在上一篇文章中提到,按照目前的挖矿难度,即使使用目前主流的矿机,理论上也需要42年才能找到一个符合比特币网络要求的新区块。 ,而如果使用普通PC或人工计算,则需要数万年甚至数百万年。

因此,普通矿工单次挖矿的经济效益太低,机器可能一分钱都报废。矿池就是在这种情况下应运而生的。大量矿工将自己的矿机接入矿池,从矿池的挖矿节点获取挖矿任务,集体挖矿。这样就可以在比较短的时间内挖出新的区块,获得区块奖励。矿池根据每个矿工在挖矿过程中的贡献分配挖矿收益。所有矿工都可以实时获得挖矿收益并收回成本。或二次投资。

矿工实际收到的挖矿任务中,TargetHash远大于比特币网络所需的TargetHash:

矿池和矿工的挖矿过程同上。矿机通过网络与矿池通信,请求挖矿任务。矿池将挖矿任务(包括区块头数据)发送给矿机。矿机改变区块头的随机数,验证区块哈希。满足挖矿任务TargetHash要求的随机数会按照挖矿协议的格式提交给矿池,矿池根据矿机提交的挖矿结果计算收益。

需要注意的是,如果在发给矿工的挖矿任务中TargetHash是此时比特币网络的TargetHash,那么TargetHash太小,矿工几乎不可能随机找到符合要求的号码。如果提交挖矿结果,是无法获得挖矿收益的。

因此,矿池下发给矿机的挖矿任务中有一条单独的信息:初始挖矿难度。这是一个远低于全网挖矿难度的值,对应的 TargetHash 更大。在这个难度下,矿工可以在较短的时间内找到满足要求的随机数,向矿池提交更多的挖矿结果。

矿池算力与矿机本地算力不同:

说到挖矿,总有一个词绕不开:算力。算力究竟是什么?

哈希率实际上是矿工验证区块头哈希值的速度。矿工获得挖矿任务后,会根据挖矿任务的信息递增区块头的随机数。每次调整随机数时,都会验证区块头的哈希值。可以看出,限制矿工挖矿速度的唯一因素就是验证区块头哈希值的速度,所以有一个“算力”的指标。

目前常规比特币矿机的算力单位是TH/s,也就是说每秒可以验证1T哈希,1T=1×103G=1×106M=1×109K=1×1012次。

有挖矿经验的朋友会发现,矿机本地显示的算力和矿池显示的算力总是存在差异的。这是因为矿机本地显示的算力是矿机验证哈希的速度。只与矿机性能有关。无论是否找到满足挖矿任务要求的随机数,矿机的本地算力始终存在。矿池中的矿机显示的算力不同。由矿池根据矿机提交的实际挖矿结果计算得出。如果无法向矿池提交所需的随机数,则会降低矿池中的矿机算力。

但时间延长后,运气对矿机破解挖矿任务的影响会降低。