升级比特币,第 1 部分:硬分叉和软分叉的陷阱

比特币协议以发展缓慢而著称,与硅谷流行的“快速行动并打破常规”精神相比,它更倾向于可预测性和兼容性。 事实上,比特币网络没有经历过中断 自 2013 年 3 月起. 然而,比特币协议远非完美,与网络交互的软件仍在进行中。

然而,我们如何升级像比特币这样的网络,所有参与者都需要就规则和机制达成全面共识? 如果没有这样的共识,网络可能会分裂或“分叉”成两个或多个可互操作的链。 这会对比特币的价值产生影响,甚至可以“抹去”你最近收到的硬币。

阅读更多: ExpressVPN的综合比特币词汇表

最受欢迎的“全节点”软件 Bitcoin Core 即将发布 0.21 版本。 该项目的 Github 存储库中的数据显示,每周有 20 到 100 次来自数十名贡献者的代码库提交。 大多数这些代码更改只影响您本地软件的功能,而不影响整个网络,但有时,这些升级也需要推出,这不是一个简单的过程。

关于如何安全升级比特币存在很多争论和分歧。 这就是即将进行的升级可能会遇到挑战的原因:

网络分叉和共识模型

自区块链诞生以来,比特币网络由数十万个节点组成,每个节点都一丝不苟地验证每个区块中的每一笔交易。 比特币矿工有强烈的动机只创建遵循这些规则的区块; 毕竟,他们不希望在花费精力创建积木之后让积木“掉落”。

理论上,您可以在自己的节点中自由更改这些规则。 你可以允许更大的区块、更多的比特币或新的签名方案。 如果您可以说服周围足够多的人在他们的软件上实施相同的更改(或简单地运行您的版本),您可能会成功地将网络分成两半。 一方将拒绝根据此新规则集创建的块,而另一方将接受它们。 网络现在已经“分叉”,或者更准确地说,“分裂”,并且不再就规则达成共识。 这种分裂可能很快就会被放弃,但它也可以永远存在。 结果:两种独立的加密货币,每种都有自己的价值。

拆分链条

我们考虑两个派系,每个派系控制大约一半的节点和所有比特币矿工的一半。 他们对现有的任意规则存在分歧,因为 example 可以新创建的比特币数量。 “有限”阵营更喜欢比特币数量上限为 2100 万,代表现状。 然而,“通货膨胀”小组认为,一个小的、可预测的通货膨胀对于比特币网络的经济运行和健康很重要,他们继续配置他们的节点以允许在每个节点中创建多达 6 个 BTC新区块,永远。

虽然这两个组都由大约一半的矿工组成,反过来算力,他们将创造大约一半的区块。 然而,确切的频率取决于纯粹的机会。 对于那些运行“有限”节点的人来说,这不是什么大问题。 这些矿工开采的所有区块都将被用户接受,而“通货膨胀”矿工开采的所有区块都将被拒绝。 网络失去了安全性和用户并显着变慢,但等待“有限”用户并没有令人讨厌的惊喜。

然而,运行“通胀”软件的节点不仅会接受自己的矿工创建的区块,还会接受“有限”节点创建的所有区块,因为即使它们包含较少的新铸造比特币,它们仍然是正式的遵守创建“最多 6 个 BTC”的规则。

如果由于运气,“通货膨胀”链比“有限”链长,则网络分裂。 但是,如果“有限”链在某个时候变得更长,那么它也将被所有“通货膨胀”用户接受为有效,解开该链并使所有先前开采的“通货膨胀”块无效。 由于每条链在某些时候不可避免地会比另一条长,而且这个过程可以重复无数次,“无限”链只能通过实施额外的规则来呈现在旧规则集下创建的块才能生存作为无效,对于 example,要求每个区块包含“正好 6 个比特币”。

在流行的用法中,“网络分叉”用于描述链或网络分成至少两组的事件,但更准确地说,它仅描述了共识规则中提议的更改。 简而言之,网络分叉会导致链分裂,但如果执行得当,则不会。

收紧和放松规则

我们可以通过两种方式更改比特币共识规则:

  • 收紧现有规则集
  • 放松现有的规则集

这 example 上面首先显示了一个更宽松的规则集,因为虽然新创建的比特币数量最终会降至零,但新规则允许创建“最多 6 个 BTC”。

如上所示,安全地扩展规则集并不容易,需要绝大多数网络的支持。 为了安全地扩展规则集,可能不仅需要扩展规则集,还要同时收紧它(例如收紧另一个规则)。 无论如何,旧链在旧规则下可能会继续存在。 它被广泛认为是区块链的一个美丽特征,即使是极少数的超级少数也可能无法被说服接受规则的改变。

软叉和硬叉

因此,放松规则可以称为“硬分叉”,因为如果更改继续进行并积极部署,它几乎不可避免地会导致链中的分裂。

当收紧规则时,动态是不同的。 在我们所说的“软分叉”中,新节点创建的所有区块都将被整个网络接受,而按照旧规则创建的区块将被新节点拒绝。

然而,通过收紧规则来升级网络需要大量巧妙的工程,因为添加到共识协议中的新规则必须比以前的规则更具限制性。

以前的附加功能是通过 软叉,例如 2017 年的 Segwit 和 2015 年的 Check Lock Time Verify。Segwit 更新使用了“任何人都可以消费”地址的技巧。 这些地址在旧规则集下存在(但由于明显的原因不使用),并且非常宽松,因为它们允许任何矿工简单地从它们那里“拿走”资金。 在新规则下,来自这些地址的资金不能再由矿工使用,而是需要遵循新的隔离见证规则。 只要有足够多的节点验证这些新规则,这是安全的。

要激活软分叉,理论上只需要简单多数即可。 多数人越大,旧链取代新规则链的机会就越小。 这个多数到底需要多大还很难说,更难的是如何评估这个多数在实践中到底有多大。

如何安全地激活软分叉

虽然存在倾向于软分叉而不是硬分叉的趋势,但后者不可避免地会导致链分裂。

先前青睐的方法涉及“矿工信号”,其中每个矿工在每个区块中“投票”以激活升级。 一旦某个比例(例如,75%)的区块投票支持升级,它就会被“锁定”并在 14 天后激活。 然而,这给了矿工对升级的不必要的否决权,如 2017 年规模化辩论.

另一种选择是“用户激活软分叉”或“标志日”。 在这种方法中,用户运行的软件要求在一段时间后遵守新规则。 如果有足够多的用户参与,这可能会分裂链条。 目前尚不清楚需要多少用户(称为“经济多数”)来避免链分裂并迫使矿工仅根据新规则生产区块。

软叉的危险

许多危险的协议更新可以通过软分叉来实现,例如冻结比特币账户或要求发送者和接收者透露他们自己的交易的升级。 如果交易所被要求运行这种修改过的软件,它们会代表“经济上的多数”而使网络变得无用吗? [ How to destroy Bitcoin]

接下来:第 2 部分:升级比特币的缓慢而具有挑战性的过程

使困惑? 看看比特币词汇表