区块链分叉fork

曾经的以太坊因为 The DAO 黑客攻击事件,被迫硬分叉,ETH 分成了 ETC 和如今的 ETH。

温和的软分叉(Soft Fork)

软分叉可以理解为一种"收紧规则"或者是"向下兼容"的升级,旧的节点依然能接受新的区块。

假设原来的规则是:“每一页账本的大小不能超过 1MB”。现在,为了提高效率,大家决定在这个 1MB 的空间里把字写得小一点,腾出更多地方记更多的账。

村里有一半人升级了新规则(新节点),开始用小字体记账;另一半人还在用旧规则(老节点)。神奇的事情发生了:因为新规则(小字体)并没有突破旧规则(1MB 上限)的红线,所以在那些没升级的老节点眼里,新节点记的账依然是"合法"的。虽然他们看不懂那些小字体的具体含义,但他们依然承认这页账本有效。

比如比特币 2017 年的 SegWit(隔离见证)。

决裂的硬分叉(Hard Fork)

新规则和旧规则是彻底冲突的,原本的一条链硬生生地掰成了两条互不相认的链。

不过硬分叉并不全是"坏事"。它其实分为两种类型:

  • 计划内硬分叉(Planned Hard Fork):社区提前达成了高度共识,几乎所有人都会升级到新版本,旧链自然消亡,不会产生新币。以太坊的多次网络升级(如"伦敦升级"“上海升级”)都属于这种——虽然技术上是硬分叉,但因为全网共识一致,实际上并未产生链的分裂。

  • 争议性硬分叉(Contentious Hard Fork):社区严重撕裂,相当一部分人拒绝升级,新旧链各自存活,两条链上的资产独立运行。BTC 与 BCH 的分裂就是最典型的案例。

硬分叉免费的糖果

硬分叉最迷人、也最让人困惑的地方在于:它会创造出"平行宇宙"。

在分叉的那一秒之前,两条链的历史数据是一模一样的。所以,如果你在分叉前持有 10 个比特币,分叉后,你会在旧链上拥有 10 个旧币,同时在新链上免费获得 10 个新币。这就是为什么老韭菜们常说"硬分叉就是发糖果"。

然而这也带来了巨大的代价和风险,而这个代价的大小,首先取决于这个村子到底是用什么规则在记账。

  • PoW 硬分叉

如果是一个 PoW(工作量证明) 的链,比如比特币发生了硬分叉,那场面就像是一次惨烈的"分家产"。因为 PoW 依靠的是物理世界的矿机和电力。当分叉发生时,原本守护这一条链的算力大军被迫选边站队。也许 60% 的矿工去了新链,40% 的矿工留在了旧链。

这就导致了一个可怕的后果:旧链的算力大幅下降,挖矿难度虽然会调整,但在调整前的空窗期,这条链会变得极其脆弱,甚至容易遭到黑客的 51% 攻击.

  • Pos 硬分叉

因为 PoS 不依赖物理矿机,而是依赖链上的资产(质押的币)。当分叉发生时,甚至不需要你做任何选择,你的资产和质押状态会被瞬间"克隆"到两条链上。

但问题来了:无利害关系(Nothing at Stake)。既然两边都有钱,作为验证者的你,最理性的选择就是两边都下注,两边都记账。这就导致 PoS 链在分叉时,更容易产生混乱和冗余,社区的信仰被割裂得更加彻底,因为"背叛"的成本太低了。

分叉后还有一个风险——重放攻击(Replay Attack)。由于分叉前两条链共享相同的交易格式和历史记录,在 A 链上签名的一笔交易,可能被别人"复制"到 B 链上重新广播执行。

比如在 BTC 链上给朋友转了 1 个 BTC,黑客可能把这笔交易原封不动地搬到 BCH 链上,导致同时也损失了 1 个 BCH。

这就是为什么负责任的分叉项目通常会加入 重放保护(Replay Protection) 机制,给交易加上一个只属于本链的"身份标签",让它无法被另一条链接受。

价值是不会凭空产生的。如果把一张 100 元的钞票撕成两半,它不会变成两张 100 元,甚至可能连 两张 50 元都不值。分叉后的两条链,市值加起来勉强等于分叉前的市值。甚至更多时候,因为社区分裂导致的恐慌,两条链加起来的市值反而会暴跌。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计