59

杨海坡:比特币分叉往事

 4 years ago
source link: https://www.tuicool.com/articles/u6RnQvI
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Bitcoin Cash于2017年8月1日正式从Bitcoin分叉出来,已经过去了两周年。回过头看这两周年的发展,Bitcoin Cash即是成功的,也是失败的。说其成功是在于其仍然有着极其活跃的社区,不断发展的应用,以及稳固的市场地位。说其失败是在于Bitcoin Cash并没有达到大多数支持者对于其超越Bitcoin的预期,以及Bitcoin Cash并没有解决Bitcoin同样面临的一些列治理难题。

YNbmYvB.jpg!web

起源

Bitcoin Cash与Bitcoin的分裂来自于比特币的扩容问题,这本不该成为问题。一切起源于比特币创造者中本聪在比特币原代码里面留下的一行代码,这行代码限制了比特币区块的大小上限。比特币本质上是一套记账系统,而区块可以理解为是一个账本,是记账的最小单元,每个账本记录着过去大约十分钟比特币网络所有发生的转账交易记录。区块大小上限则限制了比特币网络的交易处理能力。这行代码添加的初衷是防止垃圾交易攻击。在比特币发展的早期,比特币价格还常低的时候,攻击者可以花费很小的代价创造大量的垃圾交易堆满所有节点的硬盘,会将这个极具创新和革命意义的系统扼杀于摇篮。在添加这行代码的时候,有人担心未来会限制比特币网络的发展,中本聪给出的回答也很简单:到时候我们提前把限制调大就可以了。谁会想到,这个简单的扩容问题竟然会导致比特币走向分裂。

比特币扩容问题从2014年开始有人提出,比特币的区块大小在那时候达到了300KB左右,并且维持着指数级的速度上升,按照预测,将在2016年初触达1MB大小上限。比特币的网络是一个去中心化的网络,依赖于一套共识协议来达成共识,对共识协议的修改必须要小心,避免由于前后不兼容而导致整个网络分叉。如果共识协议收紧,则称为软分叉,老节点无需升级仍然可以正常运行。如果共识协议放开,则称为硬分叉,这种情况下老节点必须升级才可以正常运行。可以简单的理解为软分叉向后兼容,而硬分叉不向后兼容。比如比特币区块大小上限从2MB改为1MB是软分叉,而从1MB改为2MB则是硬分叉,因为大于1MB的区块在老节点上被认为为非法。比特币历史上进行过很多次软分叉升级,还没有出现过硬分叉,因为开发者认为硬分叉升级很可能会导致比特币网络分叉,是一件很危险的事情。而通过提升比特币区块大小上限扩容是一个硬分叉行为,于是这事遇到了很大的阻力。

我从2011年就开始关注比特币的发展,到2014年开始的出现的扩容问题时,我认为这是一件很自然要被解决的问题,因此我并没有投入太多精力在这件事情。当时中文社区的讨论主要在一个叫做币科技的论坛上面,我偶尔会关注一下当时社区的讨论。 比特币的发展史上有两件事情我一直认为很自然要被解决却很不正常的一直存在的问题,一个就是比特币扩容的问题,还有一个是比特币协议标准化问题。 比特币本质上是一套协议,类似于HTTP、Email协议,而不是一套软件。在互联网历史上,凡是成功的协议或者编程语言,都最终被标准化了的,这有利于更多样化的实现。在2018年的时候,我尝试过在Bitcoin Cash上推进协议标准化,也得到了很多人的支持,但最终并没有得到实施,这是后话了。

我在2016年之前一直没有参与比特币扩容的话题,那时候更多在潜心研究着交易。一方面我觉得我也影响不了什么,另一方面我认为社区在寻找一个更合适的扩容方式。然后随着2016年上半年比特币区块大小终于达到了1MB的时候,比特币仍然没有扩容,我开始认真关注这个问题,发现社区争论的焦点已经从如何扩容变成要不要扩容,这一下子变成了很严肃的问题。2015年到2016年,比特币开发者社区发生了很多事,比如比特币的扩容版本Bitcoin Classic、Bitcoin XT的诞生,比如香港扩容大会,比如澳本聪的登场以及被称为中本聪继承者也是扩容派领导者的Gavin被夺权等等。比特币核心社区分成了两派,分别是大区块派和小区块派,两派逐渐开始争吵到斗争到决裂,最终以小区块派踢出了全部大区块派的核心开发者,把持了Bitcoin Core代码提交权限而告全面胜利。 Bitcoin Core是比特币最主要的一个软件实现,继承自中本聪的原始代码,由于Bitcoin协议并没有完成标准化的,所以Bitcoin Core事实上定义了什么是比特币。

