挖矿难度如何计算(挖矿难度计算方法)

huobi管理324分钟前

挖矿难度计算

动态调整挖矿难度 Difficulty

为什么算力会变化呢?这和比特币协议设计有关。中本聪设计比特币时,加入挖矿难度调整机制是为了使得比特币出块时间能理想的恒定在 10 分钟左右。比特币协议规定每隔 2016 个区块,将根据过去最近 2016 个区块出块总时间调整,自动调整下一个 2016 个区块的挖矿难度。理想情况下 2016 个块需要两周(2016*10s)时间,如果实际用时不到两周则增加难度,如果超过两周就降低难度。

原本中本聪设计的是一个公平的完全去中心化的一个数字货币系统,每个人都可以使用个人电脑进行挖矿。然而,有利可图时大量新算力不断加入,矿工竞争激烈,使得单个矿工的挖矿成功率几乎为零。2011 年起矿池出现,大量矿工纷纷加入矿池,以稳定收入,摊薄成本。大量算力融入,使得比特币挖矿难度越来越大。数字货币挖矿业形同军事竞备,挖矿设备不断更新迭代,不再遵循摩尔定律。专业矿机专门针对哈希算法、散热、耗能进行优化,这脱离了比特币网络节点运行在成千上万的普通计算中并公平参与挖矿的初衷。矿池的算力占据,也使得比特币风险一直存在:51% 算力攻击。



挖矿难度计算公式

需要多少算力才能找出一个随机数,由当前区块的挖矿难度决定,难度越大所需算力越多。但挖矿难度并不在区块信息中,只在网络节点中依据规则动态计算,公式如下:D=T1 /T

T字母是 Target 的缩写,D字母是 DiFFiculty 缩写。 T1 和 T 均是一个 256 位的大数字 (bignumber),其中 T1 为一个非常大的常数2 256?32?1。依据公式,T越小,挖矿难度 D 越大。

依据公式,当 T=0

时,D 无穷大,标志着无法计算出结果。幸运的是, T 不会为 0,最小值为 1,此时难度值最大,为 2256?32?1=2224?1。当 T=T1

时,难度值为最小值 1。

目标值 Target 与挖矿难度转换

为了方便人类直观估算难度,比特币协议将大数字 T

压缩为一个浮点数记录在区块头中,字段为 bits。

如果一个区块目标值是 0x1b0404cb,则转化成 Target 值为:0x0404cb×256(0x1b?3)。

T 使用类浮点数的一种压缩表示法 4 进行压缩,压缩计算过程如下:

  1. 将数字转换为 256 进制。

  2. 如果第一位数字大于 127 (0x7f),则前面添加 0。

  3. 压缩结果中的第一位存放该 256 进制数的位数。

  4. 后面三个数存放该 256 进制数的前三位,如果不足三位,从后补零。

上一篇:哪些山寨币会归零(99%的数字币即将归零)

下一篇:投资比特币有风险吗(投资Bitcoin攻略)

网友评论