这一篇文章我们来聊聊比特币的硬分叉。
先来说一下比特币的分叉是怎么回事。这是基于比特币的设计产生的,由于比特币是一个大量网络节点共同维护的分布式账本,这些节点维护账本使用的是统一的比特币软件。如果是一个中心话的系统,例如银行的数据库,在进行软件升级时只需要在安装数据库的那台服务器上安装升级后的新软件即可。但是在分布式系统中进行软件升级就比较麻烦,需要在约定的时间所有网络节点同时升级软件,如果中间有的节点没有及时升级,就有可能出现分叉。
举个例子,一个节点运行着老版本的软件,当其它节点升级后,大家继续抢夺记账权,这时候有两种情况,一种情况是新版本的软件抢到记账权,打包成区块后广播到网上,老版本的软件验证通过,反过来老版本软件抢到记账权后打包成区块广播,被所有新版本软件认为区块不合法,这种情况叫软分叉,只要有超过50%的节点升级到新版本,就不会使比特币分叉成两条区块链,只会造成运行老版本软件的节点拿不到奖励,逼着老版本软件尽快升级。
另外一种情况比较严重,就是如果新版本的软件抢到记账权,打包成区块后广播到网上,老版本的软件认为区块不合法,这就变成硬分叉了,会产生两条区块链。我们第一部分讲到的2013年3月比特币软件出现bug导致的短时间分叉就是硬分叉。
通常来说,不到万不得已,比特币软件升级会尽量使用软分叉升级的方式,避免分裂成两条链的风险。但是只是在今年,似乎就已经发生了两次硬分叉,这其中的原因是什么呢?
目前比特币每个区块容量上限为1M,由于每笔交易都会占用区块容量,理想情况下处理速度是约7笔交易/秒,实际情况中处理速度更低。现在每个区块基本都接近1M,达到了区容量上限。比特币网络中有大量交易不能马上被记账,产生了交易延迟。由于提高交易费用能让自己交易被尽快打包,用户转账的手续费越来越高。这就像公路上产生拥堵,开车到了公路的入口,排队很长时间却上不了路,只好贿赂入口的收费员来插队。
这种情况明显制约了比特币的推广和发展,于是比特币社区内部提出了很多备选解决方案进行投票,总共提出了10种备选解决方案,让人看的头晕。
我们先不管这些备选方案,先来看中本聪在最初设计比特币时是怎么想的,在初始设计框架里区块大小最大可以达到32MB,但是考虑到在比特币诞生早期币价很低,有人恶意制造的大量小额转账导致正常的转账不能被确认,影响网络正常运转,就类似于互联网上越来越常见的DDos攻击。于是中本聪将比特币的区块大小暂定为1M。在比特币白皮书第7章,中本聪就明确提出了未来容量不够用的时候应该怎样进行扩容。中本聪当初的的思路是直接增加区块大小。
再来说2011年Gavin Andresen 被中本聪指定为比特币的首席开发者,他吸纳了多名技术人员加入开发者团队,逐渐形成了比特币核心技术团队,我们现在称这个团队为Bitcoin Core。2015 年初,Gavin Andresen 提出将比特币区块一次性扩容至 20MB,但这个提案被Bitcoin Core的其他成员拒绝了,2015 年底,Gavin Andresen 联合开发者 Mike Hearn 提出了将区块增大至 8MB 的 方案,又被Bitcoin Core的其他成员拒绝了。2016年初Gavin Andresen 被取消了比特币维护权,Mike Hearn也退出比特币社区。
Bitcoin Core团队既然反对直接增大区块容量,必然有另外的想法。他们的想法是比特币主链容量不变,还是1M,但是开启“隔离见证+闪电网络”。什么意思呢?做个类比,就像公路太窄造成交通拥堵了,但是不对公路进行翻修扩建,而是在公路边上新建一条公路,专门供小车使用,主路只让大货车通行。这条新公路就是闪电网络,新公路上跑的小车就是小额高频交易,主路上跑的大货车是大额交易。
隔离见证是什么呢?公路上跑的每辆车里有两种信息,一种是交易信息,一类是见证信息,原来的比特币网络必须把交易信息跟见证信息绑定在一个区块里,占用区块容量大,而且实现的功能受到限制。现在把见证信息单独拿出来打包,不但能实现更多复杂的金融功能,而且可以在不增大区块容量的基础上提升约70%的扩容效果。类比一下,就是把公路上大卡车后面的货柜跟车头分开通行,同一条道路也能容纳更多的车。
Bitcoin Core虽然想在不增大区块容量的前提下开始“隔离见证+闪电网络”,但是却受到很多矿工的反对,大部分矿工主张直接扩大区块,或者在部署闪电网络的同时扩大区块。
比特币社区是民主和去中心化的,为了不同的升级方案吵了好几年也没能统一意见。到了2016年2月,Bitcoin Core团队的几位开发者、主要的几大矿场主、比特币周边产业公司等在香港召开会议。在会议上双方各退了一步 ,把两个方案结合起来达成共识,在部署隔离见证和闪电网络的同时把比特币主链区块大小从1M增大到2M,由Bitcoin Core主导开发,称为香港共识。
可是Bitcoin Core的几位开发者在共识上签完字回去之后,团队里的其他成员不认同这个方案,拒绝开发。经过这次事件,大矿场主们与Bitcoin Core关系陷入冰点。2017年5月,大矿场主们和比特币相关公司代表在纽约重新召开大会,达成名为SegWit2x纽约共识,当时这个共识拥有超过80%的算力支持,纽约共识与香港共识的方案相近,但是这个共识方案未征求Bitcoin Core的同意。
由于比特币社区多年来对于扩容升级没能达成一致意见,社区中出现了一个新的开发团队Bitcoin Unlimited,它们研发的方向是无区块容量上限的升级方案,并获得了很多矿工的支持。
看到这里,大家有没有觉得很乱?确实很乱,不过我们可以大致将不同意见者分为两派,支持大区块的,和支持闪电网络+隔离见证的。支持大区块的大多是矿工,支持闪电网络+隔离见证的是Bitcoin Core(比特币核心技术团队)。
双方在争吵时各有理由,例如大区块支持者批评隔离见证是从根本上颠覆了比特币的设计框架,同时方案改动过于复杂,既不符合中本聪的设计原意,又影响了系统的安全和稳定。而Bitcoin Core则批评大区块支持者只顾眼前利益(多收交易费),不顾比特币的长期发展。
这些批评各有背景。比特币程序是开源的,Bitcoin Core是做比特币程序的开发和维护,却并不能从中获得收入。团队中的主要成员大多就职于blockstream 区块链技术开发公司,而这家公司拥有闪电网络的专利权。如果隔离见证+闪电网络升级完成,用户将节省转账手续费,blockstream公司将获得专利使用费,而矿工们却将损失一部分交易费。
如果实现大区块升级方案,矿工们收取的交易费将获得提升,但比特币在小额高频支付结算领域与法币的竞争将没有胜算。
2017年8月1日,在比特大陆的推动下,比特币发生了一次硬分叉,产生了名为Bitcoin Cash的新数字货币,这一举动打开了潘多拉的魔盒。比特币是一个分布式公开账本,所有的源代码和账本明细都是公开的。理论上,只要有一定技术实力和充足的算力支持,任何人都可以基于这个账本创造一种新的分叉币。
这件事也确实发生了,2017年10月25日,香港公司LightningASIC的CEO廖翔主导创造了一种新的分叉币Bitcoin Gold。由于Bitcoin Gold在代码中设置了预挖,相当于推动这次分叉的主导者预留了20万个Bitcoin Gold代币给自己,从逻辑上来说,Bitcoin Gold的这次分叉更像是变相的ICO。
2017年11月初,新诞生了一种分叉币Bitcoin Diamond。而就在写这篇文章时,我看到了将在2017年12月17日诞生一种新的分叉币Super Bitcoin的预告。
根据Super Bitcoin官网的介绍,这种代币将预挖21万个留给基金会用于运营,而且将在功能中支持图灵完备的智能合约、加入零知识证明并实现8MB扩容。这个新的分叉币到底是一次试图推动比特币技术进步的创新尝试还是一个恶作剧?我们不妨拭目以待。
网友评论