Cardano 的硬分叉是怎么工作的

我研究 Cardano 时最不解的一个问题: 升级一次为什么那么久。答案很简单: 因为 Cardano 的升级不是"团队拍板", 而是全网投票投出来的。2026 年刚完成的 van Rossem 硬分叉(协议版本 11)就是活例子。这篇把它的投票机制拆开讲: 三方各自怎么投、各管什么, 以及一次硬分叉到底是怎么跑完全程的。

三个机构, 各守一道关

Cardano 的链上治理(CIP-1694 落地, 也叫 Voltaire)有三方角色, 互相制衡:

宪法委员会(CC): 管"违不违宪"

宪法委员会握着第一道关, 它只回答一个问题: 这个提案违不违反 Cardano 宪法。技术方案好不好看、性价比高不高, 都不在它的职责里——它守的是底线, 判断这个改动会不会让链"出事"或越过基本规则。每个成员一票, 不按质押加权, 达到委员会设定的门槛才算通过。这道权力本身也被关在笼子里: 成员可以被"不信任动议"换掉, 委员会要是越权乱来, 持币者可以投票解散它。

DRep 代表: 替不投票的人投票

大多数持币者没空研究每个提案, 于是把投票权委托给一个 DRep, 让自己信任的人替自己做功课。投票权重是一 Lovelace 一票——一个 DRep 手里的票, 就是所有委托给它的质押之和, 质押越多话语权越大。有个细节值得记下来: 已注册的质押要是没参与投票, 默认按"反对"计; 未注册的按"弃权"计。另外还有两个预设选项, “弃权”(Abstain)和"不信任"(No Confidence), 后者等于对治理机构本身投出不信任票。

SPO 质押池: 网络的运营者

真正在跑节点、出块的是 SPO, 他们对网络的运行状况最懂, 所以在安全相关改动上有额外的话语权。投票规则同样按质押占比算。硬分叉这类动作有个特殊之处: SPO 的票按全体质押池的质押占比来计——它衡量的其实是"全网络有没有准备好", 跟某个利益集团点没点头无关。

一次硬分叉要过几道门

Cardano 的治理动作有 7 类, 从轻到重。硬分叉是最重的一类, 也最特殊: 普通改动通常两方批准就行, 但硬分叉要求 CC、DRep、SPO 三方全部批准

门槛本身并非拍脑袋定的——它们是协议参数, 由社区投票设定。举个例子: 周报里那个"改网络参数"的动作, 要求 67% 活跃 DRep 质押 + 51% 活跃 SPO 质押; 硬分叉的门槛只会更高、更严。

整个流程是这样:

把图上的顺序用文字走一遍: 新版本软件开发并测试完, 提案先上链; 节点运营者升级节点在先, 因为 SPO 投"是"既是授权, 也是在宣告"我的节点已经就绪"; 随后 DRep 与 CC 分别投票, 三方都过门槛, 提案批准; 到了 epoch 边界, 协议版本自动切换, 全网按新规则出块。

通过了之后, 是"自动"发生的

这是最容易被忽略的一点: 投票通过后, 硬分叉是自动执行的

所有治理动作都在 epoch 边界检查一次是否达标, 达标就"生效", 不需要任何人再手动操作; 生效那一刻, 全链的协议版本号自动切换, 节点按新规则出块。为什么能做到"自动"? 因为协议版本号本身就是链上状态, 由共识层读取。这跟"团队发公告说上线了"是两码事——能不能升级, 不看有没有人宣布, 只看链上账本认不认

链上到底是怎么"切换"的

具体到实现层面, 这个"自动切换"是怎么落地的?

Cardano 的每个大时代(era)都是一套独立的账本实现, 由共识层的 hard fork combinator(硬分叉组合器)拼起来。当链上协议版本号推进时, 共识层在 epoch 边界从旧时代的实现切到新时代的实现——出块规则换了, 但历史区块不变, 链始终是连续的一条。

软分叉允许新旧规则并行兼容; “硬"分叉是全网在同一个时间点, 一起切到新规则。名字就是这么来的, 也是为什么"事先升级软件"是硬性前提——节点没升级, 就跟不上新规则, 直接掉链。

为什么这么大的改动不出事

一次硬分叉要动整个网络的规则, 凭什么能不出事? 把 van Rossem 的时间线摊开, 我看到的是一层又一层的演练。

Cardano 有 Preview 和 Preprod 两个测试网, 分工明确: Preview 用来快速试错, Preprod 用来正式彩排, 这也是官方给开发者的用法。Preview 通常比主网提前至少 4 周跑新版本, 相当于给全网留出一段"先在沙盘上把错犯完"的缓冲。

每个硬分叉都有对应的"硬分叉就绪"节点版本。开发团队先发布候选节点, 在 Preview、Preprod 依次跑通, 再上主网。van Rossem 的实际节奏是: 5 月 8 日 Preview 切到协议版本 11, 6 月 10 日 Preprod 生效, 6 月 16 日主网提交动作, 7 月完成——一步都没跳。

第三层保险最有意思: 前面说过, SPO 的票按全体质押池的质押占比算。节点没升级的质押池, 根本投不出"是”——票数不够, 分叉就推不动。所以"全网络准备好"从来都非一句口号, 是质押投票量出来的数字。

三层下来, 主网硬分叉基本就是一次"已经演练过很多遍的例行公事"。

升级方案: 一条发布列车

最后看看它的升级节奏, 像不像一条发布列车(release train): 每个大时代拆成多次硬分叉, 一次只上有限几个功能, 把巨型改动拆成小步。刚完成的 van Rossem(协议版本 11)是一个 intra-era(时代内)硬分叉——不动时代本身, 只铺路; 真正的大时代 Dijkstra 分三个阶段上线: Nested Transactions(嵌套交易)、Linear Leios、Peras。每个阶段都有明确的节点版本、测试网验证、治理投票, 官方口径是第一、二阶段在 2026 年底前上主网。

把一个大升级切成小步、每步都过全套流程, 这就是 Cardano 把"大改动"变成"小步慢跑"的方式——改动再大, 单次上线的增量都是可控的。

为什么这么设计: 万无一失的三重保险

把"慢"拆开看, 每一道慢都是保险。第一重是防劫持: 三方制衡加门槛, 少数人改不了协议——想劫持一次硬分叉, 得同时拿下质押话语权和宪法委员会。第二重是给全网时间: 硬分叉要求"事先升级软件", 节点运营者先升级, SPO 投"是"既是在授权, 也是在宣告"我准备好了", 没有大量节点就绪, 票数就凑不齐。第三重是可追溯: 所有动作和投票都在链上, 事后能复盘是谁推动了什么。

van Rossem 这次就是活样本: 6 月 16 日提交硬分叉动作, 7 月完成; 连"这个硬分叉叫什么名字"都是投票投出来的——命名 Info 动作拿到 83.62% DRep 支持、4.44 亿 ADA。连名字都要过投票, 可见这套流程的认真程度。

长期意义

一台能自己决定自己怎么升级的链, 才是真正长期稳的链。投票门槛和流程的存在, 是把"任意时刻被少数人改掉规则"这条风险路径从根上封死。它慢, 但它慢得有底气——每次升级都是全网共同点头的结果, 而非某个团队的一纸公告。

文章链接:

https://time-friend.com/zh/archive/cardano-hard-fork-voting-mechanism/

# 相关文章推荐