本笔记对应北京大学肖臻老师《区块链技术与应用》公开课第七课。

0.前言

在本节中,肖老师介绍了比特币的挖矿难度的调整算法。

1.定义

在比特币的挖矿算法中,需要找出一个“恰当”的区块头,让区块头的哈希值小于目标值(如下图),才能获得记账权。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X1Em0qjo-1677069663198)(https://gitee.com/yu88888//myimage/raw/master/master/image-20211014200454670.png)]
调整挖矿难度就是调整目标空间在整个输出空间中所占的比例。

2.为什么要调整难度?

因为整个系统中的算力是不断上升的,如果难度不变,那么出块时间就会越来越短,引起大量问题。

比如说,因为出块时间短,遇到了网络延迟,就会导致短时间内很多的节点同时算出了目标值得到了记账权,这样就产生了很多分叉,这对系统的安全性没有好处。

注意: 比特币中10分钟的出块速度也不一定是最优的,也有其他的公链有其他的出块速度,比如以太坊的出块速度为15秒,而它之所以能做到这么快,是因为有Ghost协议。

3.怎么调整难度

  • 时间: 比特币协议规定,每隔2016个区块(大概14天)就会调整一次。
  • 公式
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TOaax3Ht-1677069663199)(https://gitee.com/yu88888//myimage/raw/master/master/image-20211014200435933.png)]
    公式最右边分式的上面表示实际时间,下面表示预期时间。

实际时间为这次调整的时间,距离上次调整的时间的长度。预期时间为2016个区块按照预期规定来说(每两个区块间相隔10分钟),需要花费的长度。

因此,如果这轮调整中,实际时间大于了预期时间,那么就会调低难度,反之,就会调高难度。

肖臻公开课(七)——比特币中的挖矿难度相关推荐

  1. 肖臻公开课(八)——比特币中的挖矿

    本笔记对应北京大学肖臻老师<区块链技术与应用>公开课第八课. 0.前言 在本节中,肖老师首先回顾了一下节点的定义,然后讲了讲挖矿的现有的趋势. 1.全节点和轻节点 以下介绍了一些全节点和轻 ...

  2. 肖臻公开课(六)——比特币中的网络

    本笔记对应北京大学肖臻老师<区块链技术与应用>公开课第六课. 0.前言 在本节课中,肖老师主要讲了比特币的底层网络实现.以计算机网络传统架构来说,比特币网络工作在应用层,底下的网络层是一个 ...

  3. 公开课精华 | 无人驾驶中感知的挑战与尝试

    本文总结于深圳元戎启行公司点云感知方向技术负责人邹晓艺,在深蓝学院的关于无人驾驶中感知的挑战与尝试的公开课演讲内容. 全文约3500字 主讲人邹晓艺来自深圳元戎启行公司,曾在百度IDL和ADU部门工作 ...

  4. 中职计算机专业优质课公开课,如何上中职计算机公开课.pdf

    如何上中职计算机公开课 2011 年第 14 期 中国职业技术教育 教 学 教海拾贝 Chinese Vocational and Technical Education 如何上好中职计算机公开课 梁 ...

  5. [MIT公开课(计算机教育中缺失的一课)]2.Shell工具与脚本

    (该系列文章大部分内容来源于MIT课程笔记,加入了个人的理解.原笔记中没有的细节和其他的需要理解的内容,公开课地址:https://www.bilibili.com/video/BV14E411J7n ...

  6. [MIT公开课(计算机教育中缺失的一课)]10.大杂烩

    (该系列文章大部分内容来源于MIT课程笔记,加入了个人的理解.原笔记中没有的细节和其他的需要理解的内容,公开课地址:https://www.bilibili.com/video/BV14E411J7n ...

  7. [MIT公开课(计算机教育中缺失的一课)]6. 版本控制(git)

    (该系列文章大部分内容来源于MIT课程笔记,加入了个人的理解.原笔记中没有的细节和其他的需要理解的内容,公开课地址:https://www.bilibili.com/video/BV14E411J7n ...

  8. 区块链系列教程之:比特币中的挖矿

    文章目录 简介 比特币的节点构造 挖矿 挖矿节点 创币交易 矿池收入分配 挖矿方向 算力浪费 算力调整 总结 简介 我们知道比特币就是挖矿产生的,那么在比特币网络中,挖矿有什么特点呢?怎么分配挖矿收入 ...

  9. 《区块链技术与应用》北大肖臻老师——课程笔记【6-8】

    <区块链技术与应用>北大肖臻老师--课程笔记[6-8] 一.BTC网络 二.BTC-挖矿难度 三.BTC-挖矿 提示:以下内容只是个人在学习过程中记录的笔记,图片均是肖老师课程的截图,可供 ...

最新文章

  1. UIImageView
  2. 线程在Linux中的实现
  3. JD boto3 flask 上传 demo
  4. Swift语言与Objective-C语言混合编程
  5. 在Linux系统里安装Virtual Box的详细步骤
  6. 磁盘上没有足够的空间完成此操作_【教程】Windows的磁盘分区,两分钟搞定!!...
  7. 图形的装饰教案计算机,《电脑图案设计师》教案教学设计
  8. mysql yum多实例_mysql———基于yum源实现多实例
  9. 树莓派利用PuTTY进行远程登录
  10. Web Hacking 101 中文版 十四、XML 外部实体注入(二)
  11. opencv HOG SVM 二
  12. python json转csv_python – 如何将JSON转换为CSV?
  13. .NET中GC的运行机制
  14. java web编程技术实用教程_Java Web编程技术实用教程
  15. 自考启示,关于不紧急重要到紧急重要的改变
  16. js中的四种常用数组排序方法(冒泡、选择、插入、快排)及sort排序
  17. 基于java的扫雷游戏设计01
  18. SPI Flash芯片W25Q32英文版数据手册解读(二)---------存储器知识,寄存器
  19. 技嘉z68主板驱动下载地址
  20. binary,varbinary,image的区别

热门文章

  1. SPI总线和外设驱动(一)
  2. 《OFFICE高级应用》课程学习网站的设计与实现
  3. 0基础编程学python_编程零基础应当如何开始学习 Python?
  4. 安卓第三夜 概念漫游(上)
  5. 基于Pose Studio 3D建模的花毽动作重现、保存与演示
  6. 设置浏览器全屏展示网站
  7. [正能量系列]女性程序员篇
  8. 关闭windows自带杀毒软件Windows defender命令,命令行关闭windows服务
  9. GitHub 标星 6k,拿这个开源项目做个哄女友神器吧!
  10. 子类调用父类构造方法 java_JAVA子类调用父类构造方法