GitHub
深入技术
目标值

目标值

目标值是一个数字, 矿工挖矿时对区块头数据进行哈希运算的结果必须低于该数字, 才能将区块添加到区块链上。

调整

初始目标值是:

0x00000000FFFF0000000000000000000000000000000000000000000000000000

之后每 2016 个区块(大约两周)进行调整, 以确保平均每 10 分钟挖掘一个区块。

新目标值 = 旧目标值 * (实际时间 / 期望时间)

  • 实际时间: 2016 个区块的时间间隔(区块的时间戳 - 前一个区块的时间戳)总和
  • 期望时间: 2016 * 10 分钟 = 1209600秒

若实际时间大于期望时间, 说明出块的速度慢, 实际时间除以期望时间结果会大于1, 新目标值会增大, 意味着挖矿难度降低。

新目标值相对于旧目标值存在一个上下限, 这个上下限在旧目标值的 0.25 到 4 倍之间, 也就是说本次调整的新目标值最大只能是旧目标值的 4 倍, 最小只能是旧目标值的 0.25 倍, 目的是防止从一个目标到下一个目标的过大调整。

难度值

目标值是矿工用于计算区块哈希值必须要低于的值, 无法直观的表示挖矿的难度。为了更好的表达挖矿的难度, 比特币网络引入了难度值的概念。难度值是相对于比特币网络最初难度的倍数

目标值和难度值之间的关系是:

difficulty = difficulty_1_target / current_target

其中 difficulty_1_target 是难度为 1 时的目标值, 是比特币网络的创世区块的目标值, 即最大的目标值:

difficulty_1_target = 0x00000000FFFF0000000000000000000000000000000000000000000000000000

相关RPC

获取当前的难度值
返回值
名称类型描述
nnumber当前难度值
Copyright © 2024 HeapUp