BTCV繁华资讯 > 货币新闻 > 科普:比特币挖掘的过程_btcv-繁华资讯

科普:比特币挖掘的过程_btcv-繁华资讯

作者:_btcv-繁华资讯来源:_btcv-繁华资讯 货币新闻 2020年07月20日

比特币挖掘的科普专辑到此结束。在前两篇文章之后,我相信读者已经对比特币交易和区块生成的过程有了一定的了解。那么这和“采矿”有什么关系呢?众所周知,在比特币网络中,有许多挖掘节点和挖掘者参与创建新的比特币区块。如果多个挖掘节点创建了相同的

比特币挖掘的科普专辑即将在这里结束。在前两篇文章之后,我相信读者和朋友们已经对比特币交易和块生成的过程有了一定的了解。那么这和“采矿”有什么关系呢?

众所周知,在比特币网络中,有许多挖掘节点和挖掘者参与创建新的比特币区块。如果多个挖掘节点在高度创建了同一个块,哪个块更合法?比特币引入了PoW共识机制,通过开采来争夺新区块的记账权。无论谁获得新区块的簿记权,它创建的新区块都是合法的。挖矿的目的就是赢取记账权,确认新区块和交易.那么,挖掘节点和挖掘者如何一起工作来完成挖掘呢?

科普:比特币挖矿的过程

01矿工破解挖矿任务

挖掘节点创建预备块后,会将预备块的块头数据发送给挖掘者。接收到挖掘任务后,挖掘者将在块头中增加随机数。每次调整后,块头的哈希值将根据比特币协议通过SHA256算法进行计算。如果块头的哈希值大于目标哈希值,则继续更改随机数,直到块头的哈希值小于或等于目标哈希值(当或者挖掘节点发现新块已被其他节点挖掘时,它将放弃原始挖掘任务,构建新的预备块并重新开始挖掘)。

02挖矿节点验证新区块

当挖掘者发现可以使初步块的头的哈希值小于目标哈希值的随机数时,他们将立即向挖掘节点报告挖掘结果。在接收到信息后,挖掘节点根据矿工和验证区块it报告的信息立即重组块。验证之后,挖掘节点将新块保存到该节点的本地数据库,并将其添加到该节点的本地区块链。

该块的验证信息包括:

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

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

交易数据中的第一笔交易是否为硬币基础交易;

块中的每个交易是否合法。

03广播新区块,延长区块链

挖掘节点在本地保存新块后,会将挖掘结果同步广播到比特币网络。由于整个块的块大小很大,新块的块头通常先广播。在接收到广播之后,其他节点首先验证块报头信息。验证通过后,节点将首先在其本地块索引库中创建新块的索引。在接收到新块的所有信息后,节点验证事务信息和块头的MerkleRoot散列。验证通过后,节点将事务信息记录到新块中,并扩展本地区块链。至此,新区块的广播和验证完毕,挖矿节点开始下一个区块的挖矿工作.

科普:比特币挖矿的过程

当前挖矿的一些特点

集群挖矿-矿池:

理论上,任何人都可以建立自己的比特币挖掘节点并参与挖掘,甚至可以手动验证块头的哈希,中断挖掘任务并争夺记账权。

然而,前一篇文章中的博主提到,根据目前的挖掘难度,即使使用目前主流的挖掘机器,理论上也需要42年才能找到一个符合比特币网络要求的新块,如果使用普通的PC或者手工计算,需要几万年甚至几百万年。

因此,普通矿工单独挖掘的经济效益太低,他们可能会挖掘机器并报废而一分钱也赚不到。在这种情况下,矿池就形成了,大量的矿工将他们的采矿机器连接到矿池,从矿池的采矿节点获得采矿任务,并集体采矿。这样,可以在相对较短的时间内挖掘出新的区块,并获得区块回报。采矿收入可以根据每个矿工在采矿过程中的贡献在采矿池中进行分配,所有矿工都可以实时获得采矿收入,并进行收益或二次投资。

