区块链信息越来越大怎么办?一个看似简单的扩容技术问题

安装过数字货币钱包的小伙伴都很烦恼的一件事情是:分区的硬盘空间不够了。

明明给某盘都分了一百多G的空间,就安装了一个比特币钱包或者安装了一个以太币的钱包,还没都同步完就已经提示需要清理硬盘空间了。

区块链信息越来越大怎么办?一个看似简单的扩容技术问题

每月块大小之和 单位: MB

上图是比特币区块大小的统计数据,可以看出最新的2017/01月份区块大小增长至5300MB , 一个月就已经有5G之多,而且从2013年开始一直是持续增长的趋势,主要和比特币的火热程度, 持续高涨的区块交易量不无关系。

区块链信息越来越大怎么办?一个看似简单的扩容技术问题

那这里面都包含了些什么呢?按照这个增长有没有什么解决方案呢?

要了解这些,我们先来了解下比特链的基本结构

区块链信息越来越大怎么办?一个看似简单的扩容技术问题

依照比特币而言,比特币的链维持主要是由N个区块组合而成,目前为止比特最新出块高度为506380,依然是大概十分钟出一个块的速度在增长。

上图中每个区块包含区块头和区块体两部分组成,区块头的大小是固定的80个字节,而区块体主要是包含交易详信息,区块交易数据大致包含:4个字节的版本号信息,1-9个字节的输入交易的长度;输入交易的数组,每个输入长度大约等于41字节,1-9个字节的输出地址长度,输出地址数组,每个输出长度大于等于9字节,还有交易时间戳。

根据交易的输入和输出可以分为产量交易、合成地址交易、通用地址交易。

每个块都会有对应的产量交易,产量交易就是区块挖矿的奖励交易,是凭空产生的,没有输入方;合成地址交易是指多重加密交易,是指使用多个公私钥对一起合成生成一个地址,目前并不是多见;通用地址交易则是常见的交易类型,有明确的输入、输出方。

但是每个区块体的大小并不是一定的,那是不是说可以无限制大小呢?

其实并不是的,区块大小是以字节为单位,目前比特币网络节点只能识别区块大小于等于100字节的区块,也就是小于1M的大小容量。

具体也不知道为什么中本聪先生把区块大小定义在这个容量,也许没想到会如此火热吧。

如此的限制了每个区块的大小,由于比特用户越来越多,交易数不断攀升,1M的容量差不多被撑满,开始了拥堵情况。

也许是为了防止无意义的交易的粉尘攻击来限制;也许是因为针对网络来说1M的速度还是比较容易接受和普及;也许是为了保障区块验证速度,如果区块太大那区块打包验证的时间势必也会对应增加。

由于区块容量的限制问题,导致这几年扩容之争愈演愈烈,其实不止比特币一直为扩容之事争论不休,其他的区块链如以太坊也面临同样问题,而且以太链的增长速度比比特链快的不只是一个级别,应该是以太坊宁静阶段必须解决的问题。

区块链信息越来越大怎么办?一个看似简单的扩容技术问题

比特币在2010年抛出扩容问题后,也提出诸多方案:侧链、隔离见证、闪电网络、硬分叉等,方案基本上围绕几种思路:保持现有上限不变,通过其他方式绕开限制;直接扩容至某个上限如2M的隔离见证SegWit2x方案;还有一些逐步扩容的方案。

区块的存储方式也是区块链共识的一部分,如果修改容量则肯定会引发共识的机制重新定义确认,所以扩容问题依然是还一个漫长的过程。

发展至今经历了隔离见证的激活和取消,也有激进的UAHF硬分叉后新币种BCC/BCH 比特超级现金

比特币分叉后的结果更加导致了在区块扩容上的对峙激烈情况,BTC链上依然还是保持在1M的容量上,而且新链BCC维持在8M上限。

相关推荐