2017年8月1日,比特币持有人都获得了糖果:比特币现金(BCC,后因命名冲突改为BCH),任何人只要下载客户端、导入私钥就能获取。
一时间糖果遍地,先后有30多种币用大同小异的方式向人们发出糖果,人们普遍认为比特币分了很多叉,但事实情况真的是这样么?
一、什么是分叉?
分叉指改变区块或交易的格式,相当于软件升级。升级后能向下兼容的是软分叉,向下兼不了容的则是硬分叉,只有硬分叉才有可能产生另一种币。
比特币在将近10年的发展历程中,只有两次源于意外的硬分叉,两次都被终止,没有产生过新币。
第一次硬分叉发生在2013年3月12日,新版本bitcoin qt 0.8因为bug问题产生两条链,最后使用新版本的矿工妥协,放弃挖出的块,退回到上一版本qt 0.7继续挖,消灭了分叉。
第二次硬分叉发生在2015年7月4日,原本计划软分叉升级,主要矿池都完成升级,可有一个矿工(BTC Nuggets)却没有,导致他挖出来的块被其他矿工拒绝,分出两条链。不过最终所有矿工达成一致,升级新版本消灭分叉。
两次硬分叉之外都是软分叉,小步慢跑,让比特币越来越健壮。但那时的比特币却有两个大问题:1、转账慢;2、手续费贵。很多人认定症结在于2M的区块小得不符合时代,提议升级成8M,相当于2车道翻修成8车道,再也不用担心堵车和过路费了。
但这项提议在国外却收到很多反对。
反对者的主张是:转账慢并不是比特币要解决的问题,比特币要解决的问题是账记不对,即双重支付(戳此复习)。所以,区块不是越大越好,区块变大不仅会增大传输中的不确定性,而且会增加全节点的硬盘负荷,降低人们架设全节点的积极性,让全网趋向中心化,增加双重支付的可能性,最终拉低比特币的价值。
可是反对无效,“分叉”在所有人眼前发生,比特币现金(BCH)在比特币(BTC)区块高度为478558处执行“硬分叉”:复制BTC过往的交易数据后,按照自己8M的区块挖块。不过,严格意义上这次硬分叉只是幻觉,实际并没有发生。为什么?
因为“硬分叉”后并没有扑上去足够的算力。
当时BTC的全网算力约7E,如果有1/10的算力愿意跟着挖新链,那么原本平均10分钟的出块时间会变成100分钟。
按照比特币原本的设定,想让出块时间恢复到每个10分钟,就必须挖完2016个区块,难度才会自然下调,这需要14天。如果算力只有原先的1/10,这一过程就需要140天,每天投入0.7E的算力。而1E算力的成本是每天500万元,这样一算发现:不投四五个亿根本分不起叉,这还没算上出现意外的隐性成本。
怎么办?
二、EDA:BCH的创新
EDA:紧急难度调整(Emergency Difficulty Adjustment),顾名思义,不到紧急关头不进行的难度调整。没有EDA,比特币现金很可能胎死腹中。
分叉容易,可分叉后的算力为继却很难,不先撒出几个亿的电费过不了这关,于是只能调整难度。EDA方案具体是指:如果挖6个块超过12小时,难度就下降20%。
最终,BCH只消耗很少的算力就把天量的难度拉下来,原本几个亿才能办完的事,EDA一出面就摆平了。这是一个天才的举动,惹得后面30多种币纷纷效仿“硬分叉”。
不过BCH矿工很快发现,EDA机制居然可以调戏:既然一旦挖6个块超过12小时难度就降,那为什么不等难度降降干净后再去挖?反正BCH和BTC都使用同样的哈希算法SHA-256。换句话说,矿机可以通用,技术上能做到挖BTC和BCH双向一键切换。
于是大算力们达成默契:先挖BTC,等足72个小时,期间难度连续6次下降,再杀进挖BCH,这样必然挖到更多。当所有大算力都这么思考并执行时,我们就看到一场光与影的游戏:BTC与BCH的算力间歇性对顶。
https://bitinfocharts.com/comparison/hashrate-btc-bch.html
蓝线代表BTC算力,红线代表BCH算力,每隔一段时间BCH都会迎来一次算力盛宴:只花很少算力就能挖到很多BCH,但这样也造成一个问题:
BCH的出块时间变成了1-2分钟,分叉后的三个月BCH比BTC多挖将近1万个区块,BCH使用BTC的代码,总量也是2100万,这样下去BCH会很快挖完。
这是分叉者所料未及的,于是,BCH不得不在2017年11月13日再次分叉,用新难度调节机制DAA替换EDA,重新把出块时间稳定到600秒左右。从后续成果看,达成目标,调整后的算力稳定,不再像EDA时期的腰间盘那样突出,步入平稳增长期。
但是,反对BCH的声音却没有停止,他们认为这属于算力霸权,有算力就能随意分叉发币,太有恃无恐,事实是这样么?
三、大算力的福利
事实的确如此:算力是比特币世界的权力。
如果没有算力支持,仅凭一只平凡的CPU去挖矿,那挖一个块的时间将长达几十万年,没有算力支持的链会很快死去;而且,没有算力支持的币极易遭受51%攻击,从而丧失作为货币的信用。
真正保护BTC的,并不是代码,而是算力。比特币从未记错过一笔账的背后,大算力矿工居功至伟。
我们站到矿工角度算一把经济账:
使用DAA机制后,BCH的算力消耗平均相当于BTC的12%左右(见图2),也就是说,BCH只要价格高于BTC的12%,矿工挖BCH就能比BTC更赚钱,事实上BCH的价格也稳定在BTC价格的12%以上。对矿工而言,原来只有挖BTC一种选择,现在多一种BCH,福利更优厚。
不过,人毕竟是利益驱动的生物,立场不同的利益各方,观点也会截然相反。不挖矿的人不会打矿工的算盘,他们站在自己立场上的反对也有充分的道理:
BTC的精贵之处在于其货币属性。随着BTC渗透进社会,普通人关心的问题不会是2M还是8M这些参数,而在于BTC是否是真正的钱。
市场最看重钱的是加密货币的货币属性,一旦因为技术争论硬分叉出两种币,必然折损货币本身的信用,因为这种分裂几乎等价于双重支付。于是,很多人虽然拿着糖果,却依然反对BCH。
BCH不会消失,因为它本身就是大算力支持的产物,没有算力的人拿BCH毫无办法。BCH是大算力议价能力变现的结果,尽管饱受诟病,但BCH却凭着独立于反对者的算力而存在。
BCH分叉后,很多币迅速模仿分叉发糖果,但没多久就被规模化的51%攻击碾成粉,BCH没事,因为矿工有足够动力保护自己的饭碗。而BTC更安全,因为它的诚实算力比BCH多一个数量级。
代码可以复制,但算力才是不可复制的生存资源。正是由于自利驱动的算力守护,使比特币多年来稳如泰山,如果撤出这些算力,比特币活不过下一秒。
今年5月,紧随BCH分叉的比特币黄金BTG,就惨遭51%攻击,直接损失超过1,800万美元,信用值也大幅度贬损。获利后的恶意大算力会用同样的方式扫射其他分叉币,但他们不会动BTC或BCH,因为需要的算力太大,成本太高。
在这种局面下,BCH是市场为大算力集团配出的一道营养加餐,本质上是市场在足够的算力与BTC的货币信用价值间找到的平衡方案:
1、大算力持有者可以在稍稍折损一些BTC信用价值的前提下,分叉出一项福利满足自己,滋养更多算力、更好地守护BTC生态。
2、无算力、但持有BTC者让出比特币信用价值(实际上是“不得不”),获得更多潜在的算力保护,让手中的BTC继续有价值。
最终,达成各方都满意的平衡。
结语
这场平衡中,大算力看似更有主动权,能尽情分叉,但实际上这种情只能尽在不损伤比特币信用根基的前提下,需要手术刀般的精准计算和政治手腕。
如果大算力不“分叉”,那么自身利益并没有最大化;如果肆意分叉,BTC会因为失去信用价值而掉价,大算力自己会沦为受害者。
这场戴着镣铐的踢踏舞,舞池里任何人的出格动作,都会被社区力量自发斧正,这是去中心化组织的逻辑原点。
BCH的分叉始于技术争论,社区普遍认为通过软分叉解决技术争论属于上策,这样可以保持BTC的信用价值。通过硬分叉改良看似也行,但极容易被人玩坏,因为从来没有任何一样东西离钱那么近,甚至它就是钱本身,极容易成为人性贪欲的放大器。最终,所有技术讨论都会滑向政治之争。
而在政治层面,BCH犯的错误是幼儿园级别的,发起人Roger Ver称自己是中本聪的传人,所以BCH拥有继承BTC名号的资格。那一刻他已经输了一半,他还在用”命名权“的中心化逻辑玩着去中心化的游戏,越往下走他就越难解释自己行为的合理性。
另外,BCH在2017年11月13日因DAA分叉后,原来的链因为有算力接济而保留了性命,这条链在2018年5月20日也进行了硬分叉,把EDA机制换成了自己的DAA,分叉后变成BTCC。BTCC对BCH而言,永远是一种血统上的威胁。
分叉一个币需要的不仅是代码技术或算力支持,更多的是解释分叉合理性的政治素养,在这点上看,Roger Ver把自己和BCH一起带进了死胡同,结果只能是惹怒更多人,因为他的出发点就已经错了,没有看清社区共识层面的主次,错把福利当成工资。
参考资料:
1、黄世亮:什么是硬分叉,什么是软分叉,什么是共识?
2、古土雷柏:比特币硬分叉和软分叉有什么区别?如何评价BTCC(Bitcoin Core)?
本文于2018年7月7日发布于同名微信公众号:汤强