首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >包你不知道,究竟如何从架构上保证,区块是匀速生成的?(第71讲)

包你不知道,究竟如何从架构上保证,区块是匀速生成的?(第71讲)

作者头像
架构师之路
发布2025-06-08 18:10:14
发布2025-06-08 18:10:14
840
举报
文章被收录于专栏:架构师之路架构师之路

《架构师之路:架构设计中的100个知识点》

71.比特币-速率控制

之前两篇聊了:

1. 《区块链的本质

2. 《挖矿的本质

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

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

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

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

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

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

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

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

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

如何控制加速和变慢呢?

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

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

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

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

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

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

这个匀速方案,巧妙吗?

知其然,知其所以然。

思路比结论更重要。

==全文完==

思考:

你猜,某网盘,对下载速度进行限制,是怎么做的?

创业了,欢迎围观:

41岁,一个人创业,快1个月了...

感谢大家的支持。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档