跳转到正文
buybitcoinsmart

术语表 /挖矿与共识

目标阈值

又称目标值。

目标阈值是什么?
目标阈值是区块头哈希值必须小于或等于的256位数字,该区块才算有效的工作量证明。

挖矿是一种比较,而不是有答案的谜题。矿工对候选区块头进行哈希运算,将32字节的结果读作一个数字,并检查它是否足够小。有效哈希在设计上就很稀少,因此找到一个的唯一办法是不断尝试,而这种反复尝试正是把电力转化为区块链安全性的过程。

运作方式

目标阈值是一个数字的上限,这个数字是80字节区块头的双重 SHA-256哈希值。

节点对区块头进行哈希运算,将结果读作小端序整数,并与从区块头 nBits 字段解码出的目标值比较。目标值越低,可接受的哈希就越少,所需的尝试次数就越多。主网允许的最宽松上限是0x00000000FFFF0000 后接若干个零,对应难度1,大约每42亿9,500万次尝试出现一个有效哈希。将其乘以当前难度,就得到每个区块的预期工作量:按2025年最后一次调整时记录的148.2万亿难度,一个平均区块使整个网络付出约640泽塔哈希的工作量。

有两个细节容易出错。第一,判断条件是“小于或等于”,因此恰好等于目标值的哈希是有效的。第二,人们常指出的区块哈希开头的零只是哈希显示方式造成的现象,并不是规则本身。区块浏览器按相反的字节顺序显示哈希,所以一个很小的数字会表现为左侧的一串零,但共识检查是算术比较,从不统计字符。

规则中还写入了一个硬性上限,称为 powLimit,任何难度重新调整都不能超过它。如果网络中很大一部分算力同时下线,它可以防止阈值无限放宽。

在哪里会遇到它

目标阈值几乎从不以其本来面目显示,因此您会通过以下三种形式遇到它。

区块浏览器将它显示为难度,即允许的最宽松目标值除以当前目标值。挖矿软件在 getblocktemplate 响应中以 target 字段接收它。矿池向其矿机发送的份额目标值有意比全网目标值宽松得多,这样矿机无需先找到真正的区块,就能证明自己在工作。Bitcoin Core 在 CheckProofOfWork 中应用这条规则,用寥寥几行代码解码 nBits,拒绝任何高于 powLimit 或小于等于零的值,然后进行比较。

测试网会有意放宽这一阈值。测试网允许在二十分钟内没有出块之后出现一个最低难度区块,因此测试币很容易挖到,而且毫无价值。

目标阈值 vs 难度

目标阈值是原始限制;难度是对同一事实的易读表述,两者的变化方向相反。难度翻倍时,目标值减半。之所以有难度这一概念,是因为64位的十六进制上限无法一眼比较,而且比值可以跨越多年:2009年1月时难度为1,2025年底为148.2万亿,这说明的变化是两个十六进制字符串无法呈现的。

请勿混淆

常见问题

为什么有效的区块哈希以零开头?

因为区块浏览器按相反的字节顺序显示哈希,所以一个很小的数字看起来像开头的一串零。共识规则是数值性的:读作整数的哈希必须小于或等于目标值。

测试网的目标值与主网相同吗?

不同。测试网使用的目标值宽松得多,测试网甚至允许在二十分钟内没有出块之后出现一个最低难度区块。因此测试网的币用笔记本电脑就能挖到,而且没有价值。

相关术语

挖矿与共识中的更多术语

阅读本页英文版