ITPub博客

首页 > > > 全球如何保证区块生成是匀速的?

全球如何保证区块生成是匀速的?

作者:58沈剑 时间:2019-12-31 11:33:14 0 删除 编辑

《1分钟了解区块链的本质》,介绍了什么是区块链,区块链是一个没有管理员,每个节点都拥有全部数据,高可用的分布式存储系统。

 

《1分钟了解挖矿的本质》,介绍了什么是挖矿,挖矿是在最新区块链的数据上,生成一个符合条件的区块,链入区块链的过程。

 

区块链有个特点:虽然大家都在采矿,但挖到矿的速度是均匀的。以承载比特币的区块链为例,平均每10分钟产出一个区块,这个速度基本是不变的。

 

有朋友就有疑问了,计算能力越来越强,计算节点越来越多,计算区块头hash的速度理论上应该是越来越快的呀。技术上,区块链如何动态调节,以保证匀速生成区块,是今天这一分钟要聊的内容。

画外音:之前不少朋友说文章太长,1分钟读不完,好吧,我错了,这次真的是1分钟。

 

回顾,区块是怎么生成的?

答:对最新的区块头进行两次SHA256计算,得到的256bit哈希结果,高位48bit必须是0x00000000FFFF,才算新区块有效。


可以认为哈希的结果是完全随机的,要得出前48bit必须是0x00000000FFFF的哈希结果,就如同连续抛了48次硬币,每次都得到我们想要的结果,其概率是(1/2)^48,所以概率非常小,生成区块的难度很高。

画外音:区块的生成原理详见《1分钟了解挖矿的本质》。

 

区块如何保证生成速度匀速?

答:假设期望比特币全球区块链每10分钟生成一个区块,需要设定一个动态调节机制,每两周做一次统计:

  • 如果统计结果是,最近两周平均每5分钟就生成了一个区块,说明生成太快了,需要变慢50%

  • 如果统计结果是,最近两周平均每20分钟才生成了一个区块,说明生成太慢了,需要加速一倍

 

如何控制加速和变慢呢?

答:区块链中有一个难度系数,可以调节区块生成的变快与变慢,难度系数影响的是,区块头哈希结果,有多少bit必须与预期相同。


例如,原计划哈希结果高位48bit符合预期,才算挖矿成功,现在改为,49bit符合预期,才算挖矿成功,这样得到预期hash的概率就降低了,挖矿就会变慢。

想反,如果改为,47bit哈希结果符合预期,就算挖矿成功,这样得到预期hash的概率就变高了,挖矿就会变快。

 

总结,如何保证全球匀速挖矿?

  • 需要定期统计,动态加速或减慢生成速度

  • 通过难度系数,影响hash结果多少位必须符合预期,才算合法的区块,来控制速度

 

技术人,聊技术,这个匀速方案,巧妙吗?

一分钟很短,希望这一分钟,大家有收获。


前序文章:

《1分钟了解区块链的本质》

《1分钟了解“挖矿”的本质》

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31556838/viewspace-3136576/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
58速运CTO,互联网架构技术专家,“架构师之路”公众号作者。曾任百度高级工程师,58同城技术委员会主席,高级架构师,58到家技术委员会主席,高级技术总监,目前主要负责58速运技术部。

注册时间:2018-09-30

  • 博文量
    420
  • 访问量
    82609