比特币的路线之争是指什么?2017年比特币社区发生的扩容相关投票是怎么回事?

周边参考 blockchain 来源:古土雷柏 4个月前 (03-12) 73次浏览 0个评论 扫描二维码

比特币作为软件工程项目,代码其实不多,整个工程的版本库托管在 github,在这个 github 上面还有数百万个其他开源软件项目,关于 github 和开源软件的运作方式,相关的资料比较丰富。软件开源社区在代码托管这个层面的管理方式都差不多,具体实现依托 github 或类似的平台,这些平台本身技术标准大都也是开源的。

这个问题拓展开来,所谓路线之争,就是谁有资格修改比特币核心代码、谁来决定修改哪些代码、修改后的代码是怎么上线运行的这一系列的问题。这些问题的背后就是社区政治,有人的地方就有江湖,有江湖就有政治,比特币社区也不例外。在知乎上面讨论比特币,除了包括有技术属性、经济属性、投机属性之外,它的政治属性这方面探讨目前还是比较表面的,有时连这样的问题知乎管理员也不放过,所以一般很难深入探讨。

直接参与比特币核心代码开发的人员,现在有 400 多名,这批人里面最资深的 30-50 人,组成了所谓的核心开发组,这些人来源多样,社会化合作生产模式,有些匿名参与者到现在身分不明,只贡献软件代码。核心开发组并不是一成不变的,有些人会加进去,有些人会被踢出来。还有很多人虽然不直接参与比特币的代码开发,但是都会看比特币的代码,这样的“眼睛”是无数的。

代码开发是任何人都可以参与的,而核心开发组这批人控制着最后软件的代码审查、版本化发布,这是离上线只有一步之遥的把关。

作为一个 P2P 软件,比特币的上线运行,由节点自行决定,目前分散在全球上万个节点,如果版本不被节点广泛认可,那么比特币就会保留老版本的运行状况。因此比特币的软件不会由少数几个人决定发布新版本的,而是通过以下流程进行软件迭代:

1、BIP 技术建议方案提交,包括对应基于改进建议、具体问题的解决方案、技术思想、实现方式、代码。以建议方案的方式提交,这些提案经过初步讨论修订后,会分配一个唯一的编号,目前有几千个。不管最终有没有实现,都得先有具体的提案。

2、根据提案的必要性、可行性、轻重缓急进行讨论,这些提案会逐步被确定,哪些是要进去落地实施的阵列里面。讨论的范围根据提案对软件的影响程度而定,有些改动属于微小的迭代,可能几个核心开发组的经过一段时间的征询没有任何人提出异议就实现了。越是底层的本质上的变动,影响越大,讨论范围越大,比如持续了三年之久,闹得沸沸腾腾的比特币网络扩容争议,参与讨论的范围极广。

3、提案获得大范围的共识之后,就会进入实施。判定是否大范围共识,一个是核心开发组里面没有太大的争议,这块可以认为是专家层意见,主要是技术可行性把关。一个是社区所有利益相关群体代表取得一致。如果有争议,这一步就无法通过,最后裁决的方式是通过节点投票机制解决。

4、共识达成,对于核心开发组而言,就获得了社区“法理”上的依据,可以启动对实现代码的审查工作,以及运行测试。因为只有法理上的基础,代码上线才会得到节点的广泛认可,否则这个活干了也是白干。代码审查有时持续数个月(比特币是典型的开源社区,也有义务劳动的弊端),然后测试,测试完了发布版本。涉及到可能造成硬分叉的改动,这一步一般会达到半年甚至更长,主要是因为这个比特币的经济属性原因。

经过不到十年的发展,比特币社区的政治成熟度已经是比较高的,标志性的事件是 2017 年成功实施的 BIP91,解决掉了长达 3 年之久的扩容争议。这个事件,标志着社区的政治协商体制、投票机制、政治博弈的平衡机制,都已经建立起来了,未来具备了应对重大挑战的政治基础。BIP91 号提案,是以技术上通过节点投票收集共识信息,根据投票结果选择自动激活或不激活软件功能的一个解决方案,也就比特币的隔离认证功能,这是实现闪电网络的基础条件,这个功能的激活,最终排除掉了另外一条扩大区块容量的扩容技术路线。因为收集到了 98%以上的节点认可度投票,软件功能自动激活,这个改动没有硬分叉风。这等同于消除了一个极大的不确定因素,之后比特币开启了新一轮的牛市与这个事件是有一定的关联的,至少于我个人作为观察者而言,极大地增强了对比特币社区政治运作成熟度理性认知的信心。已经在经济和技术上取得一些突破的比特币,如果政治上幼稚,那么后继发展也走不远。

