比特币扩容之争的缘由阐述
扫描二维码
随时随地手机看文章
比特币扩容受阻,造成比特币的拥堵和高手续费,从而引发竞争币暴涨、疯狂ICO、分叉币浪潮、公链大战、TPS大跃进……,尤其是BCH的诞生。一个在中本聪看来几行代码可以解决的简单问题,演化成了一场旷日持久,最终改变了比特币发展方向,改变了密码货币格局的战争。这是所有人都始料未及的。
这场战争十分复杂,时至今日,扩容之争的来龙去脉仍未明了。即使是亲历其中的人也只了解身边的局部,难以看清整个事态的演化。以至于基于不同的立场、语境和目的,对扩容之争相关事实和前因后果经常出现截然对立的表述,唇枪舌战之后往往无果而终。
一、扩容的缘由
比特币扩容之争的“扩容”意思是提高区块上限的“区块扩容”,是战争的核心。反对区块扩容一方提出的隔离见证也能够实现每块交易量增长30%的效果,而主链之外建立闪电网络也能处理更多交易,这些不是争论的焦点。为避免混淆,本文所说“扩容”指的是提高区块上限的“区块扩容”,而非各种有扩容效果的措施。
中本聪最初的代码对每个区块容量有最高限制32M,据说源于他的这段代码是从其他项目中借用的,原本带有32M的限制。比特币运行之后最初两年实际区块大小都在0.5K以内。在没有直接说明原因的情况下,中本聪于2010年7月设置了最大1M的区块容量限制。
2010年10月3日,早期开发者Jeff Garzik发帖建议将容量限制提高到7.1M。但此时区块实际大小仍在0.5k左右,中本聪回帖认为立即修改会导致软件版本不兼容(即后来所说的硬分叉),他建议在更新代码时,加入条件,在某个区块高度将区块限制提高,这样就能自然完成扩容,解决不兼容(分叉)问题。(https://bitcointalk.org/index.php?topic=1347.0)
在中本聪看来,当时交易量很小,没有提高限制的必要,但要为以后交易量增长做准备,在区块未满时,预先升级代码,提高区块容量。这在当时,大家都不觉得有问题。但在2015年却引发了影响深远的扩容之争。
二、意外的扩容难题
2010年12月维基解密宣布接受比特币捐助,中本聪认为这“捅了马蜂窝”,随后退出“公共生活”,将比特币开发的相关权限交给了他信赖的Gavin Andresen,并与Gavin保持了一段时间的私人通信。
Gavin接手开发管理权之后所做的第一件事就是分权,将代码开发管理权赋予另外4个开发者。2014年4月他将“首席开发者”身份和权限转给了Wladimir van der Laan,自己辞去比特币核心维护者身份,专注于软件开发,仅保留了比特币基金会“首席科学家”的身份(https://www.8btc.com/article/10044,https://www.8btc.com/arTIcle/77761)。
Bitcoinj首席开发者Mike Hearn认为这几位核心开发者并不适合管理,是赶鸭子上架,只是为了保证Gavin有事时项目能够延续。但他强调,4名开发者中Gregory Maxwell有不同寻常的想法:“他曾声称,自己已经用数学方法证明了比特币不可能存在。更大的问题是,他不相信中本聪最初的构想。”(https://www.tmtpost.com/1498771.html)Mike强调这一点至少说明Gregory Maxwell在Bitcoin Core中的特殊性,这可能是理解扩容之争的关键。
2014年8月, Adam Back[2],核心开发者Gregory Maxwell,以及企业家和投资者AusTIn Hill,核心开发者Pieter Wuille、Matt Corallo等合作创立了比特币技术公司Blockstream。该公司侧重于侧链技术,即可以有效地与比特币挂钩的替代区块链。(https://www.8btc.com/arTIcle/139051)2014年底和2016年初,Blockstream分别获得2100万美元的种子轮投资和5500万美元的A轮融资。(https://www.8btc.com/arTIcle/78582)。按照Gregory Maxwell的说法,Blockstream就是为了比特币开发而建立的(https://www.8btc.com/article/40816)。
2013年2月Jeff Garzik的扩容帖再度被人顶起,此时区块已经达到150K,应当考虑扩容问题了。此后,关于区块上限、垃圾交易、硬分叉、手续费等主题的讨论开始了。(https://zhuanlan.zhihu.com/p/30930715)
2015年1月区块实际大小已经达到0.3M,考虑到开发测试周期,扩容问题已经十分紧迫。但是,比特币核心开发团队内部一直未能达成区块扩容的共识。2015年5月初,Gavin公开提出正式建议:在2016年3月1日将区块限制扩大到20M。然而,这个提议并没有得到核心开发主导者的支持。
在由比特币核心开发者Wladimirvan der Laan, Cory Fields, Luke Dashjr, Jonas Schnelli, Gregory Maxwell及包括blockstream在内的若干企业签名的信件中,署名者们声称自己致力于比特币的开发,服务于比特币社区,过去5年中完成了超过50次代码升级。考虑到比特币如此重要,他们要在保障安全的前提下考虑扩容。(https://en.bitcoinwiki.org/wiki/Block_size_limit_controversy)
在这封签名信中,缺少支持扩容的几位关键开发者:Gavin Andresen、Mike Hearn、Jeff Garzik。这暗示了在扩容问题上开发者内部的严重分歧。
响应Gavin的扩容建议,Jeff Garzik提出了比特币改进建议BIP100,建议矿池进行链上投票,超过75%算力同意既可以扩容。Gavin Andresen和Mike Hearn提出BIP101,建议先扩容到2M,然后每两年翻倍。在Bitcoin Core版本之外,Gavin和Mike开始在Bitcoin XT节点版本中实现20M扩容和BIP101。Bitcoin XT是Gavin在2012 年建立的与Core兼容的比特币全节点版本,为了扩容正在成为Core的竞争或替代版本。(https://en.bitcoinwiki.org/wiki/Bitcoin_XT)
对于Gavin的建议,公众看到的主要反对意见来自中国矿池,Gavin也专门到中国争取矿池支持。当时世界前5大矿池,中国占了4个。多数中国矿池认为中国网络带宽不足,大区块同步延迟更大,20M区块导致中国矿工挖矿相对国外处于劣势。因此,2015年6月Antpool,F2Pool,BTCChina,BW.com以及Huobi.com五大中国矿池达成共识,支持BIP100,反对BIP101,同意将区块扩大到8M。(https://www.8btc.com/article/59341)。
然而,真正的扩容阻力并非来自矿工,而是来自开发者内部。Gavin在2015年5月的建议中提到了后来人们熟知的反对扩容的两个关键意见:
1)闪电网络和侧链等可以解决容量扩展问题;
2)区块增大要求更高带宽和存储导致节点中心化。
显然,Gavin的扩容建议在开发者内部讨论已经遭遇了反对,只是没有暴露在公众面前。最终成功阻止Gavin比特币扩容计划的不是矿工,而是部分核心开发者提出的“隔离见证+闪电网络”(SegWit+Lightning,或SW+LN)发展路线:通过实施隔离见证(SegWit)把交易签名跟交易本身分开,并置于区块之外,实现1)提高区块容纳的交易数量,2)消除部署闪电网络遇到的延展性技术难题,3)闪电网络可以容纳更多的交易。这样就不需要区块扩容了。
2015年2月Dryja和Poon发表了《比特币闪电网络:可伸缩的离线即时支付》,即闪电网络白皮书。2015年12月讨论扩容问题的香港会议上闪电网络引起关注。为了解决影响闪电网络的延展性问题,也为了实现部分扩容效果,2015年12月Core提出了隔离见证(Segwit)方案。随后,Gregory Maxwell(Blockstream公司CTO)将闪电网络写入比特币路线图,形成了“隔离见证+闪电网络”路线。只不过,此时Core并没有公开表示这个路线会完全取代区块扩容,没有明确反对区块扩容,而只是强调要安全谨慎地扩容。
至此,Gavin主推的区块扩容方案和掌握比特币开发主导权的Blockstream公司的core开发者之间的分歧已经形成。
三、言论管制与Bitcoin XT的失败
2015年下半年,随着区块实际容量中位数从5月Gavin建议扩容时的0.3M上升到12月的0.7M,扩容问题在社区的关注度迅速提高。首先反映在比特币的两个重要论坛:中本聪创立的bitcointalk.org和Reddit的bitcoin版,2015年Theymos担任这两个论坛的管理员。
2015年8月,主推区块扩容的Bitcoin XT在Reddit的r/bitcoin版引起热议。Theymos认为r/bitcoin陷入了混乱,宣布对其进行管制。Theymos强调,Bitcoin XT是对Bitcoin Core的分裂,将会是一个山寨币(altcoin),他反对这种分裂行为,并禁止讨论扩容相关问题,禁止发布Bitcoin XT相关的内容,封杀相关账号。(https://www.reddit.com/r/Bitcoin/comments/3h9cq4/its_time_for_a_break_about_the_recent_mess/)
作为崇尚自由,一贯宣扬去中心化和反对管制的比特币社区,Theymos的发言和管制行动受到激烈的批评和抵制,但Core核心开发者对Theymos表示支持。言论管制,尤其是对区块扩容和Bitcoin XT支持者的压制在论坛中得到坚持贯彻。[3]
为了对抗言论管制,获得扩容问题的讨论空间。Roger Ver创立的bitcoin.com的CTO @MagmaHindenburg建立了Reddit的r/btc版。随后大量比特币扩容支持者从r/bitcoin转移到r/btc。目前,r/bitcoin版用户为1000k,r/btc版用户为254k。r/btc版在BCH诞生后成为Reddit上BCH的主版。这也使很多新人困惑,为何btc版讨论的都是bch?而r/bitcoincash版却只有43.3k用户,r/bch版只有2.5k用户?这是扩容历史原因造成的。
在这场媒体战中,Core凭借对bitcointalk.org和reddit/r/bitcoin,以及对官网bitcoin.org的实际控制取得了绝对优势。[4]甚至连美国最大、名气最响的比特币初创公司Coinbase也被比特币官网除名、被论坛禁言,因为它站在了“错误的”一边。(https://news.bitcoin.com/coinbase-still-de-listed-bitcoin-org-github-request-rejected/)
然而,最终给Bitcoin XT致命一击的是,压力之下Bitcoin XT内部的崩塌。2016年1月,Mike Hearn宣布“比特币已死”!
Mike是比特币资深开发者,与Gavin一起推进Bitcoin XT,面对1)Core和Blockstream对比特币开发权的控制、2)Theymos对社区话语权的控制、3)掌握优势算力的中国矿工对Core的忠诚,Mike绝望了。
Mike认为比特币这个去中心化的货币试验已经失败,因为系统已经完全被少数人控制,它变得拥堵、昂贵,无法与传统金融体系竞争,而让社区了解实情的渠道被完全控制了,这使得人们对真正的问题毫不在意,反而攻击提出问题的人。
Mike认为Bitcoin Core对扩容采用了拖延战术,而且非常有效。矿工和创业公司们拒绝Bitcoin XT最常见的理由是“我们在等Bitcoin Core在12月份扩容”。Core在2015年8月和12月举办的两次“扩容会议”都无果而终。此时Coinbase和比特币中国等主推扩容的公司才如梦初醒,发觉上当。
虽然Mike对新出现的Bitcoin Classic和Bitcoin Unlimited仍抱有希望,但他本人,面对困难已经失去信心,宣布比特币的根基已经崩塌,他已经卖掉所有的比特币,彻底离开比特币。(https://www.tmtpost.com/1498771.html)
Mike的声明使他立刻成为比特币社区的公敌,对Gavin的声誉和扩容之路也造成不小的损害,Bitcoin XT的扩容版本失败。
四、Bitcoin Classic与香港共识
Bitcoin XT失败,但Gavin并未放弃推进扩容。深知无法推动Bitcoin Core扩容,2016年1月,Gavin与Jeff Garzik和PeterRizun建立了一个新的开发组Bitcoin Classic。扩容进入Bitcoin Classic阶段。
由于区块实际容量快速增长,中位数达到0.7M,并频繁出现1M满块,扩容的紧迫性快速成为包括中国矿业在内的整个比特币社区的共识。绝大部分意见领袖和重要企业表达了对扩大区块容量限制的支持。(https://en.bitcoinwiki.org/wiki/Block_size_limit_controversy#BIP_109)
因此,Bitcoin Classic很快获得了Antpool和BW矿池在内的50%以上算力的支持,计划在算力支持达到75%是硬分叉升级至2M,以应对即将到来的拥堵。Bitcoin Classic硬分叉扩大容量与Bitcoin Core的SW+LN方案形成激烈竞争。
面对扩容呼声和Classic的竞争,Blockstream对Gavin、Bitcoin XT、BitcoinClassic和中国矿工十分不满,其首席执行官Austin Hill说“一大批建立在比特币上的公司,享受着开发者社区的辛勤劳动成果,没有说声谢谢,反而说我不喜欢你的颜色,所以我要去抛弃你。”(https://www.8btc.com/article/78582)
在双方互不相让的情况下,整个社区开始出现对“硬分叉”乃至社区“分裂”的恐慌,当然,主要的恐惧分裂带来币价的崩盘!
2016年1月23日中国矿业聚会,达成所谓“92共识”:90%以上算力支持下扩容2M的共识,总体认同Bitcoin Classic的扩容主张,但提高共识要求(从75%到90%)。类比台海关系,强调以“不战争、不分裂”为前提实现扩容,戏称为“92共识”(https://www.chainnode.com/post/28405)。
在聚会上,比特大陆CEO吴忌寒和haobtcCEO吴刚提出,各公司都应该派人参与比特币开发,培养自己的core开发人员,为比特币开发做贡献,也提升自己在core中的话语权,稀释Blockstream的影响力,这才是最终解决问题之道。(https://www.chainnode.com/post/29343)
2016年1月28日Gavin提出了比特币改进建议BIP109,建议扩容到2M,75%的算力投票即通过实施。
在“92共识”和BIP109的基础上,为了避免分裂,2016年2月22日召开香港会议,中国矿工同几位Core开发者,以及Blockstream CEO Adam Back达成协议。[5]双方同意继续实施隔离见证软分叉,Core在隔离见证之后通过硬分叉将区块扩容到2M,并给出了时间表:2016年4月发布隔离见证;7月完成硬分叉代码;2017年7月在社区支持的前提下实施硬分叉升级。作为代价,中国矿业承诺只支持Core版本。(https://blog.csdn.net/qq53016353/article/details/51183779,https://www.lieyunwang.com/archives/416445)这就是所谓“香港共识”。
五、Gavin失信黯然隐退
香港共识中,矿业妥协,抛弃了Core的重要竞争开发团队Bitcoin Classic,以换取Core的扩容承诺。
然而,香港共识并没有被Core履行。参加香港会议的Core成员回去后受到了指责,在香港共识协议上签字的Blockstream的CEO Adam Back签署了自己的名字,并未代表该公司。中国矿工感觉受到了欺骗,比特大陆吴忌寒在Twitter上警告Core,不会在没有2M硬分叉代码的情况下实施Segwit。
到了2016年5月,比特币区块中位数已经达到1M!手续费开始提高。然而,Core的Segwit并未按时发布。社区重启Classic的呼声再起。Gavin仍然是推动扩容的重要力量。但一个意外事件,彻底粉碎了Gavin的扩容之旅。
2015年底澳大利亚人Craig S.Wright(简称CSW)开始公开声称自己是中本聪。几乎每年都会出现类似的中本聪现身事件,但都是骗局或误会,影响不大。不过,在2016年5月扩容之争的关键时点,据说CSW向Gavin Andresen和当时的比特币基金会主席出示了某种证据,获得了两位的信任。Gavin公开宣称CSW就是中本聪(http://gavinandresen.ninja/satoshi),这是当时轰动一时的新闻。
BBC也展开了对CSW事件的报道。众所周知,自证中本聪最简单的方法就是证明自己拥有中本聪挖矿地址的私钥,方法至少有两种:一是按预先讲好的方式挪动中本聪的币,二是对一条新的信息用中本聪私钥进行签名,公开验证。
2016年5月3日CSW承诺将挪动中本聪的币,但5月4日在给Gavin和BBC记者当面操作时。他突然宣布比特币的一个早期安全漏洞会使他转移比特币面临巨大风险,Gavin告诉他这个漏洞已经解决,然而CSW突然离开房间,再也没回来。随后,发布了一篇道歉信,声称出于安全考虑不愿证明自己拥有中本聪私钥。[6]
然而,此后CSW在一篇讨论验证签名的博客中又给出了一个用中本聪早期私钥对萨特作品做的签名。只是不久就有人撰文揭露,该签名只是中本聪早期发送的一笔比特币交易的签名。[7]不仅如此,CSW还伪造了更多的证据,比如他修改了自己2008年的一篇旧博客,插入了“密码货币”内容,以证明自己那个时候就研究了密码货币。(https://www.qklzhg.cn/news/87623/)此处引用文献中有更多对CSW的揭露和质疑。
CSW在BBC上出尔反尔和假签名事件对Gavin和扩容造成致命一击。整个比特币社区都认为CSW是骗子,而Gavin成了骗子的帮凶,他和他为扩容做的一切努力都被蔑视,扩容本身也受到更多怀疑,Core占据了道德制高点。
就这样,Gavin失去了社区信任,不得不宣布退出Core开发组,彻底失去了在比特币开发方面的影响力,失去了对扩容的推动力。这是CSW对比特币的第一次重大影响。
目前不清楚究竟是什么让CSW获得了Gavin的信任。可以理解的是,在艰难的扩容之路上,Gavin确实太需要中本聪的支持了!
六、Bitcoin Unlimited的崛起
比特币区块拥堵之后,Core终于停止了拖延战术,公开反对区块扩容了。2016年5月,Core核心开发者Gregory Maxwell和MarkFriedenbach等人公开反对香港共识。曾经反对20M扩容,现在感觉被Core欺骗的中国矿工,开始取代他们曾反对的Gavin,成了扩容派的主要力量,这颇有些戏剧性。
在bitcointalk.org上,GregoryMaxwell斥责参加香港会议的Core成员是“笨蛋”(dipshits),他警告社区,尽管骗子CSW及其幕后支持者(暗指Gavin)已经消失,外部攻击减弱,但比特币社区自己削弱自己的能力不容忽视。(https://bitcointalk.org/index.php?topic=1330553.msg14835202#msg14835202)从后续的发展看,Gregory Maxwell的影响力似乎超过了参加香港共识的Core成员的总和。事后进入Blockstream的Samson Mow也宣称,香港共识不存在毁约,因为参加会议的几名Core开发者不能代表Core团队(https://www.lieyunwang.com/archives/416445)。
对于Core对香港共识的出尔反尔,除了阴谋论之外,合理的解释是Core开发团队中Gregory Maxwell和Luke Dashjr等强硬派否决了Adam Back和多位Core核心开发者面在香港共识中的公开承诺。无论Adam Back等人怎么看,在做出妥协放弃Bitcoin Classic的中国矿工来看,这的确是欺骗!
鱼池王纯表示他被在香港共识上签字的Blockstream CEO Adam Back欺骗了。(https://www.8btc.com/article/95353)时任比特币中国COO的缪永权(Samson Mow)也批评Gregory低估了问题的严重性,这样做破坏了社区的合作。
2015年底,为了免受Core阻挠,推进区块扩容,Andrew Clifford、Andrew Stone、Peter Rizun等人组建了Bitcoin Unlimited(简称BU),2015年11月26日Andrew Stone发布了BUIP1,开始在Core控制的BIP之外组织开发。
总体上,BU延续了BIP100和BIP109的基本路线,允许矿工动态标注区块大小限制,通过矿工的“涌现共识” (EmergentConsensus)实现区块弹性扩容(https://www.8btc.com/article/108473)。2016年8月在收到50万美元捐助后,Bitcoin Unlimited注册为非营利组织。[8](https://www.8btc.com/article/100975)
Bitcoin Unlimited的出现理所当然地受到Core的抵制。2016年9月在Blockstream、BTCC、Kraken和Bitfury组织的扩容会议上,作为赞助商之一的BU提出四个提案,但都被拒绝在会议上发布。Bitcoin Core与Bitcoin Unlimited的战争已经开始。(https://www.8btc.com/article/105060)
2016年9月25日,扩容支持者们在San Francisco召开《中本聪愿景:开发与扩容会议》(Satoshi‘s Vision: Development andScaling Conference)[9],会上重点由Bitcoin Unlimited成员介绍了BU路线及其主要改进:涌现共识、Xthin blocks、Xpedited Block Reply。(http://www.onchainscaling.com)
这次会议是自2016年6月以来,独立于Core的一系列扩容会议的一个高潮。参与和支持这一系列会议的包括Roger Ver、Jeff Garzik、Emin Gun Sirer, Peter Rizun,Andrew Clifford 、Amaury Sechet等人。(http://www.onchainscaling.com)Gavin Andresen 也明确表示支持BU。(https://www.8btc.com/article/120132)Bitcoin Unlimited不只是一个扩容版本,而是整个比特币扩容派高度期待的扩容希望。
跟Bitcoin Classic不同的是,BU很快获得了部分矿业力量的支持。2016年10月比特大陆参与投资的Viabtc矿池创始人杨海坡率先宣布支持BU。为了不受制于人,著名比特币早期投资人,被称为“比特币耶稣”的Roger Ver也创建了Bitcoin.com矿池,宣布支持BU。BTC.top矿池创始人江卓尔、比特大陆的蚂蚁矿池等也相继支持BU。(https://www.8btc.com/article/120132)
可以说,经过长期斗争,在认识到Core的拖延战术,尤其是香港共识受骗后,比特币社区形成了一个坚定的扩容派,他们不再相信Core,不再对Core妥协,不再惧怕分裂威胁,给予 Bitcoin Unlimited高度支持。决战时刻即将到来。
七、决战时刻与Bitcoin Unlimited的惨败
在明确反对区块扩容之后,Core的“隔离见证+闪电网络”路线更加明晰了:先通过软分叉实现隔离见证,然后上线闪电网络,以闪电网络承接主链的支付功能,实现广义的扩容[10]。2016年11月,Core 开发组放出 Segwit 代码,12月21日提交BIP141并要求大家在11月19号开始投票,激活线95%,投票位是bit-1。(https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki)
隔离见证的基本思想是把交易的签名与交易内容分开,并放在原区块之外。主要好处有三个:
1)消除交易延展性。交易与签名在一起的情况下,哈希出的交易ID可以在保证签名有效的情况下哈希出新的交易ID。对于依据交易ID判断转账是否成功的交易所和钱包,就可能被欺骗被重复提币,即所谓“延展性攻击”,Mt.Gox等许多交易所遇到过。采用隔离见证分离交易信息和签名,可以使交易ID唯一,消除延展性问题。
2)推进闪电网络。通过消除延展性,实现交易ID唯一,可以使闪电网络及其他一些应用的开发更加容易。
3)扩大30%容量。由于签名置于原区块之外,能够使1M区块容纳更多交易,相当于扩大了区块容量。据测算,可以增加30%容量,相当于区块扩大到1.3M,后来的实际情况确实如此。据说在测试环境下,最大能够扩容到4M。这成为Core支持者说隔离见证也是区块扩容的重要依据。(https://www.8btc.com/article/139051)
在香港共识失败之前,比特币社区对Core提出的隔离见证是普遍支持的。但在Core失信香港共识后,反对隔离见证的人增多,主要原因包括:
1)SegWit改变底层数据结构。隔离见证将签名与原始交易剥离,改变了比特币底层架构:交易和区块的结构。
2)SegWit强化开发中心化。隔离见证修改了大量的代码,使后续开发更加复杂而依赖于Core,降低了开发的去中心化;
3)SegWit更新不可逆。隔离见证类型交易一旦上链,整个系统就不能再废除隔离见证了,因为,这会导致所有隔离见证交易的资金丢失。
4)增加51%攻击风险。由于隔离见证交易在非隔离见证版本中是人人可花费的交易,随着隔离见证交易增多,发动51%攻击掠走隔离见证交易资金的潜在收益越来越大。
5)改变比特币发展方向。配合控制区块容量和实施闪电网络,Core推行隔离见证的目的是去除比特币主链的支付功能,使比特币的目标由货币变为结算网络。
6)错失牛市发展时机。当时牛市已经启动,区块扩容可以马上扩大容量,适应牛市市场需求,而通过隔离见证加闪电网络扩大容量则至少要“18个月”以上的时间。
(https://www.jinse.com/news/bitcoin/14804.html)
社区的分歧点除了扩容和隔离见证之外,还有硬分叉。Core反对区块扩容的另一个理由是,直接提高区块容量上限需要硬分叉升级,即升级后的版本与之前版本不兼容,如果部分节点不升级将会导致区块链分叉成两个链。Core(尤其是Gregory Maxwell)认为这太危险,而隔离见证则通过软分叉升级来实现,更安全。
支持区块扩容的都支持硬分叉,因为这确实是必须的。但支持隔离见证的人也有很多支持硬分叉实现,因为隔离见证的代码规模本来就大,而软分叉为了兼容之前版本,又需要增加更多代码、更大复杂性。而且,长期来看,不断进行软分叉升级,会导致系统代码越来越复杂,技术债越来越重。
Bitcoin Unlimited崛起之后,一个更加严峻的分歧无法回避了:由于Core和坚定扩容派都不再妥协,能否接受比特币的分裂?这个问题跟扩容和硬分叉紧密联系,如果Core不妥协,扩容和硬分叉将会导致分裂。绝大多数社区成员是害怕分裂的,害怕由此带来的币价崩盘。
但是,扩容一方接受分裂的声音也逐渐增强。2016 年6月Meni Rosenfeld发表文章《我是如何克服分叉恐惧爱上分叉的》(https://fieryspinningsword.com/2015/08/25/how-i-learned-to-stop-worrying-and-love-the-fork/),8月Andrew Hinkes在链上扩容会议上借鉴以太坊分叉分析了比特币分叉的可能性(http://www.onchainscaling.com),12月刘昌用发文认为矛盾的实质是世界货币和结算网络两条路线之争,难以调和,分叉各自探索是可行的解决方案,两个方向探索总体成功的概率更大。(https://www.8btc.com/article/113497)
到了2017年初,比特币牛市刚刚启动,在比特币网络交易拥堵,手续费增长10倍的情况下,扩容与分叉问题变得十分尖锐,期盼、恐慌、焦虑、愤怒等各种情绪弥漫社区。
此时,全球比特币社区围绕:1)是否支持区块扩容;2)是否支持隔离见证;3)是否支持硬分叉升级;4)是否信任Core;5)能否接受比特币分裂等这五个关键点,形成了复杂的格局。大体形成三个阵营:
1)Core及其坚定支持者。都支持隔离见证。其中极少数核心成员坚定反对区块扩容,Luke Dashjr甚至主张缩小区块到0.5或0.3M。不过,多数人仍希望扩容,只是坚定支持Core的所有决定;
2)坚定扩容派。支持BU,不信任Core,坚持硬分叉区块扩容,甚至不怕分叉。对于SegWit的意见并不一致,多数人在区块扩容的前提下愿意接受SegWit,少数人坚决反对SegWit。
3)统一中立派。他们支持区块扩容,部分支持硬分叉升级,大多支持隔离见证,不完全信任Core,也不完全信任BU。关键的是,他们坚信比特币只能有一条链,比特币无论如何决不能分裂!
2017年初Bitcoin Core和Bitcoin Unlimited的竞争白热化,通过区块投票,支持BU扩容和支持隔离见证的算力都未能达到30%。
面对僵局,隔离见证支持者Shaolin Fry提出更加激进的SegWit实施方案——“用户软分叉激活”(UASF),并于2017年3月12日形成正式提案BIP148。该提案建议开发者在新版本中设定隔离见证激活日期,节点更新至该新版本,无需算力投票,到期自动激活隔离见证。
UASF的关键是绕过矿工,算力不再有决定权。Shaolin Fry明确反对矿工(算力)决定共识规则,他对UASF的进一步修改中提出10月1日(后提前到8月1日https://www.8btc.com/article/124483)矿工将被要要求激活SegWit,否则挖矿无法获得区块奖励。(https://www.8btc.com/article/121626)(https://www.8btc.com/article/120365)缪永权是UASF坚定的支持者和宣扬者。(https://www.8btc.com/article/139051)
比特大陆吴忌寒坚决反对UASF,他认为没有算力支持的UASF将会导致分裂。随后,2017年3月蚂蚁矿池将全部算力切换至BU,BU支持率超过30%。(https://www.8btc.com/article/120552)BU在社区的支持率也快速提高。Core及其坚定支持者不再是多数派。
Gregory Maxwell并不赞成UASF,认为风险太大。(https://www.8btc.com/article/125814)但UASF对于希望绕过胶着的算力投票,尽快部署SegWit的Core支持者而言,这是一个很有吸引力的选项。3月24日著名的Bitfury矿池出块标记支持UASF(https://www.8btc.com/article/122659)。不过,更多矿业保持中立,包括当时在中国影响较大的吴刚的好比特币(现币信)和之前的世界第一大矿池鱼池。
然而,Core的最大优势在于连续的开发经验和技术实力,这是BU所缺乏的。并且,BU为扩容设计了复杂的弹性扩容,并加入Xthin等新的特性,增加了开发的复杂性。著名比特币技术专家,《精通比特币》作者AndreasAntonopoulos警告BU的共识系统和硬分叉存在风险,(https://www.8btc.com/article/122522)他宁愿支持Bitcoin Classic。(https://www.8btc.com/article/122765)
最终导致BU和扩容派惨败的正是BU的技术问题。
2017年2月2日BU的一个bug导致Bitcoin.com挖了一个孤块。由于Bug很快解决,没有更多孤块,负面影响不大。但接下来,3月14日的一个bug被人利用展开攻击,导致780个节点中的410个掉线,24小时后恢复;4月24日再次有70%BU节点因内存泄露而崩溃;5月8日再次受到攻击,又有大约70%的BU节点掉线。(https://en.bitcoinwiki.org/wiki/Bitcoin_Unlimited)
这三次系统大面积故障,让几乎所有人失去了对BU的信心。社区情绪急转,大批中立派转向支持Core。鱼池在4月份开始投票支持SegWit,使SegWit算力支持也突破30%。坚定扩容派再次失去可以抗衡的比特币开发版本,再度陷入困境。
八、纽约共识:最后的妥协
2017年3月牛市启动,密码货币交易活跃,比特币的拥堵程度和手续费飙升。
正常情况下,为保证一笔交易在10分钟左右确认,比特币存储未确认交易的内存池体积应在1M以内,但3月份内存池体积已经达到74M,5月底达到157M,在12月拥堵的最高峰达到285M(https://btc.com/stats/unconfirmed-tx)。也就是说,3月份一笔新的交易平均要等待74个10分钟,即12小时确认,5月底要等待24小时确认,而12月份则平均要等2天2夜!
2016年1月区块未满时的交易费仅为月平均每笔0.58元。由于拥堵,2017年3月每笔交易费上涨到6.60元;6月上涨到19.81元;12月最高峰达到224元每笔!(https://btc.com/stats)这还没有包括矿池定向打包一笔交易,收取的最高达上千元的“加速费”。曾经接受比特币支付的Dell、微软、Steam等纷纷放弃比特币支付。
面对拥堵和高手续费,市场中的交易者,尤其是套利交易者纷纷转向采用ETH、XRP和LTC进行转账。
从2017年3月到6月,ETH的价格从13美元飙升至385美元,翻了近30倍;XRP三个月翻了近53倍;LTC也翻了7.5倍;同期BTC只增长1倍。(https://bitinfocharts.com/zh/comparison/price-btc-eth-ltc-xrp.html)BTC市值占比从3月初的85%骤降至6月中旬的39%,而ETH此时则达到最高的31%。(https://coinmarketcap.com/charts/)
有些人将2017年BTC市场的失利归咎于扩容一方,尤其是归咎于BCH的出现。但是,2017年6月,Bitcoin Unlimited已经失败,BCH还没有出现。比特币市场绝对优势的丧失完全是扩容失败造成的,是拥堵和高交易费赶走了用户。
扩容,刻不容缓!
为了打破僵局,重仓比特币的数字货币集团(DCG)创始人Barry Silbert在这个关键时刻站了出来,他跟业内的主要公司、开发者代表展开一系列一对一的沟通,斡旋和软化各方立场,计划5月份在纽约召开一次共识大会。
Blockstream的CEO AdamBack也答应参会当面磋商。但是Adam在临出行前被“另一个合伙人严厉的阻止”,宣布拒绝参加纽约会议,改由4月份才从比特币中国(BTCC)转投Blockstream的Samson Mow(缪永权)参会。而缪永权在业界声誉不佳,曾因在BTCC艰难时刻转投Blockstream,散布Purse收了吴忌寒30万美元(https://m.8btc.com/article/124131),被吴刚当众质问。因此,一些重要企业声称,如果Samson Mow参会,他们将退出会议,为此,主持人Barry拒绝Samson参会。纽约会议在没有Blockstream和Core出席的情况下召开。
2017年5月21日纽约会议召开,来自22个国家,涵盖矿业、交易所、钱包、浏览器全产业链的58个公司代表参加了这次会议。(https://www.lieyunwang.com/archives/416445)作为参会者,吴忌寒在一年后的王峰十问中详细介绍了纽约会议详情。(https://www.huoxing24.com/newsdetail/2018061517234807956.html)
纽约会议讨论的焦点在于:SegWit激活是否应该绑定硬分叉扩容,让两者同时进行。
为兼顾Core立场,Barry有意代表了不在场的Blockstream一方,希望大家可以同意先激活SegWit,把扩容的事情放一放。但是现场的大多数企业要求绑定在一起。例如Bitpay、Blockchain.info等都指出,目前的比特币扩容形势已经刻不容缓。如果不能绑定在一起扩容,他们的用户就会被迫持续支付高额的手续费,他们必须支持其他密码货币,如以太坊。还有企业说,如果今天不能达成条件彼此绑定的有效协议,就立刻退场。他们说,Core已经拒绝执行香港共识,我们为什么要在纽约重复制定一个香港共识?
Bitfury的代表也参加了这次会谈。Bitfury是一贯支持小区块立场的,但是令人惊讶的是,Bitfury的代表异常坚定地支持绑定一起扩容。那位代表认为,如果这么多企业一起达成共识,少数Core的极端小区块主义者,做不了什么,比特币扩容一定可以成功。
最后,在场的代表形成了共识,准备实施SegWit+2M绑定扩容的方案,也就是后来广为人知的SegWit2X。然而,一个微小的技术细节再次改变了事态的发展。
代表们在5月21日达成纽约共识(SegWit2X),并决定在算力投票字节的第4位,即bit-4标记支持SegWit2X。22日Barry将共识形成文档,并征集更多支持和签名,所以未参会的主要开发者和企业也得知了共识协议内容。
然而,22日晚上,在共识协议向公众公布之前,Core开发者James Hillard抢先提交了一个BIP91建议,该建议通过算力投票同意降低Core提出的无区块扩容的SegWit实施的原定95%的投票阈值,降低到80%,并可以根据情况再调整。关键是,算力投票的标记也设定为bit-4!(https://github.com/bitcoin/bips/blob/master/bip-0091.mediawiki)
更重要的是,纽约共识约定的SegWit软分叉和2M扩容硬分叉的实施是有时间顺序的,先实施SegWit软分叉,两个月后再硬分叉扩容至2M。BIP91跟纽约共识的前半部分一样,都是激活SegWit软分叉,但BIP91没有后面的2M硬分叉扩容。借助相同的投票位,一些Blockstream的支持者就可以先假意按纽约共识投票,等SegWit实施后再宣称自己支持的是BIP91,而不是纽约共识,进而反对2M硬分叉扩容。后来,一些纽约共识签署者,比如鱼池也的确这样做了,鱼池王纯甚至公开声称,签署纽约共识就是为了“骗炮”!
用各种手段阻止扩容是Blockstream一直在做的事情,但为什么被香港共识欺骗的矿工仍然支持Blockstream呢?很重要的原因应该是Bitcoin Unlimited技术上的失败。
为了技术上的安全,很多人更愿意Core和Blocksteam继续主导比特币的发展。比如后来离开比特大陆的技术核心潘志彪,在直播中明确表示赞同扩容,但BU技术太差,所以还是支持Core。这是当时较普遍的观点。至于BTC与BCH分裂之后,很多人又逐渐接受Core的小区块和结算网络逻辑,不再主张扩容,那是后话了。
在Bitcoin Unlimited崩溃之后的纽约共识时期,比特币社区情绪正处在剧烈的变化中,其中一些人更加坚定支持区块扩容并不再相信妥协,一些人更加坚定支持Core和SegWit,但是大多数人正在厌倦扩容之争,希望尽快结束纷争,坚决反对分裂,保持比特币的统一,保护来之不易的大牛市。
在这种变化中,纽约共识一没有Core参加、二缺乏技术优势、三2M扩容无保障且仍可能导致分裂,这个共识十分脆弱,现在回头看注定是要失败的。
九、分叉的阴影
比特币分裂、BCH诞生的直接原因是纽约共识的脆弱性,且没有更可行的共识扩容方案了。但根本原因则是从扩容争论形成后不断扩大的社区分裂,而社区分裂背后是对比特币发展方向的重大分歧。[11]
Gavin在2011年将比特币开发管理权分给另外4个开发者,又在2014年退出开发管理专注开发,但在2015年挺身推进扩容,这表明他跟Core已经产生重大分歧。
随着区块实际容量不断接近1M,2015年底两次扩容会议无果而终之后,Core的拖延战术逐渐被识破。Roger等坚定的扩容支持者建立了独立的r/btc论坛,并在2016年6月、8月、9月、11月召开了一系列独立于Core的扩容会议,详细内容参见网站http://www.onchainscaling.com。David R. Allen和Alice在这些会议中起到重要的协调和组织作用,他们后来也是BCH国外社区的重要协调者。
在这些会议上,Bitcoin XT、BitcoinClassic、Bitcoin Unlimited、BitcoinABC等开发团队进行了连续的沟通、讨论和协作,以推进扩容,其中Bitcoin Unlimited的影响较大。2016年6月的第一次会议参加者有RogerVer, Jeff Garzik, Emin Gun Sirer, Peter Rizun, Andrew Clifford and AmaurySechet等人。2016年11月30日的会议有吴忌寒参加。
2017年2月onchainscaling.com转向新网站thefutureofbitcoin.com,该网站继承原来的扩容方向,但有更广阔的视野。可以说从跟Core的扩容分歧深入到了发展方向的分歧。
在这几次会议上,有多人提出分叉或分裂可能是更好的解决问题方式。中国社区对这些会议了解很少。不过,2016年12月刘昌用的《扩容之争和比特币的政治经济前景》(https://www.8btc.com/article/113497),在分析了技术、经济、政治和意识形态分歧之后,认为双方分歧的根源是方向和路线之争,分叉是更好的解决方式。刘昌用强调“一个去中心化组织要想永不分裂,跟一个中心化组织要想千秋万代一样幼稚”。江卓尔也赞同此观点。这跟国外扩容会议的演进不谋而合。