区块链的每个区块,都是用来承载某个时间段内的数据的,每个区块通过时间的先后顺序,使用hash散列值的方式(或者其他方式)将其串连起来,形成了一个完整的分布式数据库,在比特币系统里,这个完整的分布式数据库就是比特币的账本,而里面的每个区块就相当于账本的每一页,hash散列值就相当于账本里的防伪码。
然而,截止目前为止,比特币的区块,仍然还是当初中本聪设计比特币时的区块大小1MB。
这个区块大小1MB看起来好像不大,任何的PC的1MB的空间,几乎可以忽略不计,但你要知道,比特币的每个节点,他都是从比特币第一笔交易开始一直记录到最新的一笔交易,也就是每个节点都拥有一整本自始至今的全网交易账本,而且这个账本还在增加。
这个账本的数据有多大呢?
截止2016年10月份,如果你要安装一个比特币完整节点钱包,同步到最新区块后,总共需要硬盘空间85.6G。
对于一般的个人电脑来说,如果不是比特币爱好者,很难愿意这么浪费硬盘空间。
但这一数据还会继续增长,而且还会加快。
仅仅因为占用硬盘空间太多,如果不做改变,那比特币网络的完整节点将面临数量减少的危机,但我们希望看到的是越来越多,也就是我们希望看到比特币网络节点呈扩展趋势,而不是收缩。
另外,我们在解密区块链(八):区块扩容中提到,当前区块大小为1MB,很快就不够用了,这就面临着必须要扩容的情况,如果不扩容,就会出现比特币交易等待的时间越来越长的现象。
必须要有一种思路来解决这两个问题:硬盘空间占用越来越大和区块太小。
这两个要解决的问题,其实是自相矛盾的,要解决硬盘空间占用过大的问题,常规做法是压缩区块大小,但区块又太小了,必须扩容,怎么解决这样一种局面呢?
这必须要有一种折中方案。
这个折中方案就是:区块扩容到2MB,同时减少交易的数量。
区块扩容到2MB,这个很好理解。而2MB可以解决近期面临的1MB区块不够用的问题,同时又不至于因为区块扩容太快,导致普通节点用户的磁盘空间承受不起。
减少交易的数量,这个应该如何做到呢?
比特币区块链是全球的、分布式的、有限容量的、代价昂贵的系统。每一笔交易的价值含量是不一样的,当块容量不够用时,我们应该保障高价值的交易进块。高价值的交易有意愿有能力支付足够高的网络手续费,从而获得足够高的优先级进块。
随着比特币的繁荣,交易数量会越来越大,有限的块容量会使得低价值的交易(例如发送1分钱)永远无法进块,因为低价值的交易不可能支付高网络手续费。进而网络退化为清算系统,低价值含量交易被赶出,这些交易由第三方记账系统进行代替完成。
在闪电网络出现之前,第三方记账系统主要是链外钱包提供商。用户信任某第三方钱包平台,把比特币存入其中,同一平台用户之间转账仅带来账户余额变更,并不会产生比特币交易。
因此减少交易的答案就是将交易的金额进行分类,比如1万比特币以上的交易才能直接进行比特币的区块链网络直接交易,这一部分我们可以认为是有价值交易由比特币区块链系统直接来处理。
而低价值交易(如1万比特币以下交易)则集中起来到第三方记账系统代替完成,然后集中进入比特币的区块链网络。
这就大大减少了区块承载交易数据的压力。
(未完待续)
领取专属 10元无门槛券
私享最新 技术干货