原标题:SegWit2x分叉之争:关于比特币硬分叉为何意见分歧如此的大
一部分比特币公司计划在今年11月份部署硬分叉将比特币的区块限制倍增到8兆字节。该方法被称为“SegWit2x”,这种不兼容的协议更改遵循纽约共识(NYA),并嵌入在BTC1软件客户端中。
SegWit2x引起了非常大的争议。 如果民意调查和期货市场具有代表性,那么就意味着大多数Bitcoin的开发社区、其他一些公司、一些矿池和大多数用户及市场都不在这个硬叉上。 其中有些甚至在“NO2X (抵制分叉)”的旗帜下进行着一场抗议运动。
注意:并不是所有的SegWit2x的支持者都赞成支持硬分叉的所有论据,并不是所有的对手都赞同所有反对的论点。这只是一般地(也许是不完整地)概述了各种各样的论点。
支持硬分叉(2X)
能够降低交易费用和/或更快的确认
许多支持放宽区块大小限制的人认为,比特币的主要价值主张之一是其作为支付方式的潜力。他们更喜欢比现在更便宜和更迅速的链上交易,并认为这是绝大多数用户都想实现的。 SegWit2x的支持者往往更愿意放弃比特币的其他标志性功能,如严格的审查制度。
使用更大的区块,比特币网络可以处理更多的交易。这应该会使平均费用下降、交易确认更快。或者至少能使攻击成本变得更加昂贵,因为如果他们想以虚假交易来堵塞网络,可能需要提高费用和确认时间。因此,SegWit2x的支持者认为,硬分叉使比特币的区块重量限制翻倍,将更快地吸引更多的比特币使用者。
反过来说,更快的采用(SegWit2x)可能会在几个方面使比特币受益。比特币的汇率可能会上涨,这也将增加矿工收入,可能会带来更多的哈希算力来保护比特币网络。同时,更多的用户可能会运行完整的节点,有助于地理网络去中心化。此外,比特币越来越受欢迎甚至可能使政府更难禁止。
这是一种妥协
“纽约共识”诞生于比特币的扩容争议之中,为应对由“替代协议”实施团队Bitcoin Unlimited发起的争议性硬分叉所带来的迫在眉睫的威胁。这种努力在很大程度上是由区块扩容的支持者和隔离见证(SegWit)协议升级的反对者所倡导的,比如说比特大陆和Bitcoin.com。
这些公司利用其矿池中的哈希算力来延迟隔离见证激活,同时计划使用硬分叉来使区块扩容。这可能会将比特币网络“分裂”成两个互不兼容的区块链和货币。
SegWit2x被提出是作为扩容争议的两方阵营之间的折中妥协。“一方”能实现隔离见证,而“另一方”又会通过硬叉实现扩容。大多数签署者认为,至少在存在争议的时候,这将是一种保持比特币网络团结性的解决方案。
这样是为了遵守承诺
虽然比特币的区块大小翻倍(可能)会降低平均费用和/或确认时间,但最近激活的隔离见证确实已经减少了这两个方面。因此,对于纽约共识的剩余签署者来说,更重要的是区块重量增加而不是协议本身。在SegWit激活之后、硬分叉之前的“过渡期”之内,放弃协议将会违反他们之前签署的协议。
不仅如此,现在也可以看出,隔离见证实际上并没有因为“纽约共识”而被激活,而是因为BIP148用户激活的软分叉(UASF)而被激活。由于BIP148具有争议性,在一些“纽约共识”签署者中,不少人并不认为UASF是真正的成功。
想要“开除”Bitcoin Core
目前,运行完整节点的大多数人都选择使用Bitcoin Core软件客户端,这是Bitcoin网络中的主要实现。有些甚至认为这是Bitcoin协议定义的“参考客户端”。
SegWit2x 的动机似乎隐约是想通过让大多数公司和矿工切换到BTC1软件客户端来消除Bitcoin Core开发者在比特币协议开发上的感知力或影响力。(应该注意的是,在这种情况下,“开除”实际上意味着“不再使用这些开发人员维护的软件”。Bitcoin Core开发者本质上是志愿者,不能从字面上被解雇,而BTC1客户端中的大多数代码都是Bitcon Core开发人员编写的。)
当然 ,Bitcoin Core开发者可以发布一款采用SegWit2x硬叉的新的Bitcoin Core客户端,使其与BTC1兼容,因此而与这些公司和矿工兼容。事实上,这可能是许多“纽约共识”签署者所希望的。在这种情况下,至少从这些签署者的角度看来,BTC1将有效地成为比特币的新参考客户端。
其他签署者可能更希望Bitcoin Core开发团队完全退出。在某些情况下,支持硬分叉可能主要是出于对Bitcoin Core项目的怨恨,并希望采取任何能抹黑他们的行动。
矿工是决定性因素
超过90%的矿工(通过哈希算力)目前正在向SegWit2x发出支持信号。虽然这种信号本身在技术上是没有意义的,但SegWit2x的支持者认为,矿工们将会遵循这一明确的意图。
一些SegWit2x的支持者认为,矿工们决定了比特币协议的未来——或者说这是矿工们应该决定的。如果一次硬分叉会导致两个互不兼容的区块链,他们认为无论哪个区块链都会用更多的哈希算力来证明它是“真正的”比特币。或者说,至少他们会保持这样一个拥有最多哈希算力的区块链,它将是更安全和更有效的“比特币”,也是人们想要使用的“比特币”。
反对硬分叉(NO2X)
这是对安全性的妥协
例如,较大的区块会增加用于运行完整节点的资源需求,比如更多的带宽使用、更长的新节点同步时间等等。这增加了个人用户以无需信任、最安全的方式参与网络的成本。反过来说,这种成本增加可能会对网络产生中心化影响,会导致运行完整节点的用户数量减少。
此外,较大的区块将减慢P2P网络上的区块传播,更大大矿工和矿池很可能会得益:另一种中心化效应。
在一定程度上限制网络吞吐量实际上可能是好的,因为这会增加费用压力,这反过来又会激励矿工维护网络安全,因为挖到区块的回报随着时间的推移而减少。
所有这些类型的风险最终都可能导致更加集中,因此会减弱审查制度和减少无权比特币。这有时被称为“PayPal 2.0风险”,也就是比特币将失去SegWit2x反对者认为的其定义特征和主要价值主张而降级。
随着隔离见证的激活,比特币区块大小从1M增加到了最大4M。有些人认为这已经是一种有风险的妥协了。SegWit2x将使这种风险翻倍,达到SegWit2x的反对者通常认为的对现在而言过大的8M。
反对“暗箱操作”
尽管细节不太清楚(这也是问题的一部分),但有人认为SegWit2x是在纽约一家酒店、数字货币集团主办的邀请制会议期间,由几家著名的比特币公司的一小群高管内部制定的。
在他们认为是扩容争议中双方妥协并达成同意之后,他们与其他公司签署了协议。声称协议代表所有这些签署者的总用户群,也即是所有哈希算力与所参与的矿池相连。
此外,虽然BTC1技术上有一个开放的关于开发的邮件列表和一个开放的Slack讨论频道(尽管两者最初都是关闭的),但是在这些场景中并没有太多的讨论。这意味着,根本没有太多的关于开发的讨论,或者说这些关于开发的讨论也是在一个未知的封闭环境中进行的。
所有这一切都与Bitcoin诞生的开源精神形成鲜明对比,而Bitcoin的发展历程仍然渗透到现在。例如,Bitcoin Core开发者在IRC上公开见面讨论时,在公共邮件列表中讨论比特币潜在协议修改(BIPs),这两个通信渠道都比较活跃。
此外,SegWit2x的反对者通常认为Bitcoin的一个关键特性是用户可以掌控自己的钱。虽然第三方公司可以提供服务,但SegWit2x的反对者认为这些公司不应该代表客户来定义比特币,而且绝不能代表所有的比特币用户。
所有这一切不仅仅是原则问题:反对者认为SegWit2x实际上可能会开了不好的先例。如果一小批公司被证明能够有效地控制比特币协议,那么这些公司可能会成为(比特币)失败的重要原因。例如,政府可能会对他们施加压力来引入黑名单或其他破坏(反对者认为的)比特币核心特征。
反对“开除”Bitcoin Core
虽然Bitcoin Core确实是比特币网络的主要客户端,但这只是因为用户自愿选择运行该软件,而且,至少许多SegWit2x的反对者都乐意这样做。他们根本就没有想要“开除”Bitcoin Core开发团队。
现在还不能说,如果有任何一组开发人员可以或将会取代Bitcoin Core当前的开发者,他们就应该被“开除”。毕竟世界上对比特币代码库或内部运作有深入了解的人还不是很多。
例如,BTC1真的只有一个开发者在做大部分工作:Bloq首席执行官Jeff Garzik。 Garzik确实有在Bitcoin Core代码库上工作的经验,但他的核心经验并不在于达成共识的关键代码。这也意味着测试和评估BTC1是相当小程度的。
虽然一些SegWit2x的支持者希望并相信Bitcoin Core开发人员将融合SegWit2x代码,或以其他方式将重心放到硬分叉之后Bitcoin的SegWit2x版本,但这似乎是不可能的:该项目甚至罕见的发布拒绝SegWit2x声明。相反,如果SegWit2x硬分叉成功,并且当前的Bitcoin协议停止运行,几个Bitcoin Core开发人员已经表示,他们会认为这个结果代表了Bitcoin本身的失败,并将选择完全转向不同的项目。
最后,应该注意的是,虽然Bitcoin Core占主导地位,但它并不是嵌入当前Bitcoin协议的唯一软件客户端。Bitcoin Knots、Libbitcoin、Bcoin以及一系列其他替代客户端也能实现。可以说 SegWit2x“开除”的不仅仅是Bitcoin Core,而是整个开发社区中的大部分。
反对有争议的硬分叉
由于并不是每个人都认同SegWit2x硬分叉是最好的方式甚至说是有好处的,所以是有争议的。许多SegWit2x批评者反对任何有争议的硬分叉,主要有以下两个原因。
第一个原因是哲学问题。SegWit2x的反对者认为,比特币像黄金一样的抗变化性是其关键价值主张之一。更具体地说,他们认为,不应该根据用户的意愿改变系统的规则:这将破坏对这种类型的货币的信任。
第二个原因是类似的,但更具技术性:不仅不会根据用户的意愿改变规则,而且不能根据用户的意愿改变规则。因为只要用户运行完整节点,并且不切换到SegWit2x,原始的比特币协议将继续存在。因此,像SegWit2x这样的硬分叉根本不会改变现有的比特币;相反,它将创造一个新的区块链和新的货币——分裂成两套生态。
这也解释了为什么SegWit2x不被反对者认为是“妥协”。对于他们来说,SegWit2x硬分叉并不是一种折中妥协。相反,这样有争议的硬分叉是他们不想要的东西。
这次硬分叉太草率了
即使硬分叉没有争议,SegWit2x的反对者也会认为这太着急了。因为需要每个人都升级了才算是硬分叉成功,也就是说,不存在分裂——那么,许多人认为,典型的硬分叉应该至少需要一年的时间,甚至是两年或更长。
SegWit2x的时间是在隔离见证激活后3个月、协议达成后约6个月。反对派人士认为,即使对于无分歧硬分叉来说这也太短了,更何况是存在争议的。
缺乏重放保护
如果SegWit2x确实导致分裂成两套生态(尽管目前缺乏共识表明),就会产生两套具有共享历史的区块链和币:一种遵循当前的比特币协议,另一种遵循SegWit2x协议。任何持有比特币的人在分叉时都将拥有这两种币。
但这也意味着大多数交易在两条区块链上同样有效。每当任何人想要在一条链上发币时,这个完全相同的交易可以在另一条链上“重放”,这意味着一次交易实际上花了两种币,即使这是无意的。这被称为“重放攻击”,很容易导致资金的损失。
如果BTC1实施“重放保护”,则可以防止这些重放攻击。但是目前来看,BTC1团队并不打算实施这种保护;至少不是以“重放保护”的方式解决这个问题。
不少人认为这种缺乏重放保护的分叉是破坏性的,甚至是鲁莽的,其中包括硬分叉的反对者,甚至还有纽约共识的几个签署者:有些已经因为这个具体原因而退出了。
会导致品牌混淆
如果分裂双方的用户(和服务提供商)认为他们的硬币是“真正的”比特币,那么不难想象会导致各种各样的并发症。例如,用户想从交易所购买一种币却买了另一种币。或者他们向商家发送一种币却发送了另一种。还有更多类似的场景。
这种混淆很容易导致资金流失,甚至可能引发诉讼和类似问题。(即使使用换了一个新名称的比特币现金(BCC),并且运用了重放保护,但地址格式还是原来的;很多情况下还是有用户会将比特币发送到BCC地址。)
SegWit2x的反对者认为,这是遵循新协议的币,应该选择一个新的名称。但到目前为止,纽约共识签署者并没有表示愿意这样做。
不应该坚持已经被打破的协议
虽然纽约共识的目的是将保持比特币网络的一致性,但SegWit2x的反对者认为这个协议本质上已经被打破了。
隔离见证确实在比特币网络上激活,可能部分归功于SegWit2x,但也受到了BIP148 用户激活软分叉(UASF)的煽动。然而,一些支持硬分叉来实现区块扩容的人(和隔离见证的反对者)也启动了BCC作为回应。这导致了比特币和BCC区块和货币之间的“分裂”,与Bitcoin Unlimited可能导致的分裂并无不同。几名纽约共识签署者(包括比特大陆和Bitcoin.com)支持这次分叉,SegWit2x的反对者认为这将丧失原来SegWit2x的目的。
除此之外,还有其他几名签署者正式撤回对此次分叉的支持,原因是前面说到的缺乏重放保护或其他原因。
因此,SegWit2x的反对者认为,协议的所有意图和目的经已被打破,剩下的签署者没有理由坚持。
矿工不应该是决定因素
SegWit2x的反对者认为矿工应该做的是按照用户及其全部节点客户端实施的协议规则,而不是制定协议规则。如果矿工挖到的区块与用户定义的比特币协议不兼容,这些矿工根本就不是在挖比特币。相反,他们生产的“区块”只会被用户网络拒绝,这些矿工挖到的是不同的币,或者说就是在浪费哈希算力。
而且这不仅仅是一个原则问题。如果专门由矿工们通过哈希算力来决定哪个协议是有效的,那么这意味着他们可以随意改变协议规则。这甚至可以让他们改变通货膨胀的进程,以消除2100万的比特币数量限额、窃取资金等等。
事实上,NO2X的抗议活动与BIP148的UASF有相同点:两者都希望保障用户的决定权。用户决定要买币、收款和/或持有。因此,应该由用户决定哈希算力用于哪个协议:原始的比特币协议或SegWit2x协议。这次矿工们在争论的只是他们想要挖矿的方案,这是两件不同的事情。