了解比特币的人都知道,比特币区块大小只有 1M,但是有没有人想过,为什么当初只设定了 1M,而不是 512K,也不是 2M 或者 8M 呢?
初始
其实一开始中本聪就把区块设计成最大可支持 32M 容量,为的就是防止以后单个区块容量不能满足使用,可见其远见!
那为什么后来只当初的上限只设了 1M 呢?
在 2009 年,比特币在刚被创造出来的时候,并没有大功率的矿机来计算挖矿,只能通过普通电脑的 CPU 进行打包,而且当初计算机的 CPU 算力也极其有限。加上使用的用户非常少,所以当时被打包好的区块平均大小在 1~2K 左右。
安全
- 保证全网节点足够多
比特币网络为什么安全且不可篡改呢?
除了有极其多的算力相互制衡之外,那就是比特币的全网节点了,也就是每一个区块。这些区块除了保存每一条交易信息和验证交易之外,还能保障比特币网络的安全。
当时的开发团队就有人认为如果区块设定太大的话,在进行数据打包的过程中,会导致普通计算机 CPU 超负荷计算,加之当时的比特币价格很低,长此以往,不利于更多矿工的加入。
如果区块太大的话,就可能导致普通计算机无法运行全节点,这样的话,全节点就会变得只有少数 CPU 较高的计算机或者专业的矿机才能运行,最后就只会导致算力的中心化,降低矿工的作恶成本,反而会对比特币不利!
加上如果区块过大的话,如果出现 DDoS 攻击,会消耗掉大量的算力,让真正的交易订单无法进行打包处理,造成网络的严重拥堵!
- 电脑验证交易的速度
如果用现在普通的电脑来打包记录一个大小为 1M 的区块,那么从开始验证到结束大约需要 30 秒,但是如果是需要验证一个 2M 的区块,可能就需要高达 10 分钟,这个时间是极其漫长的,因为在这段时间内,黑客可以做很多事情!
理论上来说,黑客可以根据这个延时,对比特币网络进行攻击。为了避免这种攻击,所以在当时最佳的选择就是让每个区块都在 1M 大小左右!