区块链网站|NFTS 比特币挖矿 科普:比特币挖矿过程

科普:比特币挖矿过程

广告位

科普:比特币挖矿的过程

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

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

挖掘者中断挖掘任务后,挖掘节点创建备用块,并将备用块的块头数据发送给挖掘者。矿工接到挖掘任务后,会递增块头中的随机数。每次调整的时候都会根据比特币协议用SHA256算法计算出块头的哈希值。如果块头的hash值大于目标hash值,则继续改变随机数,直到块头的hash值小于等于目标hash值(或者当挖掘节点发现新的块被其他节点挖走时,会放弃原来的挖掘任务,构造新的备用块,重新开始挖掘)。

挖掘节点验证该块并扩展本地区块链。当挖掘者发现一个能使初步块头的哈希值小于目标哈希值的随机数时,他会立即向挖掘节点报告挖掘结果。挖掘节点收到信息后,立即根据矿工上报的信息对块进行重组,并对块进行验证。验证后,挖掘节点将新块保存到节点的本地数据库,并将其添加到节点的本地区块链。

该块的验证信息包括:

块头是否合法(块头哈希目标哈希);

头的MerkleRoot hash是否与块中事务数据的MerkleRoot hash一致(验证事务是否被篡改);

数据中的第一笔交易是否是比特币基地交易;

区块内的每一笔交易是否合法等等。

向整个网络广播新块。挖掘节点在本地保存新块后,同步向比特币网络广播挖掘结果。由于整个块的体积较大,通常会先广播新块的块头。接收到广播后,其他节点首先验证块头信息。验证通过后,节点将首先在其本地块索引数据库中创建新块的索引。在接收到新块的所有信息后,节点验证块头的事务信息和MerkleRoot散列。验证通过后,节点将这些事务信息输入到新块中,并扩展本地区块链。此时,新块的广播和验证完成,挖掘节点开始下一个块的挖掘工作。

当前挖矿集群挖矿的一些特点——矿池:比特币挖矿。理论上,任何人都可以构建自己的比特币挖矿节点参与挖矿,甚至可以手动验证块头的hash,破解挖矿任务,争夺记账权。

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

所以普通矿工单独开采经济效益太低,机器可能报废,一分钱也赚不到。矿池就是在这种情况下产生的,大量矿工将自己的矿机连接到矿池,从矿池的采矿节点获得采矿任务,集体开采。这样可以在短时间内挖到新的区块,并获得区块奖励。矿池根据每个矿工在采矿过程中的贡献来分配采矿收益,所有矿工都可以实时获得采矿收益,并进行资本回报或二次投资。

矿机实际收到的挖矿任务中,TargetHash远大于比特币网络要求的TargetHash:矿池和矿工挖矿的过程遵循上述过程。采掘机通过网络与采掘池通信,请求采掘任务。挖掘池将挖掘任务(包括块头的数据)发送给矿机,矿机改变块头的随机数,验证块哈希。满足采矿任务的TargetHash要求的随机数将按照采矿协议的格式提交给采矿池,采矿池将为采矿机提交的采矿结果计算收入。

需要注意的是,如果在给矿机的挖掘任务中,TargetHash是比特币网络的TargetHash,那么这个TargetHash太小,矿机基本上不可能找到符合要求的随机数并提交挖掘结果,因此不可能获得挖掘收益。

所以矿池中支线下达的开采任务中有一条信息是:初始开采难度。这是一个远低于全网挖掘难度的数值,对应更大的TargetHash。在这种难度下,矿机可以在短时间内找到符合要求的随机数,向矿池提交更多的挖掘结果。

池算力不同于矿机本地算力:说到矿,总有一个绕不开的名词:算力。到底什么是计算能力?

Force,其实就是矿工验证块头哈希值的速度。矿机在获得挖掘任务后,会根据挖掘任务的信息递增块头的随机数,每调整一次随机数验证一次块头的哈希值。可以看出,限制矿机挖掘速度的唯一因素就是它验证块头哈希值的速度,因此才有了“计算能力”这个指标。

目前常规比特币挖矿机的计算单位是TH/s,也就是说每秒可以验证1T个哈希,1T=1103G=1106M=1109K=11012次。

有挖矿经验的朋友会发现,矿机本地显示的计算力和矿池显示的计算力总是有差别的。这是因为矿机显示的本地计算能力就是矿机验证hash的速度。只与矿机性能有关,无论是否找到满足挖掘任务要求的随机数,矿机的本地计算能力始终存在。但是矿机在矿池显示的计算能力是不一样的。由矿池根据矿机提交的实际开采结果进行计算。如果矿机运气不好,长时间找不到满足采矿任务要求的随机数,无法向矿池提交采矿结果,那么矿池内矿机的计算能力就会降低。

但时间拉长后,运气对矿机破解挖矿任务能力的影响会降低,矿机长期挖矿池的平均计算力和矿机本地计算力相差不大。

以上是比特币挖矿的基础知识。如果你能看完这三篇文章,相信读者朋友们对比特币挖矿会有一个初步的了解。如果你想和博主交流探讨更多的挖掘问题,请关注“八卦挖掘”微信微信官方账号,同时可以及时了解更多博主更新的挖掘知识。

文章涉及的几个知识点:

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

PoW:叫工作证明,中文名字叫工作量证明。是比特币网络用来解决新比特币区块确权问题的方法。在比特币网络中,每个人都可以参与新区块的创建。PoW机制规定,谁能找到块头的散列值小于TargetHash的初步新块

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/btb/btbkuangye/2469.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部