我参与到比特币扩容纷争,是因为我在2016年的时候创办了一个比特币矿池:ViaBTC矿池。比特币挖矿是比特币运行的基石,是比特币共识协议的守护者,通过庞大的挖矿网络,构建了一个坚不可摧的比特币网络。在比特币的白皮书里面,也描述了一个通过矿工竞逐最长链而改变共识协议的规则,因此在扩容派开发者失势后,大区块派的支持者将希望放在了矿工身上。如果所有矿工达成一致,一起修改比特币区块大小上限,理论上也是可以实现扩容的目地的。比特币矿池联系着比特币网络和矿工,因此在扩容事情上,获取了不小的话语权。然而通过联合矿工而实现扩容这条路是非常困难的,比特币网络运行着十几家大大小小的矿池,本身就十分分散。并且比特币的矿工早已不是早期的极客了,而是一群专业矿工,他们进行挖矿并不是因为对比特币有很深入的理解和信仰,而只是一门赚钱的生意。要说服这些人一起进行一件冒险的事情,是何其难啊。然而只要还有一线希望,还是要去尝试。

矿工也需要合适的比特币软件来完成扩容,在2015年的时候,涌现了很多比特币扩容的方案和实现,包括上面提到的Bitcoin Classic和Bitcoin XT,还有一个很有意思的实现是Bitcoin Unlimited. Bitcoin Unlimited提出了一种通过矿工投票的方式动态的调整区块大小的方案,这可以避免后续再次硬分叉扩容。当时在推广自己的矿池的时候,一些人在Twitter上问我是否支持Bitcoin Unlimited,我回答说正在关注和测试,这引起了很多人的关注,也结交了很多朋友。吴忌寒,最大的矿机厂商比特大陆的掌舵者,中国最早的比特币投资者和布道者之一,也是我的投资人和创业导师。Roger Ver, 最早的比特币投资者,投资了大量比特币初创公司而被称为比特币耶稣,也是著名的自由主义斗士。他们都是大区块的核心支持者,给了我莫大的鼓励和支持。2016年10月份的时候参加了在米兰的比特币开发者大会,然而整个大会却不允许对当下最紧迫的扩容问题进行讨论。 原以为只有在中国才有的言论管制出现在了最为倡导自由的比特币社区当中,真是莫大的讽刺。 参加完大会后,我就在自己矿池的区块标记中添加了Bitcoin Unlimited的标识,并公开宣布支持Bitcoin Unlimited,这引起了轩然大波。

平心而论,我实际上是比特币拥堵的受益者。我们知道比特币挖矿的收益包括两部分:新币奖励和交易手续费,随着比特币挖矿奖励的逐步减半,新币奖励逐渐降低,而交易手续费预期将随着比特币得到普及而提高。在2016年之前,比特币交易手续费占比微乎其微,此时比特币矿池默认的潜规则是交易手续费收入归矿池所有,是不分给矿工的。而随着2016年初比特币开始拥堵,比特币交易手续费逐步变得可观,我首创了PPS+的收益分配模式,首次将交易手续费也额外的分给了矿工,增加了矿工的收入,因此获得了很多客户的信任。后续其它矿池也开始跟进,成为了事实上的标准。另外,我也首创了比特币交易加速器,用户可以提交比特币交易ID,我们矿池会优先打包这个交易,并且规定每个小时可以免费为前100条交易加速。这个产品随着比特币拥堵问题的加剧开始病毒式的传播,每当有人抱怨他们的比特币交易迟迟没有得到确认时,都会有人丢给我们交易加速期的链接。很快,每小时100条免费额度变成了秒杀,这个产品给我们带来了巨大的流量和品牌的传播。

