Bitcoin XT的扩容实施方案及其影响
时间:2015-08-19 来源:巴比特 作者:我看比特币
BITCOIN XT版本由加文·安德烈森(Gavin Andresen)和迈克·赫恩(MikeHearn)推出, 旨在解决1M区块容量过小的问题,但由于另外三个比特币核心开发人员未同意,许多比特币企业也未明确同意,因而前途未知。 1、BITCOIN XT的扩容方案 从2016-01-11 00:00:00 UTC开始,起始区块上限是8M。 随着时间变化,区块上限逐渐提高,计算公式如下: time_start = 1452470400 //起始时间,即2016-01-11 00:00:00 UTC time_double = 60*60*24*365*2 //两年时间 size_start = 8000000 //起始区块上限8M 如果区块时间大于2036-01-0600:00:00 UTC,则返回size_start* 2 ^10 = 8192M,即最大区块上限为8192M。 如果区块时间在2016-01-11 00:00:00 UTC和2036-01-0600:00:00 UTC之间,则按照以下公式计算区块上限: 区块与起始时间的时间间隔(秒)time_delta = block_timestamp – time_start 区块与起始时间相差整数个两年doublings = time_delta / time_double 区块与起始时间相差整数个两年时的区块上限doublings_size= size_start * 2^doublings 区块与起始时间在两年内的相差时间(秒)remainder = time_delta % time_double 区块与起始时间在两年内区块应该增长的容量interpolate = (size_start * 2^doublings * remainder) / time_double 区块上限max_size = doublings_size + interpolate 以上公式合起来如下所示: max_size = size_start * 2^((block_timestamp - time_start) / time_double) * ( 1+ ((block_timestamp - time_start) % time_double)/time_double) 计算结果: (1)从2016-01-11 00:00:00 UTC开始,起始区块上限是8M。 (2)每过两年区块上限加倍,如2018年1月11日,区块上限是16M;2020年1月11日,区块上限是32。 (3)到2036-01-0600:00:00 UTC最大区块上限是8192M,之后不变。 2、BITCOIN XT扩容方案的实施方式 矿池如果采用BitcoinXT节点,挖到的区块采用新版本号,以此告诉比特币网络的其他矿工,你已经支持XT。 当最近的1000个区块中有多于750区块是新版本号的区块,就达到扩容条件,留下两周时间作为缓冲,两周后开始生成大于1MB的区块,生成大区块时间不早于2016-01-11 00:00:00 UTC,即如果达到75%新区块且两周后还未到2016-01-11 00:00:00 UTC,则也要推迟到2016-01-11 00:00:00 UTC再生成大区块。 如果到2016-01-11 00:00:00 UTC还未达到75%,则继续等待; 如果永远达不到75%,则永远等待。 产生大于1M的区块后,会遭到Bitcoin Core节点的拒绝,将引起分叉。 3、BITCOIN XT占优后有可能造成的影响 (1)节点将进一步减少,目前有6000个节点,大区块的出现使得维护费用越来越高,企业化维护的可能性越来越大。因而将导致节点中心化,即由几百个比特币企业控制所有节点。 (2)挖矿中心化,大区块的出现使得超级节点(高配置、低延迟、高网速)将大量出现,更有利于传输大区块,更有机会在区块竞争中胜出,因而挖矿成本进一步增加。 (3)大区块攻击,大区块的交易验证和确认时间明显增加,大量消耗节点的计算能力,恶意用户可以构造一些大区块使得许多节点处于繁忙状态,而无暇顾及正常区块。 (4)未花费交易集将显著增加,将占用更多的节点内存。 以上内容见:https://github.com/gavinandresen/bips/blob/blocksize/bip-0101.mediawiki#Specification 文/我看比特币 |