社区政治运作的成熟,不是一蹴而就的,是分几个阶段。像一些社区项目,其实就是几个人,甚至是一个人说了算,这种一言堂,投票次次都是 100%通过。这种威权政治,其实是处于比较低的政治成熟度,不能包容多元价值,争论起来反正解决不了,干脆不争论。比如以太坊社区是一种大基金会模式,基金会对社区进行输血,加上创始人的威望,社区看起来就很和谐,金钱+威望双重加持。包括一些由少数个人、组织或公司推动的项目,政治生态文明也都是停留在这一步。这倒不一定会影响项目的技术迭代和经济价值成长,甚至因为决策链条简单,运行起来更有效率,简单粗暴有效。低成熟度的政治体制,可以选择一直不进化,享受威权政治的便利,当然,也得面临威权政治的巨大隐患,比如利益链条的断裂、核心人物的变动等问题造成的致命动荡。

由于多元价值争议,引发的全方位的冲突,是迈进更高政治成熟度的必经之地,在这个过程中形成应对更高层次挑战的体制。对于以去中心化为核心价值的比特币社区,迈过了威权政治(中本聪的消失),迈过了多元价值的冲突政治(三年的扩容路线争议),进入下一阶段高度成熟的政治体制无疑是应对持续挑战,以及更长远发展的重要基础。

这里有必要再说一下 BIP91 的落地过程,它的政治意义远大于其技术意义。因为理念和利益存在不可调和性,社区协商了推进了选择扩容技术的投票规则,以 BIP 提案形式经公开讨论和验证,并写进软件,第一个进入投票流程的 BIP141:

BIP141 内容:由 95%用户以上投票(投票方式:矿工发出 bit1 位标记的区块),自动激活隔离验证。这个提案是完全排除区块扩容的,也就是这条路线通过,区块扩容路线就被否了。2016 年年底就开始投票,一直到 2017 年 3 月,实际有 45%支持率,无法激活。

BIP141 无法激活,这个时候第二个提案被提出来,即 BIP148,显然这个提案是支持隔离验证路线的一方提出来,定义一个时间点自动激活,矿工自愿选择安装,安装=投票支持,不安装=不投票弃权、反对。

BIP148 内容:拒绝非 bit1 的区块,目的是为 BIP141 扫除障碍。这是一个霸王硬上弓的提案,约定 2017 年 8 月初启动,安装 BIP148 的节点要强制排除不支持 BIP141 的区块,其实目的就是逼不支持 BIP141 的 55%矿工就范,否则分叉。这个提案保守能拿到 80%保底的支持,但按照比特币的挖矿算法,55%矿工如果有个 10%左右不就范,硬分叉就成定局。

BIP148 出来后,指定了投票日期为 8 月初,如果 BIP148 达不到大比率支持,硬分叉就势必会发生,随着日期逼近,比特币社区的利益群体各自派出代表,在香港和纽约都组织了会议(临时性质),过程不表,反正最后出来一份各方均签署同意的协议,即 segwit2x。这个 BIP148 的推出起到了这个效果,就是大区块路线支持者做了一定的妥协,明确表态,不让他们耗下去。

segwit2x 内容:这不是一个提前准备好的提案,是比特币相关的一批公司代表在纽约开会签订的协议,即激活 segwit 没问题,顺带加上 2MB 区块(从原来的 1MB 扩容一倍)。可以视为临时提案。规则是 80%用户投票激活(用 bit4)。紧急妥协的结果,分叉是两败,所以大区块路线这边妥协后(接受 segwit,但需适当扩大区块),出来这么一个临时提案。这个协议解决了矿工之间的分歧,至少面上是这样,之前矿工之间各种混乱的声音,被统一起来,纽约会议把这一步做到位了。

