比特币 (10):怎么控制10分钟出块一次

By | 2018-04-30
16,158 views | 1,447 Comments

阅读本文之前,请先阅读《精通比特币》第8章。

比特币区块中,有一个字段是难度,表示挖出的区块的hash值,要小于的难度值。这个难度值越小,挖出的可能性越低,也就意味着挖出一个合法区块的时间越长。比特币网络正是通过调整这个难度值来控制出块时间的,每挖出2016个区块(按照每10分钟挖出一块的平均速度,也就是20160分钟(两周))调整一次区块。公式为:

New Difficulty = Old Difficulty * (Actual Time of Last 2016 Blocks / 20160 minutes)

这个公式很好理解,但是其中有一个问题值得思考,就是,难度值和时间的具体关系。从这个难度调整公式来说,难度值和时间是线性相关成比例的,否则,比如是平方关系,这个公式就应该是:New Difficulty = Old Difficulty * ((Actual Time of Last 2016 Blocks / 20160 minutes) ^ 2)或者开方。为什么是线性成比例的呢?

追根究底,是因为SHA256算法,从明文到密文的映射,是大致均匀的,密文空间缩小一半,也就是难度值减小一半,也就是难度提高一倍,也就意味着,明文空间缩小一半。明文空间缩小一半,而尝试的空间是大致不变的,那么意味着,需要翻倍的尝试次数,才能落到合法的明文空间上,并且每算力尝试一次,需要的时间是一样的,所以所需的时间需要翻倍。

 

1,447 thoughts on “比特币 (10):怎么控制10分钟出块一次

  1. Matgype

    Zithromax For Diarrhea Generic Provera Legally By Money Order Kamagra Safety Cialis Buy Propranolol Inderal Uk

    Reply
  2. Kelhort

    Buy Effexor Online Canada Cialis Tenerife Compra Viagra Cialis Sildenafil 150 Mg Sublingual Q 10 With Amoxicillin

    Reply
  3. vurtil opmer

    Hey There. I found your blog using msn. This is a very well written article. I will be sure to bookmark it and return to read more of your useful info. Thanks for the post. I’ll definitely comeback.

    Reply

发表评论

电子邮件地址不会被公开。