zoukankan      html  css  js  c++  java
  • 比特币中难度调整

      由于哈希值的伪随机特性,要寻找4个前导0的哈希值,预期大概要进行216 次尝试,这个数学期望的计算次数,就是所要求的“工作量”。要求的前导0的个数越多,代表难度越大。
      难度值是比特币系统中的结点在生成区块时的重要参考指标,它决定了节点大约需要经过多少次哈希运算才能产生一个合法的区块。
      难度值被设定在无论节点计算能力如何,新区块产生速率都保持在每10分钟一个。
      难度的调整是在每个完整节点中独立自动发生的。每2016个区块,所有节点都会按统一的公式自动调整难度。
      根据实际时长与期望时长的比值,进行相应调整。
      公式总结如下:
    [新难度值= 旧难度值 imes frac{过去2016个区块花费时长}{20160分钟}]
      其中20160分钟是两周的分钟数,即平均约两周时间调整一次难度值。
      工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)的计算公式如下:
    [目标值 = frac{最大目标值}{难度值}]
      其中最大目标值为一个恒定值。目标值的大小与难度值成反比。比特币工作量证明的达成就是矿工计算出来的区块哈希值必须小于目标值。

    [一个block产生的产生时间 = 难度值 imes frac{2^{32}}{hashrate}]
      hashrate是每秒运算的hash值数量。
    例如:
      今天的难度值 = 19339258
      hashrate=1G/s
    那么,
    [一个block产生的产生时间(秒为单位) = 19339258 imes frac{2^{32}}{10^9} = 83061481.8 秒]
    [一个block产生的时间(小时为单位)= frac{83061481.8089}{60*60}= 23072.6338358 小时]
      也就是说按照今天的难度值在1G/s的运算能力下,23072.6个小时才能产生一个数据区块,即12.5个比特币。

  • 相关阅读:
    博客
    Windows Live Writer
    VirtualBox
    Linux dd
    Nginx与tomcat组合的简单使用
    压力测试之badboy和Jmeter的简单使用方法
    WebGIS中基于控制点库进行SHP数据坐标转换的一种查询优化策略
    浅谈利用SQLite存储离散瓦片的思路和实现方法
    常见ArcGIS操作(以10.0为例)
    (二十一)WebGIS中鹰眼的实现思路
  • 原文地址:https://www.cnblogs.com/yangjiannr/p/nbits.html
Copyright © 2011-2022 走看看