在聊到区块链里区块的大小这个问题时, 大多数人脑子中蹦出来的第一个念头, 就是去纠结那个所谓的1MB到底够不够用。可是, 要想真正把这事儿搞明白, 你非得把思绪拉回到设计者在最开始时候所面临的那些具体限制条件上去不可。这是因为节点必须有能力去下载区块, 并且还能够对区块内容进行验证工作。
再者说来, 网络的带宽情况也非常重要, 它绝对不应该让那些性能不太好的小机器被卡住, 跑不动程序。最后一条限制则是出块时间不能被拖得太长, 因为一旦时间太慢, 就会导致大量的交易信息根本没有办法塞进去。这三个条件捆在一起, 使得区块大小变成了一个不是可以随意进行更改的数字。
区块大小调大真的能提速吗
把1MB的比特币调整到100MB, 表面上看吞吐量翻了一百倍, 但真正的问题出现了, 全球节点都得跟着存储100MB的区块数据。
那些家用宽带正好跑满网络的人, 情况还算不错, 可是偏远地区节点用4G同步数据的情况就会让直接把链给挤断的事发生。所谓去中心化就这样被打破的结果就是显而易见的了, 这条链会变成只有那些拥有大型矿场设备的人才能够跟得上的东西这一局面。
以太坊在之后的时间点, 把gas limit这个数值大概慢慢调到了30M上下, 这算是走出了一条中间路线。
再继续往上走的话, 自从出现了EIP-1559, 社区里的很多人就变得更加倾向于使用L2分片方案, 而不是继续把主链的区块撑得更大。这条道路实际上已经走到了尽头, 如果要继续调大图中的数值, 那么带来的收益就会越来越明显地减少。
区块大小和手续费有什么关系
当区块已经装满了, 那么那些多出来的交易就会排起队来等待进入下一个区块。由于验证者选择先打包包含更高手续费的交易, 所以网络拥堵的情况会直接推动gas价格的上升。在2021年NFT热潮到来的时候, 以太坊单笔转账的gas费用飙升到了几百刀, 其根本原因就是区块的大小无法容纳下这些交易内容。
反过来看, 当区块的大小处于较大的状态, 而其中包含的交易却显得非常稀少的时候,相关的交易费用就会被压到很低的水平。

由此可以得出结论, 区块大小的设定实际上构成了整一套价格定价机制的基础性部分, 它并不是一个孤立存在且与其他因素毫无关联的参数, 因此只要对它产生任何微小的变动影响, 就会引发整个系统中其他相关部位的连锁反应。
下次在看到关于“某某链区块多大”这样的参数表格的时候, 请一定不要把目光仅仅只锁定在那些数字上面, 需要认识到这背后其实是带宽、出块时间以及去中心化程度这三项因素在进行着反复的拉扯与博弈, 这里并不存在所谓的绝对最优解, 往往只能找到最为合适的妥协方案。
