由于对11月的协议升级产生了分歧,BCH这个诞生刚满1年的加密货币可能面临着分裂的风险。
一场风波的开始
BCH用户量最大的客户端Bitcoin ABC周一宣布,11月15日的更新将包括以下内容:
1. 一种新的操作码OP_CHECKDATASIG,其能够优化BCH脚本语言,允许验证来自区块链外部的信息。这有助于预言机和跨链原子合约的应用。
2. 标准化交易排序,这是未来大规模扩容的技术基础。
3. 其它技术修复和改进内容。
然而,与澳洲中本聪Craig Wright的nChain关系密切的Calvin Ayre(BCH矿池Coingeek的创始人)上周表示:
我们不会支持以下更新,也不会投入算力运行那些接受以下更新的软件:
1. OP_DATASIGVERIFY
2. Canonical交易排序(原先的拓扑排序可能对扩容造成阻碍,我们会进行深入研究)
Coingeek目前是算力最高的BCH矿池,近3天平均算力达到了35.7%。而比特大陆的两个矿池BTC.com和Antpool算力达到了约18%。再算上ViaBTC和BTC.top,他们的算力也差不多达到了35%。
Roger Ver似乎与Ayre和Wright有来往,因此bitcoin.com会怎么站队还是未知数。
Rawpool是中国的矿池,他们好像是中立的。
在Wright被邀请到BCH微信群的时候,气氛似乎变得更加紧张了。吴忌寒在群里发了这样一段话:
CSW最近发了一篇文章说明了自己反对操作码的原因,他说BCH可以用的操作码有限。这种说法太可笑了,这人一定是个假中本聪。目前BCH有60种操作码还未使用,已经非常够用了。如果我们要用这些操作码,可以选择其中一种添加2字节的后缀,这样就能创建另外2^16种操作码。我们可以用这些操作码创造更强大、更安全、对开发者友好且不需要专利证书的金融系统。(原文涉及技术内容,如有错误,欢迎指正)
操作码(Op_codes)是一种类似scrypt算法语言的智能合约,允许有限的扩展功能,OP_CHECKDATASIGVERIFY就是其中的一种。
OP_DATASIGVERIFY允许脚本验证任意数据的签名,其采用了与ECDSA算法(以及代码)相同的方式,即比特币交易签名的验证方式。
因此,这个操作码有助于外部‘预言机’的使用,方便了外部信息输入交易,这是非常重要的。
Wright之所以反对这个操作码,是因为其优先处理非现金交易,那些简单的从A到B的BCH交易则变成次要的了。
另一个争议点在于Canonical排序或字典排序(lexical ordering)。这是Gavin Andresen的提议,旨在减少节点之间所需发送的数据,没必要再发送交易排序数据。
很显然这是问题会引发争议,但这纯粹属于技术问题,在canonical排序部署之后,唯一需要明确的就是安全性有没有受到影响。如果答案是否定的,那么这的确是一个提高效率的有效方式。
同样的,Op_check并不存在任何政治问题,关键在于是否安全。
除此之外,Coingeek还希望将区块容量提高到128MB。如何解决32MB的消息限制还是未知数。处理容量大于32MB的区块需要解决很多问题,而他们的建议则是将最高容量提升到128MB。
128MB的区块容量是Bitcoin Satoshi Vision(BitcoinSV)的一大卖点。这个全新的节点客户端预计9月份正式推出,由Daniel Connolly担任首席开发者。
Vitalik:BCH不能妥协
为此,Bitcoin Unlimited的Peter Rizun特地提出了一个折中的方案,希望能让所有团队都满意。他说:
为了11月BCH的硬分叉,我们都各退一步吧:
1. 添加nChain的操作码(前提是已经准备完毕)
2. 添加OP_CHECKDATASIGVERIFY
3. 延迟字典排序
4. 延迟OP_GROUP
5. 部署BIP101,不为区块容量设限(彻底解决128MB方案可能造成的分叉问题)
BIP101提出,区块容量每两年翻倍,在20年内达到8GB。有人认为这种方法太慢了,建议修改参数提高扩容速度。
实际上这个方案提出的区块容量是没有限制的,矿工可以随时采用软限制,根据需求来逐步提高实际的区块容量。
然而,以太坊创始人Vitalik Buterin则认为,BCH社区不应该向Wright妥协:
BCH社区不应该为了‘避免分裂’就向Wright妥协。这对BCH社区来说反而是驱逐Wright的一次绝佳机会。
CSW要干什么?
的确发生了很多事,但到底发生了什么?似乎很多东西都不应该在现阶段被拿来讨论。
有时候我们需要权衡利弊,因此才需要深入的讨论,在特殊的情况下甚至需要公开讨论。然而,更常见的情况是,一些客观的技术问题引发了争议,这只是分裂区块链的“合理”借口。
BitcoinSV上线之后,吃瓜群众就有料看了,毕竟Wright非常善于利用社交媒体煽动情绪。但BitPay、Bitfinex以及Bitstamp等知名企业和交易所是不会支持这个客户端的。
难道这只是虚张声势?刷存在感?或者他认为自己在BCH社区有足够的影响力?甚至觉得自己是掌舵人?
Coingeek的算力是一张王牌。Roger Ver控制着r/btc,为BCH做了不少贡献,他也算是一张王牌,但也被上文所述的客观问题所限制。
矿工担心的是硬分叉带来的区块链分裂问题。而通常在这种情况下,交易所才是真正的“造王者”。它们会选择相信Wright的链码?当然,这条链会是开源的,但谁又会紧盯着那些代码呢?
也就是说,Wright这么做要么是虚张声势(这不太可能,因为他的确保留了中本聪提出的脚本),要么就是他认为自己足以领导BCH(这也是不可能的,因为他有自知之明),要么他就是想要通过自己创造一种币来证明其符合中本聪的愿景,证明这才是真正的比特币,从而达到暗示自己是中本聪的目的。
因此,最后一点才是最合理的。如果我们的推理是正确的,那么这就是最好的结果。
随着分叉时间的临近,我们可能会听到一些流言和质疑。但分叉过后,BCH的发展将越来越顺利,因为有关发展路线的争议越来越少。