# 152期【币圈人物】 北大肖臻比特币的挖矿难度 2022 **Published by:** [币同学](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/) **Published on:** 2022-04-17 **URL:** https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/152-2022 ## Content 你好,我是币同学。这是我分享学习的第152天,每天学习进步一点点。 关键词:北大肖臻老师的公开课,关于比特币系统的挖矿难度。 1. 挖矿就是不断调整区块头部的随机数(nonce),头块区块的哈希值小于等于给定的目标阈值(target)。 H(block header)≤target target越小,挖矿难度越大,调整挖矿难度,就是调整目标空间在整个输入空间所占的比例。 比特币使用的SHA256函数,整个输入空间是2的256次方的可能的取值。调整目标阈值的比例,通俗的说,就是哈希值前面有多少个0。 2. 挖矿难度与目标阈值是成反比的,挖矿难度最小就是1。 3. 为什么要调整挖矿难度? 如果不调整挖矿难度,系统里的总算力越来越强,那么出块时间是越来越短。开始是10分钟一个区块,后面可能是1分钟,或者10秒钟出一个区块。 出块时间越来越短,交易的被确认的时间就加快了。 出块时间短,在短时间内可能多个节点同时发布区块,容易出现分叉。分叉越多的话,对于系统的共识没有好处,而且危害系统的安全性。比特币网络,假设大部分节点都是诚实节点,系统算力越强,发动51%的攻击所需要的算力就越大。 4. 比特币协议中规定,每隔2016个区块,要重新调整目标阈值,大概是2个星期调整一次难度。 (2016个区块*10分钟)/(60分钟*24个小时)=14天如果系统中产生最近的2016个区块,实际花费的时间超过了14天。说明平均下来,出块的间隔超过了10分钟,那么挖矿的难度要调低一点,让出块更容易。反之,上调挖矿难度,让出块更难。 实际代码中,上调和下调挖矿难度都是有4倍的限制(挖矿难度不会一次性超过4倍)。 比如说系统中产生最近的2016个区块,花费的时间超过了2个星期的4倍,那么系统也是按8个星期计算,最大就是2个星期的4倍,来调整挖矿难度。【主要是为了避免系统出现意外情况,导致目标阈值特别大。】 相反,实际花费的时间小于2个星期的1/4,那么系统也是按2个星期的1/4计算,最小就是2个星期的1/4,来调整挖矿难度。 5. 全网调整挖矿难度,如果有恶意的节点不调整难度,那发布的区块,诚实的节点是不会认的。 今天就学习到这里,明天见。 ## Publication Information - [币同学](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/): Publication homepage - [All Posts](https://paragraph.com/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@0x4484c3371eb90c8a9092ec8caecb3dfb3038c818): Subscribe to updates