打印
分类:极客论道
点击数:10101

比特币的blockchain(区块链)是存储比特币交易数据暨比特币账户余额的空间。每10分钟产生一个区块,每个区块最大100万字节。

以下链接是比特币诞生以来的平均区块大小趋势图:

https://blockchain.info/charts/avg-block-size?timespan=all&showDataPoints=false&daysAverageString=1&show_header=true&scale=0&address=

这幅图清晰显示了一个趋势:虽然2014以来比特币价格持续走熊,但是比特币的交易量在持续上升,于2015年2月初创出了日均0.509M的最高值,目前维持在0.4M附近。

不求甚解的话,觉得区块链只填满了40%。但是细一研究,发现离满不远了。

首先,每个区块的上限是100万字节,不是1M,100万字节大约折合0.95M。

其次,由于手续费收入占挖矿收入比重不高(按满block,0.0001BTC/K计算,每个block的手续费是0.1BTC,只占挖矿收入25BTC的0.4%),所以矿池在收录交易(transaction,tx)时并不是尽最大努力(best effort),甚至是很不努力。

如果大家在美国时段观察(那时交易发送量最大)(可以看www.blockchain.info),可以看到mempool(未确认交易)里面有几千个交易(tx),够装满几个区块(block),但是收录满0.95M(976K)的区块极少。有部分是746K(比特币原始代码里矿机的挖矿上限),还有0.5M的,还有0.2M的,更可恨的是还有0M的,即整个区块没有收录一个交易(当然coinbase在啊)!!这样平均下来,现实的区块的平均最大值只在0.5M左右。距离比特币区块链填满只有一步之遥。

而且,如果眼光放远一些,比特币的交易量是一个持续的上升趋势,早晚会突破1M。

危:

1 区块链满了之后,确认的队列时间加长。实际上现在美国时段需要等3-5个块才会被确认。如果交易数量持续上升,可能排队时间越来越长。本来比特币的10分钟确认时间就饱受诟病,现在好了直接变成1个小时甚至1天。

2 手续费的上涨。队列变长,矿池具有收录特权,他们决定先收哪个,哪个就不用排队。而矿池是利益导向的,自然是哪个手续费高就先收哪个。因而手续费就会开始上涨。手续费上涨会导致交易发送量减少,最终在某个价位实现新的平衡。目前一个交易的最低手续费是1毛5人民币,估计涨个10倍问题不大。这会成为小额交易的重要障碍,阻碍比特币的推广。

3 出现挂死的交易。当手续费上涨后,之前发出的低手续费交易就不可能甚至永远不可能被矿池收录,但是其中的币又不能做他用(否则就是doublespending双花欺诈),就等于永远挂死在mempool里了。这个问题非常严重,截止目前比特币开发团队尚未给出解决方案。重要提醒:从现在起发送交易千万不要省手续费,一定要按照0.0001BTC/K给。

机:

1 比特币区块链填满是一个利好消息,代表比特币的普及度在提升,会吸引更多人参与,促进币价上涨。

2 比特币区块链填满后,由于等待时间变长和手续费增加,将有一些交易转移为使用山寨币,首选是狗币和莱特币,为山寨币赋予了重要的价值,促进币价上涨。

3 此问题的解决方案。

3.1 增大区块链容量,例如增加区块大小,或者缩短区块间隔。无论哪种方法,都会导致比特币硬分叉。而且,截止目前比特币开发团队还未给出具体代码。另外,由于确认交易、区块需要大量的运算,连blockchain.info这样的大型网站一个区块都需要处理3分钟左右,所以增加区块链容量并不是有效的解决方案。

3.2 外部应用降低区块链压力。这方面的应用创新,会大幅增加比特币的易用性,提高推广速度。我们有一个项目已经开发完成,正在内测,先卖个关子。