Ritannn 2019-06-30
周末来临,轻松一刻~
我们推出了针对区块链技术的中文播客"Fork It",由 Nervos 四位主播 Terry、Jan、Kevin、Daniel 从一线创业者的角度来分享区块链的方方面面,第一期来聊一聊分叉。
分叉就是区块链面临着两条路,选择向左走还是向右走?如果向左走,就什么都不用做;向右走,就是选择了升级。——Jan 眼中的分叉
我所经历过的区块链中重大的分叉故事,都不是那么轻松的。让所有节点选择升级到最新的客户端,本身就是件很难的事,而共识又是分层次的,需要在不同群体间达到共识。达成共识的分叉叫作无争议的分叉,没达成共识的分叉叫作有争议的分叉。——Daniel 所理解的分叉
在一群人中达成共识是一件很难的事,即使在只有 10 个人的团队中,也常常达不成共识。更何况区块链中有几十万人、几百万人,达成共识的难度之大可想而知,所以分叉也是自然而然会发生的事。
在 Fork It 1 中,Jan 和 Daniel 要和我们聊一聊「FORK」这个话题。
比特币和以太坊采用的都是 POW 共识算法。在 POW 共识算法中,当所有矿工都认同一次未来将要发生的分叉时,他们会选择去下载包含这次分叉的最新客户端版本,当达到某一个区块高度之后,整个链上的所有节点都会使用最新的客户端版本,这时,他们会做一次瞬间的协议升级,然后分叉就会完成。
但是,比特币社区和以太坊社区对待分叉有着不同的世界观。比特币社区坚决抵制任何硬分叉,而以太坊社区却硬分叉不断。为什么会有这么大的区别呢?
从推动社区共识的角度来讲,比特币没有一个核心团队去推动这件事,而以太坊社区是一个技术驱动的社区,有以太坊基金会、核心团队,有社区的精神领袖 Vitalik,他们共同推动协议的向前升级。在达成共识这件事情上以太坊会比比特币更广泛和更快速。
「价值存储」的定位,使得比特币需要保持足够的稳定性,这也是比特币抵制硬分叉的原因之一。而以太坊出现在比特币之后,想要快速的发展、进步,就需要不停的迭代、升级。
以太坊的每一次分叉会存在大量的局部争议,但是在分叉之前,以太坊社区会在技术层面解决这些协议的分歧,这是一个很好的模式。如果是开发者,会很熟悉开源社区的操作,比如 Linux、Rust,它们都有一个比较核心的组织,大家不停的提案,讨论形成一个结果,最后由核心团队去推动执行。虽然说开源社区的决策效率相对于中心化组织会慢一些,但是它最终还是先达成技术上的共识,再达成网络协议升级的共识。这是顺理成章的过程,也是一种很好的平衡方法。
采用 POW 共识机制的分叉大部分是根据持有的算力来投票的,而采用 POS 共识机制的分叉,简单的说是基于出块人持有的 Stake 数量来投票,当然在投票机制的设置上也会有更多的挑战和玩法。在 POS 分叉中,可以设置成所有 Stake 持有者都参与投票,甚至也可以不用持有的 Stake 投票,而是叠加其他投票机制设计,比如通过牺牲流动性获得更多投票额度,假设 10 个 Token, 锁定 10 天就有 100 票,锁定 20 天就有 200 票等等。
实际上,共识和治理是两个不同的维度,POW 分叉也可以用 Stake 的方式投票,POS 分叉也可以根据持有的算力进行投票。
历史上发生过很多有趣的分叉故事:BTC 的扩容之争、以太坊的 The DAO 事件、拜占庭分叉、军事坦丁堡分叉、BTC 分叉的分叉等等。
BTC 的分叉 BCH 发生在 2017 年 8 月,当时以比特大陆为首的多家公司,提出了一个基于比特币的改进方案,这个方案不是以达成共识作为结果,而是从比特币分叉出一条新的链。在这条链上应用他们提出的一系列扩容的方案,包括将每一个区块的容量从 1M 升级到 8M,自此就有了 BCH(Bitcoin Cash),一条全新的链。
分叉是关于区块链扩容路线的大辩论,其中又掺杂了各种各样的社区意见分歧。扩容这件事之所以是一个问题,就是因为比特币的带宽不够了,每个区块的交易太拥堵了。在中本聪的论文里,比特币出块的存储上限是 1M,平均下来每秒能容纳的交易大概只有 6 到 7 笔,所以在 2015 年开始,比特币的网络拥堵问题就非常严重了。从那时起,社区就有呼声要求扩容,而针对如何扩容就产生了不同的观点。
BTC 认为不能更改 1M 大小的参数,虽然可能有原教旨主义,但是也有它的道理。而 Bitcoin core 首先选择使用隔离见证的方式,将签名部分占用的空间移出,这样区块的实际可用空间就从 1M 变得更大。隔离见证部署之后一段时间再讨论下一步的扩容方案,同时通过 Layer 2 或者闪电网络的方案去弥补比特币性能的不足。
然而在理想的情况下,隔离见证实现了较原来 170% 的容量提升,但这对于解决整个网络的拥堵还是杯水车薪的。而且以现在的比特币技术来说,在比特币之上使用 Layer 2 的方式去扩充性能也是一个漫长的过程。
当观点不一致时,最终的结果无非两种,一种是皆大欢喜达成共识,选择向左走还是向右走,这种时候就不会有硬分叉。另外一种就是没有达成共识,各自坚持自己的观点。
在传统情况下,一般的制度是少数服从多数或者由一个人拍板,而分叉就提出了另外一种制度,可以各走自己的路。在区块链中所有的数据都是可以复制的,重启一条链,甚至不用用户投票,就能从 1 个 Token 变成 2 个 Token。当时很多人看到这种情况的时候是很惊奇的,比如手上的 1 块钱突然变成了一个 1 块钱和另外一个 1 块钱。
BCH 分叉算是一次成功的分叉了,也被很多公司接受,应用到了很多的场景。之后也出现了非常多的分叉,像 BTG、Bitcoin God、SBTC 等等,但是这些分叉并没有成功。这就说明了一种现象:
在互联网时代 ,互联网巨头的壁垒是用户,创业公司可以复制产品和商业模式,但没有办法获得用户;在区块链时代,看起来好像是复制代码就可以免费获得原来链上的所有用户,但实质上并不是那么容易的。用户并不会因为分叉而一定发生迁移,而是需要看到链上凝聚的价值再做选择。这个价值是什么,才是区块链时代创业者需要去探索的东西。
每一期 Fork It 节目最后,主播们都会送上他们的好物分享:
这一期,Jan 给大家推荐了一本书《债》,作者是大卫·格雷伯,主要讲述了市场、货币、债务的发展历史,这本书里有很多有趣的观点,非常值得阅读。
Daniel 推荐了布拉格的德式烤猪肘子。11 月,Nervos 团队在布拉格参加了 Devcon4,在布拉格期间,他们几个人分享一只完整的烤猪肘子,再配上一扎黑啤,堪称绝美!
本文内容来源于 Fork It 1。Fork It,第一个聊区块链技术的中文播客。更多精彩内容,详见链接:http://forkit.fm/1