但是,早期比特币的参与者和投资者都是对比特币怀着巨大的热忱的,实在不愿意看到比特币变得这么难用。在早几年,微软、戴尔等巨头纷纷开始支持比特币支付,而随着比特币拥堵的加剧,比特币逐渐变得不再可靠,反而开始纷纷取消对比特币的支持。如果只是从精明的商人的角度,支持扩容和分叉是无利可图的,甚至会背负骂名。但如果不是因为信仰,谁会去做这些傻事呢。很多人喜欢阴谋论,但我从来对和我意见相反的人保持最大的善意,大家只是理念向左罢了。至于谁对谁错,只能交给历史去评判。

我开始积极的联络着各大矿池,希望他们一起支持BU(Bitcoin Unlimited)。矿工在这件事情上几乎是毫无立场的,像局外人一样,主要还是靠矿池经营者决策。虽然希望渺茫,但必须一试。逐渐开始有一些矿池被我说服,开始宣布支持BU。我帮助Roger Ver建立了Bitcoin.com矿池,他也旗帜鲜明的支持BU。江卓尔也创办了自己的比特币矿池,也是大区块的主要支持者。特别是比特大陆最终也公开宣布支持BU,一下子让BU获得了超过50%算力的支持,BU节点的数量也大幅上升。似乎再争取一下,BU就要成功了。但就在这紧要关头,BU连续出现了几个严重的BUG,每次都导致大面积节点掉线。这下子Core支持者开始狂欢,开始疯狂的诋毁大区块派,中立者也逐步开始不信任BU的技术能力,开始倒向Core。

扩容问题开始陷入僵局。扩容问题的本质并不在于通过什么方式扩容?是否要硬分叉?是否支持SegWit?是否支持闪电网络?而是是否要扩容的问题。扩容派也提出了多个软分叉的扩容方案,但都被Core拒绝了。SegWit解决的并不是扩容问题,而是解决了比特币一直存在的交易延展性问题,并且为未来升级比特币协议提供了更简便的方式。闪电网络和扩容更不是冲突的,甚至闪电网络也需要扩容才能真正的运行。 扩容问题的本质是双方对比特币和去中心化的理解不一致。 大区块派认为比特币是一个支付网络,其价值来源于交易,交易越多,价值越高;而小区块派认为比特币是价值存储网络,不需要特别频繁的交易,当前的区块大小已经足够使用了。大区块派认为比特币得到越多的采用,越多人的支持,会变得越去中心化,就算区块增大,也会有足够多的人负担的起运行节点的费用;而小区块派认为增大区块会增大比特币运行成本,会导致比特币变得中心化。 可笑的是,小区块派认为一笔比特币转账交易需要支付超过 100 美金的手续费是合理的,而运行比特币节点的硬件设备成本超过 100 美金却是不合理的。

由于Bitcoin Core开发团队历史以来积累的声誉和路径依赖问题,加上随着牛市的来临,大量新入场的投资者对比特币并不十分了解,希望以稳定为主,因此Core主导的小区块逐渐占了上风,BU彻底落败。比特币扩容之争持续了接近三年一直没有分叉的原因就是因为没有人希望看到比特币分裂,所有人都惧怕分裂,惧怕分裂导致的价格崩盘。甚至有人提出用算力杀死小链,确保比特币不分叉的方案。 殊不知,链可以杀死,但意识形态杀不死。比特币分叉的背后是意识形态的分叉,只要有人支持,一个币总是可以以某种形式存活下去。

我逐渐意识到试图说服所有人达成共识已经是不可能的,社区里面开始有人提出小算力分叉的想法,我开始倾向于支持通过小算力分叉来开创一条独自发展的道路。我和其它人分享了这个观点,大多数人还是不希望比特币分裂,还是希望通过大算力分叉的方式实现比特币扩容升级,以确保比特币不发生分裂。 不过好在小算力分叉并不需要得到其它人的支持就可以干,小算力分叉出一个新币已经是大区块派唯一可选的方向了。

这个时候大多数大区块派还寄希望于纽约共识达成的2MB加Segwit方案,我很明确的指出了这条路是走不通的。虽然这个会议得到了90%以上的算力和绝大多数交易所、钱包服务商的支持,但 矿工只是一群乌合之众罢了,无法有效的达成一致 。虽然绝大部分矿池都打上了支持纽约共识的标记,但谁又能保证他们真的都运行了新的版本呢?贸然行动的矿工大概率会面临损失,这类似于囚徒悖论,矿工最有利的选择还是运行老的版本。并且新的软件版本只有一个Github代码库,正式的官网和下载地址都没有,怎么得到公众的信任呢?