到目前为止,隔离见证路线和大区块的政治底线没法重叠,事态如果不加以干预继续下去,分叉发生变成大概率事件,但 BIP148 和纽约共识协议的推进,给另外一种协商方案的出台铺平了道路,即 BIP91(编号低,只是代表其初次提交修订版本时间早,跟其实施队列的位置没有关系,以后我们还会看到很多早期编号的提案进入实施阵列)。BIP91 赶在了 8 月初之前,即 BIP148 启动截止日期之前,摆到了台面上,这个提案对两条路线兼容,即这次投票,通过的话先激活锁定隔离验证(使 BIP148 自动废掉,投票仍然进行,但已变得无意义),然后等待到年底,再投票启动区块 2MB 扩容。这个方案被认为是符合纽约协议的,即既投票隔离验证功能的锁定,也不反对 2MB 扩容。

BIP91 内容:即矿工投票同时使用 bit1 和 bit4,投票数达到 80%(相对 BIP148 的 95%通过门槛下调了),segwit 隔离见证激活,并锁定(等同于通过 BIP141),这样 BIP141 通过的同时,也没有排除 segwit2x。注意,这里的 bit4 投票,是表示不排除 2X 的意思。后来有人说怎么 segwit 过关后,最后把 2x 扔掉了,其实 BIP91 规则本身就只是给 2x 搭舞台,不包含任何运行 2x 的确定性(这部分,连代码都没有)。

如上所说,本来支持 BIP141 的已经有 45%,另外 55%矿工通过纽约协议,也有妥协方案,支持 BIP91,不会否决 segwit2x,因此两者相加,BIP91 在 8 月初之前,获得 98%以上节点支持,成功激活隔离验证。为什么事实上是先投票锁定隔离验证功能,而不是先改区块大小,是因为隔离验证的提案的完备的,而 segwit2X 是临时提案,没有完备的 BIP,也就是没有通过技术审查。后来一直有人拿这个说事,说核心开发组不听话,不就是写代码嘛,怎么不按纽约协议共识把代码写出来。但这是完全不理解来源社区的玩法,在瞎搅和。比特币核心开发组跟知乎一样,也是非常的政治敏感,没有 BIP 提案,没有干这个活的必要性,干了说不清楚,是不是收了某些公司的好处,里面也有支持这个区块适当扩容的,但至少面上不能冒出来主动去推动。所以,segwit2x 分成两部分投票推进,先做 segwit,后做 2X,客观的就是技术上的原因。注意,即使先单独做 2X 投票,通过概率也渺茫,因为倒向 segwit 的有 45%打底,所谓纽约协议,就是意识到 segwit 通过概率较大,跟它做一个捆绑(买一送一),利用已有的筹码,协商一起带过关的意思。这个规则很显然,如果 BIP91 通过,segwit 得到激活,几个月后的 2x 投票还需要做很多工作,才有机会。包括拉票、技术提案的完善和推进,甚至台面上、台面下的一些交易。以大矿商为主体的大区块党里面没人愿意干这件吃力不讨好的事情(或者从一开始就没有打算干),直接撮合起来去搞了一个 BCH,目的完全暴露,等于放弃了这次投票和拉票。BCH 这件事情所暴露的大区块党目的是很清晰的,也就是大矿商所操纵的大区块党缺乏对技术路线、发展愿景等宏观战略的自信,没有投入力量积极研发底层技术协议(毕竟他们只是研发挖矿这个细分领域为主),也不适应社区政治玩法,就是搞公司那一套,反正认准哪个东西对自己利益最大化就搞什么东西,凡是不听他的,他采用攻击这个制度抹黑对手等少数手段为主。核心开发组是比特币社区事实上的议会,权限的极限就是推动到 BIP 启动表决这一步,然后投票表决权在用户,各方权力是制衡的,要不这个扩容路线争议也不会持续三年,争取自身利益,应该有懂政治的技术专家做代表进去核心开发组,这样的人要求能够深刻理解比特币的宏观愿景目标,且能够做底层协议研发,大区块党好像这样的人一个都没有,他们也认为不需要,反正区块大小就是改改改,分叉分叉再分叉,挖矿挖到飞起,如果能顺带利用比特币这个大杀器带动市场节奏,割韭菜割到飞起,那就更加美好。

