主页 > 如何下载imtoken > 什么是挖矿难度以及如何计算挖矿难度
什么是挖矿难度以及如何计算挖矿难度
挖矿难度计算挖矿难度Difficulty动态调整
为什么计算能力会发生变化? 这与比特币协议设计有关。 中本聪在设计比特币时,加入了挖矿难度调整机制,使比特币的出块时间理想地恒定在10分钟左右。 比特币协议规定,每2016个区块,会根据过去2016个区块的总时间自动调整下一个2016个区块的挖矿难度。 理想情况下,2016 个区块需要两周(2016*10s)。 如果实际时间少于两周,则增加难度,如果超过两周,则降低难度。
最初怎样加入比特币,中本聪设计了一个公平的、完全去中心化的数字货币系统,每个人都可以使用个人电脑进行挖矿。 但是在盈利的时候,不断有大量新的算力加入,矿工之间的竞争激烈,以至于单个矿工的挖矿成功率几乎为零。 2011年开始出现矿池,大量矿工加入矿池稳定收益,摊薄成本。 大量算力的融合,使得比特币的挖矿难度越来越大。 数字货币挖矿行业就像一场军事竞赛。 挖矿设备不断更新迭代,不再遵循摩尔定律。 专业矿机针对哈希算法、散热、能耗进行了优化,脱离了比特币网络节点运行数千次普通计算,公平参与挖矿的初衷。 矿池占用的算力也让比特币的风险始终存在:51%算力攻击。
挖矿难度计算公式
找到一个随机数需要多少算力取决于当前区块的挖矿难度。 难度越大,需要的计算能力就越大。 但挖矿难度并不包含在区块信息中,只是在网络节点中按照规则动态计算,公式如下:D=T1 /T
字母T是Target的缩写怎样加入比特币,字母D是DiFFiculty的缩写。 T1和T都是一个256位的大数,T1是一个很大的常数2 256−32−1。 根据公式,T越小,挖矿难度D越大。
根据公式,当T=0
当 时,D 为无穷大,即无法计算结果。 好在T不会为0,最小值为1,此时难度值最大,为2256−32−1=2224−1。 当 T=T1
,最小难度值为1。
目标值 目标与挖矿难度换算
为了方便人类直观估计难度,比特币协议将大数T转换为
压缩成浮点数记录在区块头中,字段为bits。
如果一个块的目标值为0x1b0404cb,则转换后的目标值为:0x0404cb×256(0x1b−3)。
T 使用类似浮点数的压缩表示 4 进行压缩。 压缩计算过程如下:
将数字转换为基数 256。
如果第一位大于127(0x7f),则在前面加一个0。
压缩结果中的第一位存储 256 进制数中的位数。
后三位存放256号的前三位,不足三位则从末尾补零。