Cardano 的去中心化检验不止于节点数量

Cheeky Crypto 主持人 Nick Regan 解释了为何只有在对协议保持一致解读时,多个独立的 Cardano 客户端才能真正强化去中心化。CPS-0034 提议在当前与历史协议版本上扩大对 Plutus Core 的测试范围。

By SongMarketCap

Cardano News - Cardano 的去中心化检验不止于节点数量

Cheeky Crypto 的联合创始人兼主持人 Nick Regan 发布了一段 24 分钟的分析,聚焦于 Cardano 去中心化中不太显眼的一类风险:独立开发的软件可能对网络规则产生分歧。Cheeky Crypto 是由 Nick 和 Chris Regan 于 2020 年创立的加密分析与教育平台。

Regan 将其分析与 CPS-0034 联系起来,这是一个公开的 Cardano Problem Statement,提议为替代性的 Cardano 节点实现所使用的 Plutus Core 评估器扩展一致性测试。讨论超越了质押池分布、治理参与以及连接到网络的机器数量。

多个客户端并不会自动提升安全性

Regan 区分了网络的物理分布与其软件的分布。Cardano 也许在多个国家由不同实体运营着成千上万的节点,但其中大量基础设施仍依赖相同的核心节点实现。

如果某个通用实现包含对共识至关重要的缺陷,分布在不同地域的大量节点可能会同时遭遇同一问题。替代客户端通过让不同团队采用不同的编程语言、架构和工程决策来降低这种集中风险。

当这些实现对协议的解读不一致时,另一种风险就会出现。

某个客户端可能会接受另一客户端拒绝的交易。两个 Plutus 评估器可能处理同一脚本却给出不同结果,或计算出不同的执行成本。由于区块有效性可能取决于这些结果,节点之间的分歧会导致链分叉,而不是带来更强的韧性。

UPLC,即 Untyped Plutus Core,是 Plutus 智能合约编译后的执行语言。替代评估器不必复刻 Cardano 既有 Haskell 实现的结构,但必须复现协议所期望且与共识相关的行为。

Regan 将这一要求描述为需要独立达成一致。

只有当不同代码库在有效输入、边界情况以及历史协议版本上始终得出相同结论时,它们才提供了有意义的冗余。

Regan 以“ADA Has a Decentralisation Problem”为题,将这种软件层面的风险与多数持有者所熟悉的去中心化争论区分开来。他的分析关注的是预防性的基础设施工作,而非现有主网事故。

CPS-0034 扩展 Plutus Core 一致性测试

Plutus Core 团队于 8 月 12 日将该提案公开征求意见。CIP 编辑在初步审查后将其编号为 CPS-0034,同时技术提案仍向公众开放反馈。

根据 CPS-0034 提案,Cardano 目前为外部开发者提供了约 1,000 个预定义的 golden file 测试。这些测试使独立评估器能够执行给定脚本,并将其输出与期望结果进行比较。

现有套件可提供初步的兼容性检查,但存在两点已识别的局限。其未公开 Plutus 团队内部使用的基于性质的测试,而且仅覆盖协议版本、账本语言版本与成本模型的最新组合。

基于性质的测试并不限于少量人工准备的示例。生成器可以产生数百乃至上千种不同输入,从中构造 Plutus 脚本,并验证预定义的行为性质是否持续成立。

这种方法将覆盖范围扩展至罕见组合、边界值以及在常规活动中不常出现的条件。在这些情形下,独立开发的实现更可能暴露其对协议行为的不同假设。

CPS-0034 提议以可移植的格式分发生成的测试用例,使外部实现只需最少的集成工作即可使用。每个测试可包含程序、本次输入、期望结果,以及在适用时的期望执行预算。

历史覆盖也在范围之内。Cardano 已经历多个账本时代、硬分叉、Plutus 语言版本与成本模型的变化。若期望替代节点能够重放区块链并验证早期区块,就必须正确解读这段历史。

该提案专注于 Plutus Core 评估器的一致性。它并未为 Cardano 节点内部的所有网络、账本与共识组件定义完整测试框架。其与节点安全性的关联在于,脚本评估结果的不同会改变交易或区块是否被视为有效。

独立代码必须证明行为一致

CPS-0034 仍包含若干未决的技术问题。开发者正在讨论生成的测试应如何分发、期望与实际结果的差异应如何报告、用例应如何按协议版本筛选,以及如何高效执行数以千计的测试。

与 Amaru 相关的开发者已加入公开讨论。Amaru 是一个用 Rust 编写的开源 Cardano 节点客户端,为运营方提供独立于既有 Haskell cardano-node 的另一套实现。

一位 Amaru 贡献者表示,该项目已采用现有的语义与扁平一致性测试套件。反馈支持更广泛的性质与版本测试,同时希望提供贴近链上真实场景的用例、对客户端中立的数据格式,以及便于第三方贡献新增用例的简洁路径。

建议的方法包括使用结构化的测试夹具,并按照覆盖的协议与语言版本为用例打标签。讨论还提出担忧,若仅以 Haskell 实现生成器,可能会给使用其他语言的团队带来额外门槛。

共享的测试标准并不要求源代码一致。各团队可以保留各自的架构、编程语言与开发方法,同时确保最终的执行行为与 Cardano 的规则保持兼容。

对于 ADA 持有者而言,问题关乎的是基础设施的韧性,而非短期市场表现。交易所、钱包、去中心化应用与机构系统都依赖不同节点对交易、脚本与区块作出确定性的决策。

如果 CPS-0034 能产出一套可移植且感知版本的一致性测试套件,替代的 Cardano 客户端将不再仅凭独立代码库的存在来宣称兼容。它将能够提供可复现的证据,证明独立编写的软件在 Cardano 的协议历史中得到相同的结果与执行成本,并在测试阶段暴露分歧,避免其流入实时区块。