主页 > imtoken钱包安全性 > 比特币多久调整一次难度(比特币难度调整时间)

比特币多久调整一次难度(比特币难度调整时间)

imtoken钱包安全性 2023-12-02 05:11:16

自学区块链(六)BTC-挖矿难度

来看看挖矿的计算公式

H(block header) target,这个target就是目标阈值

BTC使用的哈希算法是SHA-256,它产生的哈希值是256位,所以有2^256个值。 这是它的输出空间。 为了增加挖矿的难度,调整目标值在这个输出空间的分数。

挖矿难度与目标阈值成反比。 当计算能力强时,调整难度,使目标阈值变小。

如果不调整难度,随着矿工数量的增加和算力的提升,挖一个区块的时间会从10分钟缩短到1分钟甚至几秒。 这会带来什么样的问题? ? 很多人可能觉得这样不太好,交易等待六次确认的时间会缩短,交易会更快。 事实上,出块时间缩短到很短的时间,风险很高。 由于网络延迟,区块生成时间缩短,不同节点很可能收到不同的区块信息,导致分叉节点较多。 矿工会根据自己认为正确的区块继续挖矿。 在这种情况下比特币难度多久调整一次,恶意节点更容易发起分叉攻击,因为诚实节点的算力是分散的。

这样一来,它不需要51%的算力就可以成功,所以缩短出块时间不利于BTC系统的稳定。 虽然10分钟不一定是最佳时间,但也算合理。

下面是算力增长曲线

下面是挖矿难度曲线

以下是平均挖矿时间

我们来看看难度公式:挖矿难度每2016个区块调整一次,平均每两周调整一次,每10分钟调整一次。

previous_difficulty为上次挖矿难度,分母为最后2016个区块耗时

每个节点的挖矿都是独立的,BTC协议也是开源的。 会不会有矿工不修改挖矿难度? 可能性存在,但不影响结果,因为广播给其他节点需要独立验证区块头的哈希值。 这个header中有难度压缩码,修改难度的结果不会被诚实节点识别。

比特币的难度是什么_比特币难度多久调整一次_比特币难度值

比特币多久调整难度(比特币难度调整时间)-第1张图片

比特币挖矿难度和算力有什么关系

2009 年 1 月 3 日,中本聪在位于芬兰赫尔辛基的一台小型服务器上挖出了第一个比特币区块,并获得了 50 个比特币的奖励。 这标志着加密数字货币时代的到来。

创世区块是区块链技术中的第一个区块,它是区块链中一个非常独特的环节,因为它是第一个区块——整个数字基础设施中唯一与前一个区块无关的区块。 连接块。

比特币最早的挖矿难度只有1hash,用最弱的消费级CPU都可以挖到比特币,有很大机会赚到比特币。

在接下来的几年里,随着交易所的建立,比特币持有者之间的交易活动变得更有组织。 挖矿难度大幅增加,对处理器的要求越来越高,后期升级到图形处理器。 2013 年,专用 ASIC 挖矿硬件开始出现,甚至超过了最强大的 GPU。

到 2013 年底,比特币挖矿难度首次达到 1 Giga hash。 这是挖创世块难度的1000*1000*1000倍。 之后,比特币的挖矿难度增加了数千倍。

挖矿难度是一个动态参数集,以确保平均每 10 分钟产生新的比特币区块的生成速率。

每挖出 2016 个区块都会进行一次调整。 调整以之前2016个区块的出块时间为准。 如果上一个周期的平均出块时间小于10分钟,则增加难度,如果大于10分钟,则降低难度。 难度,目的是保证系统稳定每10分钟出块,所以难度调整时间约为2周(2016*10分钟)。

比特币挖矿就像猜数字。 矿工需要找一个随机数(Nonce)参与哈希运算1Hash(Block+Nonce),使得区块的哈希值满足难度要求。 计算能力是指计算机每秒可以进行哈希运算的次数,也称为哈希率(hashrate)。 一台矿机每秒能进行多少次hash碰撞,是其“算力”的代表,单位写为hash/s或H/s。

算力单位:

1 千赫/秒 = 1000 小时/秒

1 兆赫/秒 = 1000 千赫/秒

比特币难度值_比特币的难度是什么_比特币难度多久调整一次

1 兆赫/秒 = 1000 兆赫/秒

1 TH/s = 1000 GH/s

1 酸碱度/秒 = 1000 泰铢/秒

1 EH/秒 = 1000 PH/秒

全网算力为btc网络中所有参与竞争挖矿的矿机算力总和。 当前难度周期全网算力的高低,将影响下一个周期的难度调整。 如果全网算力增加,挖矿难度增加,单个矿机在固定时间的产量会下降。

那么,以目前全网的算力,下一个周期的难度会如何调整呢?

根据公式:

难度*2^32/全网算力=出块时间

出块时间应该稳定在10分钟,也就是600s:

难度 = 600 * 24.42 * 10^18 / 2^32

= 3.46e+12

那么,在3.46e+12的难度下,算力为14TH/s的矿机平均需要多长时间才能出块呢?

根据公式:

比特币的难度是什么_比特币难度值_比特币难度多久调整一次

难度*2^32/算力=出块时间

有:

3.46 * 10^12 * 2^32 / 14 * 10^12

= 1.06e+9 秒

结果大约是 12270 天。

最初,中本聪设计了一个公平的、完全去中心化的数字货币系统,每个人都可以使用个人电脑进行挖矿。 但是在盈利的时候,不断有大量新的算力加入,矿工之间的竞争激烈,以至于单个矿工的挖矿成功率几乎为零。

