首页 > 热点资讯 > 正文

比特币挖矿科普专辑:区块链与挖矿的关系

2024-03-01 18:54 来源:网络

在前两篇文章的基础上,我们现在来探讨一下比特币交易和区块产生的过程如何与"挖矿"产生联系。

比特币挖矿科普专辑:区块链与挖矿的关系

矿工破解挖矿任务

矿工在接收到挖矿节点发送的预备区块头数据之后,会递增区块头中的随机数。随后,他们会按照比特币协议的规定,利用SHA256算法来计算区块头的哈希值。在这个过程中,如果区块头的哈希值大于目标哈希,他们将继续更改随机数,直至区块头的哈希值小于或等于目标哈希(或者当挖矿节点发现新区块已经被其他节点挖掘出来时,它会放弃原来的挖矿任务,构建一个新的预备区块,然后重新开始挖矿)。

挖矿节点验证区块,延长本地区块链

一旦矿工找到使预备区块头哈希值小于目标哈希的随机数,他们就会立即将挖矿结果上报给挖矿节点。当挖矿节点收到此消息后,它将立即根据矿工提供的信息重组区块并进行验证。验证成功后,挖矿节点将新区块保存至其本地数据库,并将其添加到节点本地区块链上。

向全网广播新区块

挖矿节点在本地保存新区块后,会同步地向比特币网络广播挖矿结果。通常来说,由于整个区块的数据量较大,节点会先广播新区块的区块头。其他节点在接收到广播后,首先会对区块头进行验证,验证通过后,节点会在其本地的区块索引库中创建新区块的索引。在接收到新区块的完整信息后,节点会进一步验证交易信息和区块头的MerkleRoot哈希,验证通过后,节点将会把这些交易信息录入新区块,并延长本地区块链。此时,新区块的广播和验证宣告完成,挖矿节点开始进行下一个区块的挖掘工作。

当前挖矿的特点集群挖矿-矿池

虽然理论上讲,任何人都可以建立自己的比特币挖矿节点,参与到挖矿活动中,甚至是手动验证区块头哈希以破解挖矿任务,但是实际上,由于当前的挖矿难度极高,即使是采用最新的主流矿机也需要大约42年的时间才能找到符合比特币网络要求的新区块,如果是采用普通的PC或是手工计算,则需要上万年甚至上百万年的时间。

因此,对于普通矿工来说,单独挖矿的经济回报较低,他们可能会在设备报废之前都无法赚取到任何收入。在这种背景下,矿池应运而生。大量的矿工会把自己的矿机连接到矿池,从而获取来自矿池的挖矿任务,并共同进行挖矿。这样一来,他们在相对较短的时间内就能找到新区块,赢得区块奖励,矿池也会根据每个矿工在挖矿过程中的贡献情况进行收益分配,所有矿工都能实时获取挖矿收益,进而进行回本或二次投资。

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

矿池和矿工一起挖矿的过程遵循相同的步骤。矿机通过网络与矿池通信,请求挖矿任务,矿池将包含区块头等数据的挖矿任务发送给矿机,矿机修改区块头的随机数并验证区块哈希。只有当随机数符合挖矿任务的TargetHash要求时,矿机才会按照挖矿协议的格式提交给矿池,矿池将根据矿机提交的挖矿结果计算收益。

然而需要注意的是,如果矿机接收的挖矿任务中,TargetHash是比特币网络所需的TargetHash,那么这个TargetHash非常小,矿机几乎不可能找到符合要求的随机数,也无法提交挖矿结果,也就无法获得挖矿收益。

因此,矿池会给矿机发送带有"初始挖矿难度"这一信息的挖矿任务。这个初始挖矿难度远低于全网挖矿难度,对应的TargetHash更大,这样矿机就可以在较短的时间内找到符合要求的随机数,向矿池提交更多的挖矿结果。

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

在讨论挖矿的过程中,我们会经常遇到一个关键词——"算力"。那到底什么是算力呢?

实际上,算力是指矿工验证区块头哈希值的速度。当矿机获得挖矿任务后,它会根据挖矿任务的内容,递增区块头的随机数,并验证区块头的哈希值。很显然,唯一能够影响矿机挖矿速度的因素就是它验证区块头哈希值的速度,因此,就有了"算力"这一指标。

目前,常见的比特币矿机的算力单位是TH/s,这意味着每秒钟它可以验证1万亿次哈希,1TH = 1×10^3G = 1×10^6M = 1×10^9K = 1×10^12次。

那些曾经尝试过挖矿的人都会发现,矿机本地显示的算力与矿池显示的算力往往存在差异。原因在于,矿机本地显示的算力指的是矿机验证哈希的速度,它只与矿机的性能相关,不论是否有找到符合挖矿任务要求的随机数,矿机本地算力始终存在。然而,矿机在矿池显示的算力则有所不同,它是矿池根据矿机实际提交的挖矿结果所计算出来的,如果矿机的运气不佳,在较长一段时间内都无法找到符合挖矿任务要求的随机数,无法向矿池提交挖矿结果,那么矿机在矿池的算力就会下降。

然而,随着时间的推移,运气对矿机破解挖矿任务的影响会逐渐减小,矿机较长时间的矿池平均算力与矿机本地算力之间的差距并不会很大。

这就是关于比特币挖矿的基础知识。如果你能读懂这篇文章,相信你对比特币挖矿已经有了初步的理解。如果你想了解更多关于挖矿方面的内容,欢迎关注"闲话挖矿"微信公众号,这里会提供最新的挖矿资讯和知识。

本文涉及的知识点:

区块高度: 区块高度是指区块的编号,它的值等于区块链中该区块之前的区块数量。区块链的第一个区块是创世区块,区块高度为0,第二个区块的区块高度为1,第三个区块的区块高度为2,以此类推。区块链中区块的总数,就是最新区块的区块高度加1。

PoW: PoW是Proof of Work的简称,中文译名为工作量证明。这是比特币网络用来解决新区块确权问题的一种方法。在比特币网络中,每个人都有机会参与到新区块的生成工作中,PoW机制规定,谁能最先找到一个区块头哈希值小于比特币网络指定的目标哈希值的预备新区块,那么这个人就有权利记录新区块。

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

参考文献:

挖矿的实现

Block Height

工作量证明

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系多特删除。(联系邮箱:9145908@qq.com)