主页 > imtoken苹果版官网下载 > 比特币如何保持平均每 10 分钟一个区块?

比特币如何保持平均每 10 分钟一个区块?

imtoken苹果版官网下载 2023-08-25 05:09:57

此前,有读者阅读《白话区块链入门038 | 比特币矿工一天赚多少钱?》 》留言区提问: 1、谁先找到问题的答案,谁就获得本次的记账权。 比特币系统的问题是什么?

2.随着全网算力的提升,问题的难度系数也随之增加。 这是如何实现的?

640.webp

对于第一个问题,白话区块链曾在《一个经典故事,让你3分钟看懂比特币挖矿》一文中给出了解释:

比特币系统给矿工带来的问题是让矿工找到符合要求的随机数。 矿工构建区块并确定区块头中的其他 5 个字段。 另一个需要不断试错的变量是随机数。 只有符合要求的随机数才能召唤出“神龙”。 满足要求是指:取整个区块头的哈希值,使哈希值小于或等于难度目标(准确的说是小于目标值Target)。

今天我们主要回答第二个问题:比特币系统的挖矿难度目标是什么,又是如何调整的?

01

什么是难度目标?

难度目标是比特币系统中的一个参数,它调节挖出一个区块所需的平均时间。 它是区块头中的六个字段之一。

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

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

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

640.webp (1)

挖矿算力增加的越多,单位时间内的射击次数就越多,目标范围内的射击时间就越短。 反之,算力越小,达到目标范围所需的时间就越长。 比特币系统追求的平均出块时间为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分钟)相比有明显滞后。 您认为哪种调整方式更合理? 为什么? 欢迎在留言区分享你的看法。

- 结尾 -

『免责声明:本系列内容仅为区块链科普介绍,不构成任何投资建议或建议。 如有错误或遗漏,请留言指出。 』

作者| 严文纯

出品 | 白话区块链(ID:hellobtc)