小寒也做了两手准备,在支持纽约共识的同时,把小算力分叉当作为备份方案。我们一开始希望BU能够开发出可用的软件,但他们迟迟没能开发出稳定的版本。这个时候一个新的开发团队Bitcoin ABC突然横空出世,迅速的开完成了一个高质量的可用版本。当时Core团队核心成员发起了UASF(用户激活软分叉)运动,准备强制在2017年8月1日强制激活Segwit,于是我们也选择在8月1日这天开启UAHF(用户激活硬分叉)。新的实现在比特币的基础上把区块大小上限提升到8MB,并且修改了难度调整算法,使用一种称为EDA(紧密难度调整)的机制。比特币的区块难度规则是每2016个区块(大约两周)调整一次的,如果新的链沿用这个规则的话,矿工会付出巨大的沉没成本,很可能会导致这条链胎死腹中。通过EDA,挖矿难度会在出块速度变慢时迅速的降低,以吸引矿工。关于新链的名字,我们各自想了好几个,最后选择了小寒提出的Bitcoin Cash。 这个名字取自比特币白皮书的标题: Bitcoin: A Peer-to-Peer Electronic Cash System,也准确的表达了比特币成为支付系统的理想。

临近分叉的时候ViaBTC已经不仅仅是一家矿池了,在大约两个月前我们上线了ViaBTC交易所,支持人民币与比特币的交易。我们一方面在矿池上提前开放了Bitcoin Cash挖矿的选择,选择Bitcoin Cash的矿工会在8月1号的时候自动进行Bitcoin Cash的挖矿;另一方面在交易所开放了Bitcoin Cash期货的交易,用户可以充值BTC进来,以冻结BTC的方式释放出BCC进行提前交易。于是Bitcoin Cash还没有真正诞生的时候,就提前有了算力和价格的支持,一下子获得了全球很多人的关注。

在分叉前还有一个插曲,我们发现Bitcoin ABC的实现并没有做交易防重放处理。什么意思呢,如果没有做交易防重放处理的话,分叉后用户在支付BCC的同时很可能也会支付BTC,这是非常危险的,也会给用户带来很大的麻烦,很有可能会导致分叉失败。在和开发者紧急沟通后,他们添加了防重放处理, 这会让 Bitcoin Cash 变得和现有的基础设施不兼容,但为了活下去,也只能这么做

具体分叉生效时间是北京时间8月1日晚上8点,由于Bitcoin Cash硬分叉规则要求第一个分叉区块大小必须大于1MB,因此我提前准备了很多交易,用来塞满第一个区块。我也把我精心准备的一句话“Welcome to the world, Shuya Yang!”放入到了区块。这句话一语双关,一方面庆祝我马上要出世的女儿,另一方面也是庆祝Bitcoin Cash的诞生。晚上8点到了,一下子涌入了很多算力来挖Bitcoin Cash, 但却迟迟没有出块。挖矿过程更像是摇筛子,是一个概率游戏,是否能挖到矿,不仅仅看期望值,也要看运气。第一个块迟迟没有出来,我一再的检查系统,确保没有任何错误,焦虑的等待着。直到6个多小时后,一直到凌晨2点,第一个区块终于诞生了,由ViaBTC挖出。Bitcoin Cash自此诞生了!几分钟后,另外一个区块也由另一个矿池挖出,原来还有人也在默默的支持Bitcoin Cash。我们能抢到第一个区块,实属运气。

Bitcoin Cash的成功分叉引来了大量人的关注,交易所的注册用户猛增,分叉第二天仅一天的用户注册量就超过了1万,这超过了我们上线两个月以来总注册量的十倍还多。好在我们系统一开始就是按照海量用户的目标进行设计的,在面临业务的极速增长时毫无压力。当时团队也只有十个人左右,财务是压力最大的部门,负责用户的法币充值提现业务,由于业务量增长太快,我们也受到了银行的特殊关注。交易所的成交量也急剧放大,每天的成交额达到了数亿人民币。 如果不是由于马上来临的九四政策而被迫关停, ViaBTC 很可能会迅速成长为全球最大的数字货币交易所之一。

