目标哈希的定义
目标散列是散列的块头必须小于或等于为了授予新块而必须小于或等于的数字。 目标散列用于确定输入的难度,并且可以进行调整以确保有效地处理块。
分解目标哈希
加密货币依赖于使用包含交易历史记录并“散列”或编码为一系列数字和字母的区块链。 散列涉及获取任意长度的数据字符串,并通过算法运行它以产生固定长度的输出。 不管输入大小是多少,输出将始终是相同的长度。 哈希的使用意味着与区块链打交道的任何人都必须记住哈希,而不是输入本身。 每个块将包含前一个块头的哈希。
对区块链进行解码和编码称为挖掘。 挖掘涉及使用计算机运行哈希算法来处理最新的块,挖掘所需的信息可在块的标题中找到。 加密货币网络为此哈希设置了目标值,即目标哈希值,矿工试图通过测试所有可能的值来确定该值是什么。
块头包含块版本号,时间戳,上一个块中使用的哈希,默克尔根的哈希,nonce和目标哈希。 通过获取块内容的散列,添加数字的随机字符串(随机数)并再次对块进行散列来生成块。 如果哈希满足目标要求,则将该块添加到区块链。 为了猜出随机数而在解决方案中循环称为工作证明,能够找到该值的矿工将被授予区块并以加密货币支付。
比特币的目标哈希是256位数字,可以在该块的标头中找到。 挖掘一个区块需要矿工产生一个值(一个现时值),该值在经过散列后小于或等于比特币网络接受的最新区块中使用的一个值。 此数字介于0-(最小的选项)和256位(最大的选项)之间,但不可能是最大的数字。 由于目标哈希值可能很大,因此矿工可能必须先测试大量值,然后才能成功。 失败的矿工必须等待下一个区块,这导致矿工将找到哈希解决方案比喻为赢得比赛或彩票。
定期调整目标哈希。 用于生成新目标的哈希函数具有旨在使区块链(和加密货币)安全的特定属性。 它是确定性的,意味着每次使用相同的输入时,它将产生相同的结果。 它足够快,以至于不需要花费太长时间就可以为输入返回哈希值。 这也使确定输入变得非常困难,尤其是对于较大的数字,并且对输入进行较小的更改会导致哈希输出非常不同。