从BCH分叉看分布式系统如何升级

​最近读到一篇讨论BCH分叉的文章,《“战”后启示录:算力崇拜崩塌,你的信仰还在吗?》,这篇文章总结了BCH分叉的原因和结果,值得一读。以下就些做一些讨论。

这次BCH的分叉特点是三分叉,原链、升级链和分叉链,只是原版本没有存活,所以剩下两条链。至于为什么要同时进行,这还真是值得思考,可能是想吸引注意力,但最后分叉后的总市值反而比原来小,真是不得人心啊。

分布式系统没有中心控制,但技术总是要迭代的,不然没有前途。所以,区块链只能采用硬分叉来迭代。不过,这样效率很低啊。我们使用者下载,升级,这样就好了。分布式这样做好吗?——其实也是不得以而为之。

我们发现区块链其实主要是一套大家合作的协议,而协议是不应该频繁迭代的,不然,大家无适从,而且协议迭代本来也会影响很多按协议开发的软件,这也是成本。另外,协议升级并不能强制大家不使用老协议或只使用新协议,这往往会造成社区分裂。

Python从2升级到3采用了不向前兼容,造成了硬分叉,到现在还倍受诟病。但python3的硬分叉也是不得以而为之。

如此说来,其实分布式系统只能这么做。

但为什么不少人提出链上治理,仿佛可以通过投票来决定矿工是否升级软件似的,但其实并非如此。你链上再怎么投票也只是民意测试,大家可以选择不投票,投了也不能起作用,因为投票没办法直接触发软件升级。所以,很多吹嘘链上治理只是幌子。

笔者认为区块链的升级只能靠硬分叉,别无办法。但我们可以把硬分叉做得好一些。怎么算好的硬分叉呢?

首先,分叉之前,要有大量的线下讨论,逐渐形成越来越广泛的共识。没有比较广的共识,联合一些矿工进行强制分叉都是不良生意人的捣乱,小丑表演,并不能影响主流。

其次,分叉的目的是社区不是分叉,而是升级系统,只是由于少数人坚持原来的系统,所以造成了分叉,但不影响主流。正如以太坊的进步,大家自然会选择技术更好的链。

最后,分叉之后的社区力量和技术进步决定了各自的生态,所以分叉之后也不能停步不前。

看起来分叉可以是区块链技术进步的阶梯,形成良性的社区分裂和技术竞争,并没有什么不好的。

不过,未来的分叉,如果没有技术大幅提升,只是搏眼球,可能不得人心的。

8月9日张首晟教授讲义.pptx