Bitcoin Cash已经成为了不可忽视的力量,很多交易所被用户倒逼被迫向用户发放Bitcoin Cash资产并开放交易市场,迅速的,Bitcoin Cash得到了几乎所有交易所的支持。大量大区块支持者开始转向支持Bitcoin Cash,在纽约共识彻底流产后,Roger Ver等大区块派也全面转向了对Bitcoin Cash的支持。自此,比特币正式分裂了。比特币的价格也并没有像以前所有人担心的那样崩盘,只是在8月1号分叉后,价格进行了短暂下跌除权后,继续恢复上涨。

Bitcoin Cash早期的EDA策略也非常成功,确保了其可以在小算力支持的情况下成功存活下来。不过也带来了一个意料之外的副作用,EDA只会在出块速度变慢时调低难度,却没有调高难度的机制,这造成了Bitcoin Cash网络出块速度非常不稳定。另外,在难度快速下降后,Bitcoin Cash挖矿的收益远远高于挖比特币,这吸引了大量的矿工进行套利。我们也迅速的在矿池上面推出了根据收益智能切换挖矿币种的功能,吸引了大量的客户。由于EDA机制的缺陷,Bitcoin Cash迅速在11月份又进行了一次硬分叉,将EDA升级为DAA,新的算法采用逐块难度调整设计,可以保证Bitcoin Cash网络更稳定的运行。

结尾

Bitcoin Cash 虽然是扩容版本的比特币,但失去了比特币的一切,不仅仅是名字,也包括了所有的生态基础设施,一切要从零开始建设 。比特币虽然激活了SegWit,但扩容效果正如所料的那样根本起到任何作用。比特币变得越来越堵,高峰的时候一笔比特币转账费用需要接近1000美金,大量的应用开始转向其它竞争链。但比特币这个名字积攒了比特币运行多年带来的信用,比特币价值主要是由投资价值构成,而非使用价值。Bitcoin Cash还太年轻,在短暂的冲击到兑比特币0.5的历史高位后,价格开始一路下滑。比特币仍然凝聚着整个数字货币最大的共识,大而不倒。

在整个比特币扩容和分叉事件中,也暴露出来比特币事实上是由开发者掌握的,而非矿工。比特币的运转虽然是去中心化的,但治理却严重的依赖于中心化的决策。Bitcoin Cash同样如此,矿工决策从来没有真正的生效过。虽然Bitcoin ABC团队极力否认,但他们是事实上的Bitcoin Cash的领导者,他们开始主导着Bitcoin Cash每隔半年的硬分叉升级。 去中心化的治理在POW共识机制下面破产了,也许能够在POS共识机制下一定程度上得以实现。

Bitcoin Cash在2018年下半年又因为理念问题再次面临分裂,整个社区元气大伤。这次分裂的原因可以称之为滑稽,以后有机会再另起文章细讲。加上Bitcoin Cash的核心支持者比特大陆在2018年底遇到一些列问题,Bitcoin Cash价格跌到了历史的最谷底。

但即便如此,Bitcoin Cash仍然保持着强大的生命力,是比特币最有力的竞争者。Bitcoin Cash在过去两年诞生了非常多的应用,在不断的创造着属于自己的生态。而比特币扩容问题一直没有解决,寄予厚望的闪电网络也从来没有真正得到过普及。在未来牛市来临的时候,比特币必然将面临更为严峻的拥堵问题,而Bitcoin Cash做为大区块版本的比特币,届时也必将大放异彩!

2018年初,ViaBTC交易所在CoinEx上获得重生,CoinEx是第一家以Bitcoin Cash为主要定价货币的交易所,也获得了比特大陆的投资和支持。目前CoinEx已经成为了覆盖80多种主流数字资产的成熟交易所,并支持包括杠杆交易、合约交易、期权交易、期货交易等多种衍生品类型。此外,CoinEx公链主网也即将上线,CoinEx公链是专为DEX(去中心化交易所)而打造的,我们希望CoinEx DEX成为一个去中心化治理的、完全自由发币和交易的交易平台。CET(CoinEx Token)是CoinEx生态代币,是CoinEx公链的内置代币,我们将不断的完善CoinEx生态,提升CET的价值。

未来已来,现在或许是最坏的时候,但也将是最好的时候。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK