div#pop_ad { opacity: 0; }
AD
首页 > 数字货币 > 正文

比特币挖矿与算力竞赛

[2021-01-29 20:57:38] 来源: 编辑:wangjia 点击量:
评论 点击收藏
导读: 比特币作为一种特殊的虚拟支付商品,具备跨境支付和天然抗攻击等特征,同时因其去中心化属性需要相关参与者合理公平地进行区块打包以保障比特币网络的正常运转。对等节点以工作量证明机制公平参与算力竞赛,获胜者
比特币作为一种特殊的虚拟支付商品,具备跨境支付和天然抗攻击等特征,同时因其去中心化属性需要相关参与者合理公平地进行区块打包以保障比特币网络的正常运转。对等节点以工作量证明机制公平参与算力竞赛,获胜者得到一定的奖励和记账权,这个过程称之为”挖矿“。

矿工节点

比特币网络遍布全球,有一类节点被称为“矿工节点”,矿工节点不间断地执行挖矿任务以支持系统地运转。矿工节点在比特币网络中具有举足轻重的作用,它承载着比特币的交易确认、支付安全和新币供应等许多功能,假如说没有矿工节点,那比特币网络将不能提供任何服务,系统彻底瘫痪。早期由于参与矿工节点较少,算力还比较小时,只要下载比特币挖矿软件,使用普通电脑便可以成为“矿工节点”而进行挖矿,但是随着比特币网络的飞速发展,普通电脑的算力已经很难难挖到比特币了,而ASIC专业矿机已成为比特币挖矿行业内的主导力量。目前比特币全网算力早就超过了全球最强大的超级计算机。

比特币挖矿与算力竞赛

哈希碰撞
所谓“挖矿”实际上就是指节点在做哈希碰撞的计算,谁第一个计算出正确答案谁就宣布自己胜出,并由它来打包生成区块同时广播给其它节点来验证确认,验证通过后执行下一个区块的打包任务,周而复始地维护着比特币网络的正常交易。这个挖矿过程实际上是执行SHA256哈希函数。哈希函数的输入任意长度的数据,将产生一个长度固定且绝不雷同的结果,可将其视为输入的数字指纹。SHA256函数的结果是256位的,无论输入数据是多少这个长度总是恒定的。对于特定输入,哈希的结果每次都一样,任何实现相同哈希函数的人都可以计算和验证。一个加密哈希函数的主要特征就是不同的输入几乎不可能出现相同的数字指纹,就算输入数据的差异很小其哈希结果也大相径庭。因此相对于随机选择输入,有意地选择输入去生成一个想要的哈希值几乎是不可能的,所以矿工节点只能一次一次地进行试探。比特币网络的哈希挖矿流程如下:

系统给出目标难度值,这个难度值是动态改变的,当挖矿难度太大或太小,系统会在每隔一定区块数后进行调整,这样出块时间可以较为恒定约为10分钟。难度值以16进制表示如下:

0000000000000000000f6376db3a242271f43fd385de7ba68986e517a24b6654

对区块头进行哈希运算,检查该结果是否小于目标难度值,如果满足则挖矿成功,否则对nonce值进行修改加1,重复哈希计算。按当前比特币系统的难度,矿工得试10^15次(10 的15次方)才能找到一个合适的nonce使区块头信息哈希值足够小。

当找到满足条件的nonce值后就可以宣布自己成功挖矿了,这个节点会将区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。当这个新区块验证无误后在网络中扩散时,每个节点都会将它作为新区块加到自身节点的区块链副本中。同时其它矿工节点收到并验证了这个新区块后,它们会放弃之前对构建这个相同高度区块的计算,并立即开始计算区块链中下一个区块的工作。

比特币挖矿与算力竞赛

区块打包
挖矿软件一旦运行起来而成为”矿工”,接收和传播未确认交易是其中一项普通的任务。

当矿工节点接收到未确认交易后会进行一系列的的验证工作以验证交易的合法性,如果发现交易数据包不合法则直接丢弃且不予以传播,否则节点会将这些交易添加到自己的交易池当中,并且持续不断的搜集合法交易加入到交易池中。

矿工节点的交易池中有许多交易了,节点会为每笔交易计算优先级,优先级高的交易将优先进入候选区块中。优先级的表达公式:

优先级 = Sum (交易输入值 * UTXO深度) / 交易总长度

区块中第一笔交易比较特别,称为coinbase交易,它是比特币系统对矿工所做工作的奖励,再加上所有交易的手续费加在一起,地址指向自己的钱包,最新的奖励数量为12.5个比特币,大约每4年减半。

下一步节点将构建区块头,区块头的数据结构如下,节点需要填充这些字段:

版本号:用来跟踪软件或协议的升级

父区块哈希:链中前一个区块(父区块)的哈希值

默克尔树(Merkle)根哈希:这个区块中全部交易构成的merkle树的根

时间戳:以Unix纪元开始到当下秒数记录的区块生成的时刻

难度目标:该区块的工作量证明算法难度目标(如上述一大串的目标值的公式转换)

Nonce值:一个用于工作量证明算法的计数器(通常直接加1)

区块内容由交易数据组成,上限为1M,隔离见证实施后最高可达2M,自此,一个候选区块构建完毕。

比特币挖矿与算力竞赛


如果您对我的文章感兴趣,也可以关注”区块链浪潮“头条号哦,谢谢!

添加新手交流群:币种分析、每日早晚盘分析

添加助理微信,一对一亲自指导:YoYo8abc

查看更多:

为您推荐