矿机实际收到的挖矿任务中,TargetHash远大于比特币网络要求的TargetHash:

矿工在矿池中采矿的过程遵循上述过程。采矿机通过网络与采矿池通信以请求采矿任务,采矿池将采矿任务(包括块头数据)发送给采矿机,采矿机改变块头的随机数并验证块散列。满足挖掘任务目标哈希要求的随机数将根据挖掘协议的格式提交给挖掘池,挖掘机从挖掘池提交的挖掘结果将计算收入。

需要注意的是,如果在采掘机发出的采掘任务中,此时的TargetHash是比特币网络的TargetHash,那么这个TargetHash太小,采掘机基本上不可能找到满足要求的随机数,提交采掘结果也不可能获得采掘收入。

因此,在由矿池的馈电线发出的采矿任务中只有一条消息:初始挖矿难度。这个值远低于在整个网络中挖掘的难度,这相当于一个更大的TargetHash。在这种困难下,采矿机可以在短时间内找到满足要求的随机数,并将更多的采矿结果提交给采矿池。

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

说到采矿,总有一个不可避免的名词:算力。计算能力到底是什么?

事实上,算力是矿工验证块头哈希值的速度。在获得挖掘任务之后,挖掘机器将根据挖掘任务的信息增加块头的随机数,并且一旦随机数被调整,就验证块头的散列值。可以看出,限制采掘机采掘速度的唯一因素是验证块头哈希值的速度,所以有“算力”的索引。

目前,传统的比特币采掘机的计算能力单位是TH/s,这意味着哈希每秒可以验证1T次,1T=1103G=1106M=1109K=11012次。

有采矿经验的朋友会发现,采矿机器在本地显示的计算能力和采矿池显示的计算能力总是有差异的。这是因为挖掘机器显示的本地计算能力是挖掘机器验证散列的速度,该速度仅与挖掘机器的性能相关。无论是否找到满足挖掘任务要求的随机数,挖掘机器的本地计算能力总是存在的。但是,采矿机在矿池中显示的计算力是不同的,它是根据采矿机提交的实际采矿结果计算的。如果采掘机的运气差,满足采掘任务要求的随机数长时间找不到,采掘结果不能提交给矿池,矿池中采掘机的计算力会降低。

但是,在很长一段时间后,运气对采掘机采掘任务的影响将会降低,而且采掘机长期的平均计算能力与采掘机的本地计算能力没有太大的区别。

以上是比特币挖掘的基本知识。读完这三篇文章,我相信读者会对比特币的挖掘有一个初步的了解。如果你想和博主交流,讨论更多的挖掘问题,请关注“八卦挖掘”的微信公众账号,同时,你可以及时了解更多博主的最新挖掘知识。

知识点

也叫街区高度,相当于街区的编号,它的值等于区块链这个街区之前的所有街区的编号。区块链的第一个街区是创世街区,街区高度为0,第二个街区高度为1,第三个街区高度为2,依此类推。区块中的区块总数

搜狗网:全称是工作证明,中文名称是工作量证明。这是比特币网络用来解决新比特币块权限确认问题的一种方法。在比特币网络中,每个人都可以参与新区块的创建。根据PoW机制,区块高度的块头哈希值小于PoW谁能够在最短时间内找到的比特币网络指定的目标哈希值。

搜狗网:比特币的区块链本质上是一个大的连锁账户。链条中的每一个环节都是一个账户,记录着区块链发生的比特币交易信息。因此,我们将创建新块的过程视为簿记过程。顾名思义,簿记权是记录交易账簿的权利,即在比特币区块链中创建新区块的权利。

预备新区块

采矿的实现:https://blog.csdn.net/ztemt_sw2/article/details/80958087

街区高度:https://www.investopedia.com/terms/b/block-height.asp

工作量证明:https://en.wikipedia.org/wiki/Proof_of_work

标签: btcv交易