导 读网络
在比特币运行的早期,中本聪对区块的大小进行了1M的限制和规范。这种限制既保障性能较弱的我的电脑也可以参与,同时也起到了防止攻击者让比特币网络超载的风险发生,毕竟那时候系统还很脆弱。在1M的限制下,10分钟一个区块最多可以容纳2000笔左右的交易,也就是每秒7笔交易,即7tps(交易数/秒)。在2014年以前这个限制对系统彻底没有影响,由于没有那么多人使用比特币。但却为此后比特币的发展埋下了重大的隐患。分布式
做者:昌用性能
早在2010年10月,早期开发者Jeff Garzik考虑到之后1M区块会容纳不下全部交易,提出修改代码,按照每分钟1400笔的目标(即23tps)扩容到7.1M。反对者认为这要求全部的软件必须升级,容易形成混乱。中本聪赞同暂不升级,但提出应该预先作好准备,好比在更新软件时在代码中写入在某个区块高度(也就是某个时间)后,区块限制提升。此后中本聪隐退,开发工做交给了Gavin Andresen牵头。区块链
2015年5月,比特币的平均区块大小达到了400KB,而且在快速增加,Gavin提出应当在2016年3月1日将区块限制扩大到20MB。此后,Jeff Garzik提出BIP100(BIP指比特币改进建议,按提出顺序进行编号)建议75%算力赞成状况下便可进行扩容。Gavin Andresen 和 Mike Hearn提出BIP101,主张先扩到2MB,而后每两年翻倍。测试
此时,挖矿领域中国的几家矿池占据了主要的份额,因为担忧国内网速劣势,区块过大传输慢,会影响挖矿收益。所以联合拒绝Gavin的20M扩容建议,但接受BIP100扩容到8M。[1]优化
此时,比特币的开发由称为Core的核心开发组进行,尽管Gavin仍然是Core的关键成员,但其余多名成员反对改变1M上限,主张加密
经过隔离见证方案(Segwit)优化交易和区块链结构在1M区块限制不变的状况下,扩大交易容量到原来的1.7倍左右;开发
在主链以外,发展第二层支付通道(好比闪电网络、侧链、树链等等)来解决容量不足的问题。部署
此时的Core核心开发组多名成员受雇于Blockstream公司,组内主张扩容的Gavin处于较为鼓励的状态。it
Gavin为了推动扩容,从新组织了一个开发团队,并在开发展、矿池、社区之间进行协调和妥协的方案。2016年2月终于造成一个90%以上算力赞成的状况下从1M扩容到2M的共识。但在Core开发组的坚持下,社区广泛反对Gavin组织的开发团队,而且接受了Core的隔离见证方案。中国矿业与Core在香港达成共识先实施隔离见证,而后硬分叉扩容至2M。这个共识实质上否认了Gavin的主张。在扩容争论的关键时刻,澳大利亚人Craig Wright宣称本身是中本聪,而且获得Gavin的支持。但最终Craig没能拿出充足的证据,被当作冒充中本聪的众多骗子之一。这也使得Gavin名誉扫地,被迫退出了Core开发组。
2016年7月,比特币的1M区块被填满了,更多地交易没法及时计入区块,为了使本身的交易可以更快地计入区块,人们不得不支付更高的交易费“贿赂”矿工优先打包本身的交易。然而,比特币系统的拥堵并未动摇Core坚持1M区块大小的决心,甚至强调,比特币系统原本就不该当是廉价使用的,而应当是全球重要的金融结算网络,普通的支付需求应当交给第二层支付去知足。
2017年加密货币市场快速高涨,用户和交易需求快速增加,比特币系统的拥堵愈来愈严重。在高峰期,积压未能打包确认的交易一度达到20万笔,正常确认所须要的交易费高达300元以上,重要的交易须要额外向矿池支付几百元到几千元不等的“加速费”。这使得比特币支持者没法继续宣扬其快速、价格低廉的支付功能。更严重的是,因为比特币的拥堵,高涨的市场需求快速涌入以太币、莱特币、瑞波币等等竞争币,比特币的市场份额从90%以上迅速跌落到50%如下。
而此时,Core以前承诺的2M扩容并未推动,而隔离见证对比特币系统的改动很大。为此,愈来愈多的人怀疑Core开发组并不打算扩容至2M,一旦隔离见证部署,交易和区块结构改变,扩容会比之前复杂困难不少,从而事实上没法扩容,而且使开发更加依赖于Core开发组。为此,一些比特币企业和我的开始组织或资助新的开发团队脱离Core开发组,开发扩容的比特币软件。
2017年7月,开发团队BitcoinABC开发完成了从1M扩容到8M的新软件系统,并作了应对攻击的防范措施,经多方测试较为稳定。因为整个社区仍然认为Core表明了比特币开发的主要力量,也因为对比特币系统分裂的恐惧,比特币的绝大部分支持者最终选择了支持Core开发组和隔离见证。
只有少部分人对Core失去信任和信心,经再三考虑后担忧隔离见证以后的比特币会走入衰落,而且可以超越对比特币分叉的恐惧。他们选择支持BitcoinABC的软件版本,并在2017年8月1日正式开始运行。
新的软件版本在比特币区块高度478599开始运行,此区块以后,世界上就有了两种比特币系统软件,分别记录1M限制的区块和8M限制的区块,因为参数不一样,两个系统软件相互不认可对方的新区块。从而就出现了两条区块链或两个帐本。
在478599区块以前两个帐本彻底同样,但以后各自系统发生的交易,各自记帐,互不认可。从而至关于有了两个不一样的比特币,为了区分,8M区块系统中记录的比特币称为“比特币现金”(BCH)。在478599区块前就存在的比特币会在比特币现金系统中有等量的BCH,这就有了第一个因分叉产生的新加密货币。[2]
因为在此以前,人们广泛认为,比特币是供给总量恒定,尽管每一个人都参与记帐,但全球只会有彻底相同的帐本,从而实现分布式帐本。因此,比特币社区对比特币区块链分裂成两个链存在强烈的反感,由于这意味着
总量翻倍了!
出现了两个不一样的帐本!
比特币社区分裂了!可是,比特币现金的出现,意味着当人们对比特币的将来发展方向产生了不可调和的分歧,分裂是能够发生的。
其实,去中心化的区块链本质接近于市场机制,须要竞争的演进机制。要想保持活力,必须容许分歧存在,在分歧严重时容许经过分裂产生竞争,优胜劣汰。从这个意义上讲,比特币系统分裂出1M隔离见证版本的比特币和8M的比特币现金是一个重大的进步。