主页 > 怎么退出imtoken钱包 > 挖矿节点和矿工如何协同完成挖矿?

挖矿节点和矿工如何协同完成挖矿?

怎么退出imtoken钱包 2023-07-11 05:07:06

科普:比特币挖矿的过程

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

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

01 矿工破解挖矿任务

自建比特币矿池

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

02挖矿节点验证新区块

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

区块的验证信息包括:

03 广播新区块,扩展区块链

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

自建比特币矿池

当前挖矿的一些特点

集群挖矿-矿池:

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

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

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

自建比特币矿池

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

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

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

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

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

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

自建比特币矿池

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

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

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

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

以上是比特币挖矿的基础知识,结合“比特币交易的过程”和“产生新比特币区块的过程”,看完这三篇文章,相信读者朋友对比特币挖矿感兴趣我的会有一个初步的了解。如果想与博主交流,讨论更多的挖矿问题,欢迎关注“八卦挖矿”微信公众号,同时可以及时了解更多博主更新的挖矿知识。

知识点

自建比特币矿池

区块高度:也称为区块高度,相当于区块编号,其值等于区块链中该区块之前所有区块的数量。区块链的第一个区块是创世区块,区块高度为 0,第二个区块高度为 1,第三个区块高度为 2,以此类推。区块链的总区块数为最新区块的区块高度+1。

PoW:全称Proof of Work,中文名称为Proof of Work。它是比特币网络用来解决确认新比特币区块的权利问题的一种方法。在比特币网络中,每个人都可以参与创建新区块。 PoW 机制规定,谁能在最短的时间内找到区块头哈希值小于比特币网络规定的 TargetHash 的新区块,谁就获得了官方许可。新区块的记账权。

记账权:比特币的区块链本质上是一个大型的链式账本。链上的每一个区块都是一个账本,记录了区块链上发生的比特币交易信息。因此,我们将创建新区块的过程视为记账的过程。记账权,顾名思义,就是记录交易账本的权利,也就是在比特币区块链上创建一个正式的新区块的权利。

参考资料:

挖矿实现:

方块高度:

工作证明: