区块链的分叉究竟是什么?本质上说,分叉指的是系统源代码(功能)的迁移和转换所带来的多重链。以比特币为例,比特币共识的算法是,节点最终会follow最长的无非法区块的链条,在大家使用用一套系统代码的时候,是不会有分叉的,因为,进入分短暂叉链条的节点最终会在算法指引下,毫不犹豫地抛弃短链条,加入到长链条的康庄大道上。但是,如果大家使用的系统代码版本不同的时候,尤其是在规则上有巨大改变,导致新版本代码和旧版本代码互不承认各自生成的新区快的合法性的情况出现时,如果此时,双方的算力也不互相妥协,就会出现分叉,两个链条都有算力支撑产生新的区块,发行了新的不同代币,这就是当前BTC和BCC的来源。
如果是中心化应用,比如微信1.0升级到微信2.0,我们一觉醒来就会发现,腾讯通过中心服务器的版本替换,就悄悄地更新了我们的APP,是个平滑的悄无声息的过程;而对于区块链应用来说,尤其是加载了代币在其中的区块链,情况就会相当复杂。更新代码必须达成共识,要求所有人/节点在同一时间停机,更新软件,并同步上线从操作流程角度来说就是个异常艰难的事情,毕竟不是个集中管理的公司;另外,因为利益考量,有多少节点愿意在一个统一话语的指挥下去完成系统的版本更新,在社区当中会有相当长时间的争论与不可避免的分歧出现。
这里我们不得不说,纯粹的无政府民主社会的决策效率是相当值得怀疑,并且存在巨大分裂风险的。
事实上,非常巧合的是,有一部名字就叫做Source Code(源代码)的科幻电影已经描述过分叉,而这里的"分叉"叫做平行宇宙,在电影中,每一次源代码的更改、重启、循环都创造了一个新的宇宙,在新的宇宙之中,选择造就的命运可以有巨大的差异,但是死亡与新生却永恒存在。
比特币源代码的规则性修改,理论上来说都存在着分叉的可能,无非是分叉后的旧宇宙会不会得到主角的选择而成为超越瞬间的独立存在,而这里的主角究竟是矿工,核心研发者还是普通用户,并不重要,因为这里的选择仍然是一种共识,信仰的共识,或者从根本上说,是利益的共识。
旧宇宙会存在吗?这个答案已经被现实解答,存在本身也已经合理化了。那么旧的宇宙会持续多久?从理论来说,分叉之后的其中一条链是有缺陷的链,旧的终究会被新的取代,这看起来是自然规律,不过在多长时间维度上,以及,那永恒存在的死亡和新生呢?在我看来,这个问题很难在现有知识体系内得到解答。
我非常不喜欢硬分叉,因为共识的分裂,因为承诺(代币发行总量)的消解,所以我才如此欣赏EOS优雅的DPOS设计带来的0硬分叉可能。
但是我又不得不支持硬分叉的权利,因为,选择,似乎是严苛的物理规则之下,我们所能拥有的最好的话语权了。
无论你对硬分叉的哲学观点是什么,重要的是要记住,比特币不仅仅是货币;它也是一种软件开发项目,致力于确保这种货币的安全。在工程方面,尤其具有相当大的风险价值,为最坏的情况做好打算非常重要。我们不能简单地假设用户会盲目地跟随矿工并更改他们的软件——特别是因为他们不应该。即使矿工在算力方面表现的非常理性,这并不意味着矿工支持硬分叉的决议的假设是正确的。硬分叉的风险无法保证它能够作为一种共识账本底层的软件更新机制。
比特币和其他基于代币的共识网络都是经济体。不幸的是,宏观经济学中的因果关系是并且可能会继续是一个谜。正如大卫·休谟(DavidHume)所说,
“没有可以展示出来的论点来证明这些情况。”
我们永远无法预先知道如何解决一个能够分裂网络的硬分叉。
我们必须采取风险导向的方法,避免硬分叉可能会带来的最坏情况。特别是,如果出现多个比特币网络,并且能够进行跨网络重复支付的情况,那么这对于比特币的重复支付保护来说将是一个毁灭性的失败。另外,还会导致比特币网络执行基本规则的能力永远受到质疑,例如比特币的受限制的供应量。
网友评论