比特币为什么要分叉为 BTC 和 BCH?在比特币运行的早期,中本聪对区块的大小进行了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.
此时,比特币的开发由称为Core的核心开发组进行,尽管Gavin仍然是Core的关键成员,但其他多名成员反对改变1M上限,主张1)通过隔离见证方案(Segwit)优化交易和区块链结构在1M区块限制不变的情况下,扩大交易容量到原来的1.7倍左右;2)在主链之外,发展第二层支付通道(比如闪电网络、侧链、树链等等)来解决容量不足的问题。此时的Core核心开发组多名成员受雇于Blockstream公司,组内主张扩容的Gavin处于较为鼓励的状态。
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]
由于在此之前,人们普遍认为,比特币是供给总量恒定,尽管每个人都参与记账,但全球只会有完全相同的账本,从而实现分布式账本。所以,比特币社区对比特币区块链分裂成两个链存在强烈的反感,因为这意味着
1)总量翻倍了!
2)出现了两个不同的账本!
3)比特币社区分裂了!
但是,比特币现金的出现,意味着当人们对比特币的未来发展方向产生了不可调和的分歧,分裂是可以发生的。
其实,去中心化的区块链本质接近于市场机制,需要竞争的演进机制。要想保持活力,必须允许分歧存在,在分歧严重时允许通过分裂产生竞争,优胜劣汰。从这个意义上讲,比特币系统分裂出1M隔离见证版本的比特币和8M的比特币现金是一个重大的进步。