2011年开始出现矿池,大量矿工加入矿池稳定收益,摊薄成本。 大量算力的融合,使得比特币的挖矿难度越来越大。 数字货币挖矿行业就像一场军事竞赛。 挖矿设备不断更新迭代,不再遵循摩尔定律。

比特币增加难度的频率

比特币每产生2026个数据块(每个数据块包含约25个比特币)更新一次计算难度,今天或明天更新一次。

越往前,计算一个数据块的时间越长,计算难度的更新频率越低。

什么是比特币挖矿难度? 如何调整? 原理是什么?

比特币挖矿难度(Difficulty)是衡量挖矿难度的指标。 挖矿难度越大,越难挖出区块。 目标值(Target)与挖矿难度成反比。 难度越高,目标值越小。 难度目标是通过目标值转换得到的,它是一个只有4个字节的字段(为了便于理解,本文将难度目标视为目标值)。 比特币系统通过调整区块头中的难度目标来控制挖出一个区块所需的平均时间。

目标值是一个长度为 256 位的字符串。 换句话说,目标值有大约 2^256 个可能值。 调整难度目标就是调整目标值在整个输出空间中的比例。

比特币难度值_比特币的难度是什么_比特币难度多久调整一次

例如:采矿就像射击,所有发射的子弹都会落在一个大目标上。 难度目标就是在这个大目标上圈出一个范围。 射程越小,就越难射中。 调整难度目标就是调整这个圆在整个目标上的比例。

挖矿算力增加的越多,单位时间内的射击次数就越多,目标范围内的射击时间就越短。 反之,算力越小,达到目标范围所需的时间就越长。 比特币系统追求的平均出块时间为10分钟。 这时候就需要调整难度目标来实现。

02 如何调整难度目标?

比特币系统如何调整难度目标? 在《白话区块链入门080 | 数比特币,了解比特币必须知道这10个数字》一文中,我们介绍了比特币系统每2016个区块(约14天)会自动调整一次。 难度目标。 对于所有高度为2016整数倍的区块,系统会自动调整难度目标。 如果在之前的难度目标调整周期(即之前的2016个区块)中,平均出块时间大于10分钟,说明挖矿难度高,需要降低挖矿难度,增加出块时间difficulty target(准确的说是目标值); 反之,上次难度目标调整期平均出块时间不足10分钟,说明挖矿难度较低,需要降低难度目标。

03 难度目标可调范围

根据比特币系统设置,难度目标增减幅度有4倍的上限。 例如:假设上一个难度目标调整周期的2016个区块因为算力激增仅用了7天就全部挖完,通过难度目标调整将难度目标翻倍比特币难度多久调整一次,平均出块时间可以是缩短。 维持在10分钟左右,但如果算力飙升,只需要一天时间就可以挖完2016年的第一个区块,那么最低难度目标只能调整到原来的四分之一。

04 总结

比特币的算力是不断波动的,比特币系统通过难度目标的调整维持平均10分钟左右的出块时间。 难度目标与挖矿难度成反比,挖矿难度越大,难度目标越小。 当区块高度为2016的整数倍时,比特币系统会自动调整区块上的难度目标。 如果上一次难度目标调整周期平均出块时间超过10分钟,则降低挖矿难度,提高难度目标; 否则,增加挖矿难度,降低难度目标。 难度目标可以放大和缩小的程度有 4 倍的限制。

比特币每2016个区块(约14天)调整一次挖矿难度,与BCH每区块调整一次(约10分钟)相比有明显滞后。 您认为哪种调整方式更合理? 为什么? 欢迎在留言区分享你的看法。

比特币挖矿难度和算力

难度是衡量挖矿难度的指标,即计算出满足给定目标的 HASH 值的难度。

难度 = difficulty_1_target / current_target

difficulty_1_target长度为256位,前32位为0,后面全为1,一般显示为一个HASH值:0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,difficulty_1_target表示btc网络的初始目标HASH。 current_target为当前区块的目标HASH,先压缩后存入区块。 在区块建立之前,区块的 HASH 值必须小于给定的目标 HASH。

比特币难度值_比特币的难度是什么_比特币难度多久调整一次

例如:若区块存储的压缩目标HASH为0x1b0404cb,则未压缩的16进制HASH为

因此,当目标HASH为0x1b0404cb时,难度为:

比特币挖矿的过程其实就是通过随机哈希碰撞找到一个解nonce,使得区块哈希小于目标HASH值。 而一台矿机每秒能进行多少次hash碰撞,就是其“算力”的代表,单位写为hash/s或H/s

算力单位:

比特币系统的难度是动态调整的。 每 2016 个区块将进行一次调整。 调整以之前2016个区块的出块时间为准。 如果难度大于10分钟,难度就会降低。 目的是保证系统稳定,每10分钟出一个块,所以难度调整时间约为2周(2016 * 10分钟)

全网算力为btc网络中所有参与竞争挖矿的矿机算力总和。 当前难度周期全网算力的高低,将影响下一个周期的难度调整。 如果全网算力增加,挖矿难度增加,单个矿机在固定时间的产量会下降。 目前全网算力约为24.42EH/s,一台蚂蚁S9矿机算力约为14TH/s

那么,以目前全网的算力,下一个周期的难度会如何调整呢?

根据公式:

因为出块时间应该稳定在10分钟,也就是600s:

那么,在3.46e+12的难度下,14TH/s算力的矿机平均出块需要多长时间?

根据公式:

有:

结果大约是12270天

以上文章内容是Max Finance整理的关于比特币难度调整需要多长时间和比特币难度调整时间的相关解答。 希望对您有所帮助; 如果您想了解更多财经资讯,记得收藏并关注本站哦。