什么是目标哈希?
在加密货币挖矿中,目标哈希值是一个数值,只有当区块头经过哈希处理后的值小于或等于该值时,新区块才能被授予挖矿奖励。区块头用于标识区块链中的各个区块。
加密货币挖矿是指通过完成特定工作来获取加密货币作为奖励的过程。这项工作的性质是验证特定加密货币交易的合法性。从这个意义上讲,加密货币矿工本质上是审计员。挖矿时,您可以获得加密货币,而无需投入任何资金。
目标哈希值用于确定输入的难度,并且可以进行调整以确保区块高效处理。例如,目标哈希值用于采用工作量证明(PoW)系统的加密货币(包括比特币)中,以设定当前的挖矿难度。如果某种加密货币使用不同的挖矿系统,则可能不需要目标哈希值。
要点总结
- 在加密货币挖矿中,目标哈希值是一个数值,哈希区块头(用于识别区块链中的各个区块)必须小于或等于该数值,才能将新区块授予矿工。
- 目标哈希值用于采用工作量证明 (PoW) 系统的加密货币,以设定当前的挖矿难度(包括比特币);如果加密货币采用不同的挖矿系统,则可能不需要目标哈希值。
- 比特币网络通过提高或降低目标哈希值来调整挖矿难度,以保持新区块之间平均 10 分钟的间隔。
目标哈希的工作原理
加密货币依赖于区块链,区块链记录了该加密货币的所有交易历史。这些交易经过哈希处理(或加密编码)后,被转换成一系列字母数字字符。哈希处理是指将任意长度的数据字符串输入算法,生成一个固定长度的输出。无论输入数据量大小,输出长度始终相同(尽管哈希值的排列组合数量极其庞大)。每个区块都包含前一个区块头的哈希值。
验证和编码区块链的过程称为挖矿。挖矿需要使用计算机运行哈希算法来处理最新的区块;用户挖矿所需的信息位于区块头中。加密货币网络会为该哈希值设定一个目标值(称为目标哈希值),矿工会尝试所有可能的值来确定这个目标值。
区块头包含区块版本号、时间戳、前一个区块使用的哈希值、默克尔根的哈希值、随机数(nonce)和目标哈希值。区块的生成方式为:首先对区块内容进行哈希运算,然后加上一个随机数字字符串(即随机数),最后再次对区块进行哈希运算。
如果哈希值满足目标要求,则该区块会被添加到区块链中。通过循环尝试各种解决方案来猜测随机数的过程称为工作量证明(PoW),能够找到正确值的矿工将获得该区块以及加密货币奖励。
特殊考虑
比特币目标哈希
比特币使用 SHA-256 哈希算法。该算法生成可验证的随机数,且所需的计算机处理能力是可预测的。
挖出一个区块需要矿工生成一个值(随机数),该值经过哈希运算(加密编码)后,小于或等于比特币网络最近接受的区块中使用的随机数。这个数字介于 0(最小值)和 256 位(最大值)之间,但不太可能达到最大值。
由于目标哈希值可能非常大,矿工可能需要测试大量的数值才能成功。失败的矿工必须等待下一个区块(这就是为什么找到哈希解决方案的矿工被比作赛跑或彩票的赢家)。
目标哈希值会定期调整。用于生成新目标哈希值的哈希函数具有特定的属性,旨在确保区块链(及其加密货币)的安全。此过程是确定性的,这意味着每次使用相同的输入都会产生相同的结果。它的速度足够快,不会花费太长时间返回输入的哈希值。此外,它还使得确定输入变得非常困难,尤其是在输入很大的情况下,并且输入的微小变化都会导致哈希输出发生显著变化。