下图是开发人员对提案的个人独立意见,这部分可以认为是专家意见,核心开发组和其他相关的开发人员,绝大部分都认为 BIP141 激活 segwit 是最好的(无风险),次优用 BIP148/BIP149 推进(不给 2x 区块扩大留任何机会,BIP149 是 BIP148 的后招,即 BIP148 失败,下一步就是 BIP149,因为 BIP91 已经使 BIP148 无意义,所以本文上面没有提及 BIP149,也没有启用,但每一个提案的前期技术准备工作是大量的充分的),实在没办法,勉强接受 BIP91(激活 segwit,也给 2x 搭一个舞台),肯定不支持 segwit2x 硬分叉(COOP 是实施 segwit2x 的建议,可以认为是纽约协议附件,同样没有形成 BIP)。这里我们看到一面倒的专家意见,启动 segwit,在技术路线上消除掉长期硬分叉风险,对于以“货币”为应用的比特币,不能像别的软件那样进行稀疏平常的分叉。当然,因为这样,主张压制矿工矿商的声音也是不对的,即使意见不同,所有人的发言权也是值得捍卫的,谁也没有资格让别人闭嘴。为了解除技术风险,埋下了政治风险,那也是不智的。如上所述,一言堂的政治是初级的、不成熟的,终有一天遇到无法应对的高级挑战而崩盘。从这个角度比特币社区暂时甩开以太坊两条街,不过,随时以太坊社区的进化,最近也开始扯皮起来了,有个 EIP 扯来扯去扯来扯去搞了半年还在搞。

我们可以看到规则上是透明的,过程是公开的,投票的各个利益方,最终都做出了理性的选择。结果,隔离验证激活后,到了 2017 年 11 月份,扩容 2MB 的投票,支持率变成不到几个百分比,没有通过。扩容路线之争,尘埃落定。隔离见证路线的 45%本来就不支持 2MB 区块(BIP91,只是不排除 2X 投票,而不是投下支持),所以不会去投 2X 支持票,而 55%矿工大部分意识到投票无望通过,且通过大区块党本身搞 BCH 降低了区块扩容需求,也直接放弃(否则也是硬分叉)2x 投票。何况,同时,支持隔离验证一方一直没有停止社区活动,持续发起“NO2X”一系列的拉票活动(拉否决票)。我们惊喜地发现,这些不发工资都在干活的一方,爆发出来活力秒爆领工资在干活的一方。这个事情本来也就结束了,但少数投机分子(主要是交易所和炒家推动),接着号召算力投入挖出一条 2X 分叉链,大区块党先是表态支持,但最后大区块党主要的 6 个人发表了一份联合声明,放弃投入算力支持。因为很显然小算力分叉无法成功,即使成功,等于要分散掉 BCH 的一半投入给投机炒家抬轿子(本来自家的 BCH 就很危险)。基于核心利益层面的考虑,大区块党自然应该作出如此决策,只是,很多被带坑里去的小矿工和散户,把这笔帐记到了大区块党头上,损失了部分政治信用值,等于先弃义,后背信。投入 segwit2x 分叉的算力一直很少,且软件出 bug(据说是一个人的作品,没有经过严格 BIP 代码审查工作),分叉那边本来看着应该能够出几个块,但啥也没发生,bug 卡死,彻底流产,投机派信用接着破产,押注分叉的激进散户血流一地,社区嘘声一片。

总结起来,回过去看,大区块党不外乎 10%算力以内,对技术的认知毛躁(从其代码实现可见),支持隔离验证的有 45%,而中间没有主见的占 50%左右,隔离验证路线胜出,在政治上是合理的。

在各方共同认同的规则下,有一方胜出,保持了 90%以上算力的一致性,比特币并没有产生分叉,危机彻底解除。这里面,各种政治手段得到充分的运用,解决了一系列浑水摸鱼的难题。2X 分叉彻底流产后很快地,市场给出正面响应,趁势把比特币价格推高到了突破 2 万美元单价的历史最高点。

所以,我认为这是社区政治走向下一阶段成熟的标志性事件。


喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址