科普 | 最长链或最大积累难度能否决定BCH战争胜负?
导 读
BCH战争爆发后,各界普遍关注究竟谁胜利了。很多人根据所谓“最长链原则”,认为哪个链长,哪一方就胜利了。包括火币也发布公告说将认定最长链为BCH。
两链分裂后ABC版本长度持续超过BSV版本,为此,火币认定ABC版本为最长链,命名为BCH。但19日BSV版本链的长度又超过了ABC版本,但BSV的积累难度仍落后近40%。于是BSV的一些支持者坚称最长链决定胜利方,更多熟悉密码货币的人则强调最大积累难度决定胜利方。
实际上,这两种判断标准都是错误的。最长链原则和最大积累难度规则是一条链上自动裁决的客观代码,而不是评价两条链胜负优劣的主观标准。只适用于一条链,不适用于两条链。
在解释分叉时已经说过,最长链原则是在相同版本的一条链上,因网络延迟等技术原因导致分叉的时候,每个节点一旦发现同一高度出现不同的区块,就会保留更长的链,丢弃短链。这是写入代码的,节点会自动运行,不需要人来评判和干预。
由于比特币约两周调整一次难度,所以一般情况下短暂分叉的两个链都有相同的难度,所以某个链越长,这个链的积累难度也就越大。“最长链原则”和“最大积累难度原则”是等价的。
但是,BCH诞生之后,两周调整难度导致BTC和BCH的挖矿难度不能随着相对收益的变化而及时调整。当BCH更赚钱时,全部算力涌向BCH,难度不变情况下,出块时间大幅缩短。当BTC更赚钱时,全部算力涌向BTC,BCH出块时间大幅拉长。这种情况造成BTC和BCH的出块时间都偏离了10分钟,忽快忽慢。BCH价格低,波动尤其大。
为此,2017年11月1日的BCH硬分叉升级中修改了难度调整规则,改成每个区块都根据之前一天的平均出块时间调整难度(即逐块调整难度,简称DAA)。相对收益造成算力流动引起的出块时间偏离很快就能调整回来。有了这个修改之后,BCH和BTC的出块时间都稳定了,切换挖矿获利的行为导致两个链的算力之比跟价格之比基本一致。
然而,在逐块调整难度的情况下,“最长链”和“最大积累难度链”就不一致了。因为,算力较少的链虽然一开始出块慢一些,链更短,但它的难度能很快降下来,出块时间就加快了。因为这个原因,BCH已经比BTC超出了6500多个块了。但是,由于BCH难度低,因此积累难度远远小于BTC。
所以,在难度逐块调整(DAA)的情况下,如果仍然在同一条链上,最大积累难度原则才是代码执行的分叉选择原则。当发现跟一条不同的链的时候,不是判断哪个链更长,而是比较哪个链积累的难度最大,就接受哪个链,放弃另外一条,这是程序自动完成的。
最大积累难度原则也只适用于一条链。ABC版本和BSV版本在第556767区块中因为存在不兼容的交易信息,已经分裂成两条链。即使都没有做重放保护,两个版本接收到对方版本发来的区块会自动判别为不合法,从而拒绝对方的链。也就是说无论长短,无论积累难度高低,两个版本都不会理会对方的链。所以,最长链原则和最大积累难度原则就没了实际意义。BCH比BTC更长也不能说明BCH赢了。
跟区块链领域的很多误解一样,最长链和最大积累难度原则被广泛视为两链胜负的标准,不是因为它自身有这种功能,而是因为人们普遍接受这种误解。
实际上,最长链、最大积累难度、价格、社区人数、市值规模、日交易量、开发人员规模、活跃地址数,等等,都只能从一个侧面反映一个链的数据状态、健康程度、市场接受程度或可能发展前景。并不能判断出不同链的胜负。一个链的发展要多学习其他链的优势,修正自己的劣势。唯我独尊,天天贬低他人,不是一个新生事物迈向成功的道路。
对一场战争而言,胜负的评判标准在于,双方战前想通过战争实现的目标是否实现?
CSW发动战争的目标很明确,就是:1)阻止ABC版本升级到0.18.2;2)ABC团队不再主导BCH开发;3)BSV版本成为BCH的主导版本;4)BCH不分裂为两条链,如果分裂,ABC版本中止挖矿。
ABC和比特大陆一方的目标是:1)BCH升级到ABC 0.18.2版本;2)如果BSV不兼容新版本,欢迎分叉发展;3)BCH继续指代ABC及其兼容版本运行的区块链和币。
现在看来,CSW的4个目标全部落空了。BCH分裂了,除了BSV以外的版本都兼容ABC版本,而不兼容BSV版本,生态中多数商业沿用并升级到ABC的0.18.2兼容版本或更高版本,交易所和钱包部分已经接受ABC版本为BCH,部分中立,但没有将BSV接受为BCH的,ABC团队仍然是主要开发力量。
ABC和比特大陆一方的目标基本都实现了。“基本”的意思是,理论上仍有可能CSW的支持者说服其他开发团队、交易所、钱包将BSV版本作为BCH,并且斥巨资不断攻击破坏ABC版本的链,从而消灭ABC版本。但这种可能性已经极小了。
CSW的一些支持者也回避发动战争时的胜负标准,提出最长链、最大积累算力、放弃挖矿、主动添加重放保护、改挖矿算法等等新的胜负标准,试图延续这场战争,夺取BCH之名。实际上,BSV一开始没能成功夺得BCH之名,整个生态大部分接受ABC及兼容版本作为BCH主链之后,名称就拿不回来了。因为重新命名给商业企业和个人造成巨大混淆,人们不愿意这么做,去中心化的社区做不到这一点。
所以说,从这场战争的目标来看,CSW一方已经失败了,理性的做法是专心做好BSV,让用户超过BCH和BTC,这比夺取BCH或BTC之名更有意义,也更有可能实现。