区块链 · 数字资产知识 · 行业资讯
文章库关于本站

交易平台观察

比特币 挖矿具体原理相关术语如何理解

摘要

比特币挖矿是节点构造候选区块并反复计算区块头哈希,以满足网络目标值的过程。本文解释哈希、难度目标、随机数、默克尔根、份额与矿池等术语,并说明它们在出块流程中的关系。

币圈交易所流动性的科技主题配图

挖矿在做什么

比特币挖矿不是把币从某处“挖出来”,而是竞争生成新区块。矿工选择一组待确认交易,构造候选区块,再不断尝试不同区块头数据,使其哈希结果符合网络设定的目标。网络接受符合规则且有效的区块后,它会接入区块链,使既有交易记录更难被改动。

挖矿同时承担两项作用:在没有中心机构的情况下,决定由谁提出下一个区块;并通过工作量证明,让更改历史记录需要重新完成大量计算。计算本身不会验证交易的全部规则,节点仍会独立检查区块和交易是否有效。

交易所币价差的科技主题配图

哈希、目标值与工作量证明

哈希函数把输入数据映射成固定长度的结果。对同一输入,结果确定;改变输入中的任意部分,输出通常会显著不同。挖矿利用的是这种难以预测的特性:矿工无法直接推算出满足条件的输入,只能反复尝试并计算哈希。

数字币交易所成交量的科技主题配图

“目标值”是判断哈希是否合格的门槛。区块头哈希必须小于或等于该目标,区块才符合当前工作量要求。目标越低,能够通过检查的哈希结果越少,平均需要尝试的次数越多。日常所说的挖矿难度,概括了找到合格结果的困难程度;它不是矿机设置的一种固定功率。

“工作量证明”指可由其他节点快速检查、但生成时需要反复计算的结果。节点收到候选区块后,可以重新计算区块头哈希并核对目标值,同时检查区块内容是否有效。哈希达标不代表区块里的交易自动正确。

区块头、随机数与默克尔根

矿机实际反复处理的是区块头,而非每次都重新计算整个区块。区块头包含版本、前一区块哈希、默克尔根、时间、难度目标的编码以及随机数等信息。改变其中可调整的内容,会得到新的哈希尝试。

随机数(nonce)是区块头中用于尝试不同输入的字段。由于该字段空间有限,矿工尝试完可用取值后,还可以改变 coinbase 交易中的额外随机数据,由此改变默克尔根,再继续计算。默克尔根是由区块交易哈希逐层组合得到的摘要;交易集合改变时,它也会随之改变。

区块模板提供构造候选区块所需的信息,例如前一区块、目标参数和可纳入的交易。矿工软件据此整理交易、生成区块头,并把工作分配给专用硬件计算。找到满足网络目标的结果后,软件组装完整区块并广播,其他节点再进行验证。

矿池份额与独立挖矿

独立挖矿由矿工自行构造并提交区块;如果成功,区块奖励和交易费归属按协议及其自身安排处理,但找到区块的间隔可能较长且波动较大。矿池则汇集多个矿工的算力,并按各参与者提交的有效工作量记录贡献,再依据矿池规则分配收入。不同矿池的分配方式可能不同。

矿池通常会给矿工设置一个比网络出块目标更容易达到的门槛。满足矿池门槛、但没有达到网络门槛的结果称为份额(share)。份额用于证明矿工完成了相应工作,并帮助矿池估算贡献;它本身不是新区块,也不等于比特币网络接受了一次出块。偶尔某个份额也会同时满足网络目标,这时矿池可提交对应区块。

常见术语与适用范围

几个容易混淆的概念可以这样区分:哈希是计算结果;目标值是结果必须达到的门槛;难度描述找到合格结果的相对困难程度;nonce 是尝试不同区块头输入的一种字段;份额是矿池用来核算工作的较低门槛证明;区块则是包含交易并通过网络规则验证的数据结构。

区块模板接口与 Stratum 协议是向矿工提供工作信息的不同方式。前者可以提供较完整的候选交易信息;后者通常由矿池向矿工提供构造区块头所需的信息,并通过连接传递工作更新。具体实现会随软件和协议版本而异,理解这些术语时应区分底层共识规则与矿池、矿工软件采用的工作流程。

常见问题是“算力更高是否保证更快挖到区块?”算力增加意味着单位时间内可进行更多次尝试,但单次结果仍不可预测,因此不能保证某个矿工在指定时间内找到区块。另一个问题是“份额能否加入区块链?”通常不能;它主要用于矿池内部核算,只有达到网络目标且区块通过验证的结果,才可能成为新区块。

← 返回全部文章

延伸阅读 · 相关栏目

行业资讯研究与报告政策资料交易平台观察