2019独角兽企业重金招聘Python工程师标准>>>
在比特币扩容之争时,就已经有人提出可以通过缩短出块时间来进行扩容。不过,当时主流的扩容方案是Core开发组提出的隔离验证+闪电网络和大区块党支持的链上扩容。BCH诞生后,缩短出块时间在社区内掀起了一场广泛的讨论,但意见并不统一。根据Votes.cash的投票结果来看,支持缩短出块时间的投票已经达到了总投票的97.3%。这么多人支持缩短出块时间,到底是为了什么?
技术原理
10分钟区块确认时间是中本聪最初的设定,但为什么这么做并没有明确说明,网络上有很多有关于此的研究,但也一直没有定论。目前来看外界的评价都认定设定在10分钟为了降低孤块率,提升安全性。
而用来控制控制十分钟出一个块的机制叫挖矿难度调节机制,这个机制是自动的,根据全网的算力来调节要计算的难度,BTC是每隔2016个区块来调整难度,而BCH则是每隔144个区块调整难度,反应更为迅速,保证全网算力在平均十分钟出一个块。这个时间是指平均十分钟,可能会有少许的上下波动,完全是概率事件。这也是为什么有时会出现1小时都不出块的情况。
事实上关于比特币10分钟区块间隔并非必须的,甚至很多人认为这个设定是比特币诞生以来最大的缺陷。一般来说,比特币的区块间隔时间里,比特币系统主要在干这么几件事:1广播区块;2验证区块;3完成新区块的pow计算。考虑到网络传输时间等问题,1+2一起是不会超过1分钟的,其它90%的时间都用来进行POW计算了。1和2的步骤不可以省略,时间也无法压缩。但3中进行POW运算的时间是可以压缩的,所以严格来说,区块间隔能够保证在1分多钟以上就OK了。这个时间将随着交易扩散技术的提升而进一步缩短。
比如后来的莱特币、狗狗币等,出块时间都在1~2分钟之间,且都没有什么明显的副作用,相反而缩短出块时间却极大提升了交易效率和用户体验。诚然,对于日常消费的用户来说,10分钟的等待确认时间实在太久,造成极差的用户体验。
现状
受制于10分钟出块时间,使得日常支付体验变得极其不顺畅。因为网络延迟和带宽的原因,看似是10分钟,小概率情况下BCH甚至曾经有过1小时没有出块,当然BTC同样存在这个问题。虽然这种情况并不常见,但这种糟糕的用户体验还是使得很多用户心烦意乱,对于用户来说,使用10次如果有2次出现这种糟糕体验,他们就会认为这种交易极低效。
理论上在Avalanche雪崩共识协议开发完成之后,BCH的零确认支付可以达到完美状态,已经可以在不缩短出块时间的情况下满足日常支付。不过交易所的情况并不在范围内,因为交易所都不接受零确认交易。当前币圈,交易所充提是最大的应用之一,这就对缩短出块时间提出了硬需求。而如虫洞协议这样的二层智能合约同样也不适用零确认。
我们再看看莱特币,事实上莱特币诞生之初根本没有什么大的创新,它只是复用了比特币的代码,然后将出块时间设定为2.5分钟,就这么一个简单的改动使之获得了比特币4倍的交易确认速度,这也让莱特币难以拥堵,交易费用更便宜。2017年牛市的时候,比特币 / ETH 双双 堵塞, 很多搬砖客转而使用LTC 进行搬砖,导致 LTC 从之前没啥人用的情况下 TX (链上交易量)暴增。人们使用 LTC 的逻辑很简单,平均2.5分钟出块,大多数交易所一个确认就入账。速度快体验好。
BCH如何降低孤块率?
这么看来缩短出块时间的确是一项硬需求,那应该怎么解决缩短出块时间带来的孤块率上升问题呢?
1. 孤块率和网络硬件基础设计相关,越快的网络,就越能更快地发现同行是否挖到块,从而降低孤块率。自比特币诞生以来10年间,全球网络和存储技术大大提升,按照目前的网络水平同样是10分钟出块,孤块率已经大幅降低。
2.近几年矿业水平极速上升,专业矿机和矿池最大化提升效率,硬件条件以及软件技术比以前有大幅提升,能够在孤块率不变的前提下,缩短出块时间。
3.BCH诞生后社区开发者不断创新,不断优化的技术如预共识、石墨烯极大改善了BCH节点效率,使之孤块率进一步降低。这些都给予缩短出块时间的土壤。
4.参考以太坊的例子,15秒极速出块,造成了孤块率上升的问题,且孤块合法有奖励,但不打包交易信息。但孤块率上升似乎并没有影响ETH的日常使用,ETH交易量一度取代BTC成为第一。
总结
缩短出块时间的确让BCH更具备优势,但实施的具体细则还需开发者继续努力。