主页 > imtoken钱包新版下载 > 矿机如何挖币比特币挖矿过程
矿机如何挖币比特币挖矿过程
矿机是如何挖币的?矿机种类很多,可以挖的币种也很多,所以这个问题太笼统了。想了解更多网络币,可以看看usdt是什么。下面以矿机和比特币为例进行简单介绍:
挖矿软件,矿机联网并配置好电源,即可进行挖矿。过程是这样的。第一步,通过局域网内的其他电脑访问矿机后端,配置挖矿信息(包括要接入的挖矿服务平台-矿池,以及您在矿池中的账户信息);第二步是矿机自己的生意。它开始请求矿池通过网络进行通信。矿池收到请求后,向矿工下发挖矿任务。矿工收到挖矿任务后,由其挖矿软件解决该挖矿任务。解决问题后,矿机将计算结果提交给矿池。矿池验证通过后,计算矿机的挖矿收益
这是在矿机上挖掘硬币的过程,就像用大多数其他货币进行挖掘一样。
我们知道,在比特币网络中,有很多挖矿节点和矿工参与创建新的比特币区块。如果多个挖矿节点创建相同高度的相同区块,哪个区块更合法?比特币引入了PoW(Proof of Work)共识机制,通过挖矿竞争新区块的记账权。无论谁获得新区块的记账权,其创建的新区块都是合法的。挖矿的目的是为了赢得记账权,并确认新的区块和交易。那么挖矿节点和矿工如何协同完成挖矿呢?
矿工破解挖矿任务
挖矿节点创建储备区块后,将区块的区域,即储备区域的区块数据发送给矿工。矿工接到挖矿任务后,将随机数放入木块的增量区。每次调整时,区块头的哈希值会根据比特币协议通过SHA256算法计算。如果区块头的哈希值大于目标值,则进行哈希,继续改变随机数,直到区块头的哈希值小于或等于目标值哈希(或挖矿节点发现新区块已被其他节点挖出,将丢弃原挖矿任务,建立新的预备区块并重新开始挖矿。
挖矿节点验证区块并扩展本地区块链
当矿工发现一个随机数可以使保留区区块的哈希值小于目标哈希值时,会立即将挖矿结果报告给挖矿节点。挖矿节点收到信息后,立即根据矿工上报的信息对区块进行重组,对区块进行验证。验证后,挖矿节点将新区块保存到节点本地数据库,并添加到节点本地区块链中。
该区块的验证信息包括:
区块头是否合法(区块头哈希目标哈希);
区块头的Merkle root hash与区块内交易数据的Merkle root hash一致(验证交易未被篡改);
交易数据中的第一笔交易是否为Coinbase交易;
区块中的每一笔交易是否合法等
将新区块广播到全网
挖矿节点在本地保存新区块,并将挖矿结果同步广播到比特币网络。由于整个区块的区块容量较大,所以会先广播新区块的区块的区块。其他节点收到广播后,首先验证区块头信息,验证通过后,节点会首先在其本地区块索引库中创建新区块的索引。节点收到新区块的所有信息后,验证交易信息和区块头的 Merkle 根哈希。验证通过后,节点将交易信息记录到新区块中,并扩展本地区块链。此时新区块的广播和验证完成,挖矿节点开始下一个区块的挖矿。
当前挖矿的一些特点
集群挖矿-矿池:
理论上,任何人都可以在比特币中建立自己的挖矿节点参与挖矿,甚至可以在验证区通过手工制作哈希来打破挖矿任务,争夺记账权
不过,根据前文提到的博主介绍,按照目前的挖矿难度,即使是现在的主流矿工比特币挖矿需要运气吗,理论上也需要42年才能找到一个符合比特币网络要求的新区块。普通的PC或人工计算需要数万年甚至数百万年的时间。
因此,普通矿工单独挖矿的经济效益太低,矿机可能报废,一分钱也赚不到。在这种情况下,矿池应运而生,大量矿工将矿机连接到矿池,从矿池的挖矿节点获取挖矿任务,进行集体挖矿。这样可以在短时间内挖出新的区块并获得区块奖励。矿池根据每个矿工在挖矿过程中的贡献分配挖矿收益,所有矿工都可以实时获得挖矿收益并进行回报或二次投资。
矿工实际收到的挖矿任务中,TargetHash远大于比特币网络所需的TargetHash:
矿池矿工的挖矿过程遵循上述过程。矿机通过网络与矿池通信请求挖矿任务,矿池将挖矿任务(包括区块的一级数据)发送给矿机,矿机改变区块的随机数头,验证区截取满足TargetHash要求的hash,挖矿任务会以挖矿协议的格式提交给矿池,使用矿池提交给矿机的挖矿结果进行计算收入。
需要注意的是,如果TargetHash是此时发送给矿工的挖矿任务中的比特币网络的TargetHash,那么TargetHash太小,矿工基本上不可能找到随机数符合要求的。提交挖矿结果,无法获得挖矿收益。
因此,矿池给矿工:初始挖矿难度的挖矿任务有单独的消息。这是一个远低于全网挖矿难度的值,对应的 TargetHash 更大。在这个难度下,矿工可以在短时间内找到满足要求的随机数,向矿池提交更多的挖矿结果
矿池算力与矿机本地算力不同:
说到挖矿,总有一个不可回避的名词:算力。算力究竟是什么?
算力其实就是矿工验证区哈希值的速度。矿工获得挖矿任务后,会验证挖矿任务信息、增量区域、区块头随机数以及每个随机数的调整情况。区块头的哈希。可以看出,限制矿工挖矿速度的唯一因素是验证区块哈希值的速度,因此是指数级的“算力”。
目前常规比特币矿机的计算单位是TH/s,也就是说每秒可以验证1T个哈希,1t=1* 10^ 3g=1 *10^ 6m=1* 10^ 9k=1 * 10^12 次。
有挖矿经验的朋友会发现比特币挖矿需要运气吗,矿机本地显示的算力和矿池本地显示的算力总是存在差异的。这是因为矿机本地显示的算力是矿机的验证哈希。速度只与矿机的性能有关。无论是否找到满足挖矿任务要求的随机数,矿机的本地算力始终存在。矿工在矿池中拥有不同的计算能力。矿池根据矿机提交的实际挖矿结果计算。如果矿机运气不好,长时间没有找到满足挖矿任务要求的随机数,则无法将挖矿结果提交给矿池,会降低矿机在挖矿中的算力游泳池。
但是,随着时间的推移,运气对矿工的挖矿任务的影响会越来越小。长期以来,矿池的平均算力与矿机相差不大