区块链密码敏捷性:CKB 实现量子安全的关键
量子计算正使密码体系的僵化成为关乎存亡的风险,而 Nervos CKB 是唯一在架构上具备真正密码敏捷性的区块链。
New to Nervos? Start here.
Explore the guide
要点
- 量子计算(quantum computing)威胁着大多数区块链目前赖以保障安全的公钥密码学。
- 区块链真正的安全问题不只是量子抗性,还包括密码体系的僵化:在大多数链上,签名方案内置于协议中,难以更改。
- 比特币、以太坊、Solana 和许多其他链,只有通过需要全网共识与协调的协议层变更,才能支持新的密码学方案。
- CKB 的不同之处在于,交易授权并未作为单一原生签名规则硬编码到协议中,而是位于可编程的锁定脚本中,因此包括后量子方案在内的新签名方案,都可以无需许可地部署。
- 这使 CKB 成为唯一在架构上具备真正密码敏捷性的区块链。
区块链常被描述为无需依赖可信第三方(trustless)的系统,但这种特性建立在一种非常具体的信任之上:对密码学的信任。
每个加密货币钱包和每笔交易,最终都依赖一个假设:某些数学问题在计算上难以求解。对今天大多数主要区块链而言,这意味着依靠公钥密码学,特别是椭圆曲线密码学,证明授权交易的人确实控制着对应私钥。
这个成立了数十年的假设,如今正受到一种新机器的威胁:量子计算机。
经典计算机使用表示 0 或 1 的比特处理信息,量子计算机则使用量子比特(qubits),能够以根本不同的方式表示和操纵信息。
借助叠加和纠缠等性质,量子计算机能以远高于经典计算机的效率探索某些数学结构。它们并不是通常意义上单纯“更快的计算机”,对大多数日常任务也没有神奇的捷径。但对一小类问题,包括现代公钥密码学背后的许多数论问题,它们可能带来变革。
为什么量子计算会威胁区块链
原则上,一台足够强大、具备密码学攻击能力的量子计算机(Cryptographically Relevant Quantum Computer,CRQC),运行肖尔算法(Shor’s algorithm)后,可能从已暴露的公钥推导出私钥。
对加密货币用户而言,这并非抽象的担忧。用户进行点对点交易、与智能合约交互、跨链桥接资产、运行验证者基础设施,或只是复用地址时,公钥通常都会暴露。公钥一旦暴露,就可能被对手收集并保存,为未来的量子攻击作准备。
“Q-Day”,即 CRQC 成为实际威胁的时点,何时到来仍是技术领域争论最激烈的问题之一。估计差异很大,从几年到数十年不等。当然,这些估计背后的动机在一定程度上存在偏向:量子硬件公司完全有理由强调进展迅速,区块链社区则往往有理由淡化威胁的紧迫性。
但越来越难以否认的是,时间窗口正在缩短,区块链需要在威胁成为现实之前,解决一个严峻的安全问题。
为什么区块链密码学如此难以更改
在普通 Web2 系统中,迁移到后量子密码学(post-quantum cryptography)可能很困难,但仍相对直接。公司可以盘点密码学依赖、轮换密钥、更新库、弃用脆弱算法、签发新证书,并通过受控部署流程推送升级。这个过程可能成本高昂、操作繁重,但执行迁移的权力是集中的:组织控制服务器、软件栈、发布流程和时间表。
公有区块链没有这样的条件。
区块链不是,或者至少不应当是,由单一运营方控制的产品。它是由数千名独立参与者维护的去中心化账本,这些参与者必须就协议规则达成一致。其密码学往往嵌入最深层的共识或协议层,决定这些参与者如何区分有效和无效的状态转换。
因此,更改区块链密码学并不像 Web2 软件升级那样简单,而是一场可能充满争议、影响整个网络与生态的技术和社会经济事件。
签名方案一旦内置于共识,替换它就意味着改变每个全节点(full node)判断交易有效性所使用的规则。对大多数区块链而言,这需要协议层干预,整个生态都必须围绕它协调,包括钱包、交易所、托管方、硬件设备、基础设施提供方、开发者和用户。
如果密码学假设永远成立,这或许可以接受,但事实并非如此。
密码学的发展史上,原语从“足够安全”变为“过时”,再变为“危险”的例子屡见不鲜。SHA-1 曾广泛用于数字签名和证书,直到实际可行的碰撞攻击(collision attacks)使其不再适合敏感或安全关键用途。MD5 曾广泛用于校验和与数据完整性,但在对抗环境中已不安全。DES 曾是联邦加密标准;如今,其密钥长度太短,使用普通商用硬件就能通过暴力穷举(brute force)破解。
教训很明确:密码学假设不会永远成立。算法会老化,攻击会进步,硬件会变快,标准制定机构最终会弃用早期系统赖以构建的原语。能在这些转变中存续的系统,不只是某一时刻使用最强密码学的系统,更是能在环境改变时替换密码学的系统。
对大多数区块链而言,问题恰恰从这里开始。
区块链与密码体系的僵化
要理解问题的关键,我们需要看看签名验证实际上发生在哪里。
在大多数区块链中,签名方案不仅是钱包端偏好,也不只是可替换的软件库。不同链可能将其嵌入预编译合约(precompiled contract)、脚本操作码(opcode)、原生账户规则,或硬编码的交易验证逻辑中。无论采用哪种形式,它们都与网络判断交易有效性的规则深度绑定。
比特币中的签名验证
比特币清楚地展示了这个问题。
用户发起普通 P2PKH 交易时,钱包提供两项解锁数据来花费一个或多个 UTXO:公钥,以及使用对应私钥生成的数字签名。随后,交易广播到比特币点对点网络,每个收到它的节点都会先进行验证,再决定是否将其收入内存池(mempool)或继续转发。
这里的“有效”(valid)意味着几项要求:引用的 UTXO 必须存在且尚未花费;交易不能创造比其花费数量更多的比特币;每个输入都必须满足其试图花费的输出的花费条件。在 P2PKH 交易中,最终归结为一个关键问题:这笔交易是否由控制该 UTXO 的私钥签署?
比特币通过 脚本(Script) 回答这一问题。它是一种简单的基于栈的语言,用于定义和求值花费条件。脚本由操作码构成,这些操作已由比特币协议定义,每个执行验证的节点都会在交易验证过程中确定性地执行它们。
在 P2PKH 花费中,之前的输出包含一个锁定脚本,它对公钥哈希作出承诺,并以负责签名验证的操作码 OP_CHECKSIG 结尾。要花费它,交易需要提供签名和公钥。比特币脚本先检查公钥是否与 UTXO 中承诺的哈希匹配,再使用 OP_CHECKSIG 验证该公钥下这笔交易的签名是否有效。在传统 P2PKH 中,这意味着按照比特币原生的 ECDSA/secp256k1 规则检查签名。
这就是比特币密码体系僵化的本质:用户钱包创建签名,但协议定义网络认可哪些签名有效。采用 BLS、SPHINCS+、ML-DSA 或任何其他方案生成的签名,都不能满足现有 P2PKH 规则,因此网络会拒绝交易。
关键就在这里:ECDSA/secp256k1 是每个全节点强制执行的有效性逻辑的一部分。要让比特币原生认可不同的签名方案,网络就必须改变节点执行的规则。可以通过软分叉引入新的花费规则,如 Taproot 引入 Schnorr 时所做的那样;也可以通过硬分叉改变现有规则。
以太坊中的签名验证
以太坊以不同架构体现了同样的僵化问题。
与比特币不同,以太坊采用基于账户的模型(account-based model)。用户不花费由脚本锁定的 UTXO,而是控制一个外部拥有账户(externally owned account,EOA),提交经过密码学签名的交易,以更新以太坊全局状态。在以太坊原生账户模型中,改变状态的交易由 EOA 发起,而 EOA 由私钥控制。
用户发送以太坊交易时,钱包用与其 EOA 关联的私钥签名。交易包含常见的执行字段:接收方、金额、nonce 值、gas 参数、输入数据,以及证明账户所有者已授权交易的签名。
交易广播后,以太坊节点检查其格式是否正确、nonce 值是否正确、账户是否能支付 gas 费用,以及签名是否有效。为验证授权,协议使用签名恢复发送者,推导发送者地址,并确认交易来自所声称的 EOA。
这种原生签名检查是以太坊内置交易验证规则的一部分。用户钱包创建签名,但以太坊协议定义网络认为什么是来自 EOA 的有效交易。在这一层,有效性取决于签名是否满足以太坊的 ECDSA/secp256k1 规则。
这就是以太坊版本的密码体系僵化。用户不能简单决定用 BLS、Ed25519、SPHINCS+ 或 ML-DSA 签名来授权普通 EOA 交易。如果交易不满足以太坊的原生签名规则,节点在其进入应用逻辑之前就会拒绝它。与比特币一样,签名方案不仅是钱包偏好,而是协议交易有效性机制的一部分。
密码敏捷性是关键
同样的模式遍布行业的大部分领域。
许多基于账户的链在协议层定义交易真实性。例如,Solana 使用 Ed25519 签名进行原生交易签名,还为 secp256k1 和 secp256r1 等方案提供内置验证程序。这些额外程序对应用逻辑、跨链桥(cross-chain bridges)和自定义协议很有用,却不能让原生交易认证自由插拔。基础交易处理流程仍规定了普通签名者必须提供哪种签名,而这里使用的原生/默认方案并不具备后量子安全性。
这就是为什么有关区块链量子抗性(quantum resistance)或量子就绪性的讨论,通常将问题限定得过窄。
问题不在于区块链最终能否支持某种后量子签名方案,而在于它能否在不进行软分叉或硬分叉等可能造成扰动的协议升级的情况下,改变自身密码学原语(cryptographic primitives)。
不同签名方案能否共存?用户能否逐步迁移?开发者能否不等待基础协议变化,就部署新的验证逻辑?应用能否在全网围绕某种方案形成标准之前,先试用更强的密码学?
换句话说,真正的问题不只是后量子密码学。
真正的问题是密码敏捷性(crypto agility)。
为什么 CKB 与众不同
Nervos CKB 的独特之处就在这里。
在大多数区块链上,密码学原语深深嵌入协议中。在 CKB 上,交易授权是可编程的:决定 Cell 能否被花费的逻辑,位于锁定脚本(Lock Script)中,而非固定的原生账户模型、操作码或预编译合约中。

CKB 围绕 Cell 模型设计,它是比特币 UTXO 模型的泛化版本。在比特币中,UTXO 代表可花费的币;在 CKB 中,Cell 是通用的状态容器。与 UTXO 一样,Cell 创建后不可变,不会被就地编辑。要更新状态,交易会消耗现有的活跃 Cell,并创建包含更新后数据的新 Cell。

这意味着一笔 CKB 交易就是一次状态转换:旧 Cell 被消耗,新 Cell 被创建,网络验证这一转换是否获准。
CKB 通过执行交易所涉及 Cell 关联的脚本来完成验证。脚本主要有两类:锁定脚本和类型脚本(Type Scripts)。

锁定脚本控制所有权,决定 Cell 能否作为交易输入使用。用日常支付的说法,它就是授权层:谁被允许花费这个 Cell?
类型脚本控制应用逻辑,定义创建、转换或销毁某类 Cell 的规则。例如,在智能合约语境中,类型脚本可以执行代币发行和转账规则,而锁定脚本仍决定谁拥有具体的 Cell。
简而言之,锁定脚本回答“谁能花费这个 Cell?”,类型脚本回答“允许这个 Cell 如何变化?”
用户花费 CKB Cell 时,交易将该 Cell 列为输入,并提供见证数据(witness data)。见证中可以包含签名、公钥、证明,或锁定脚本要求的任何其他数据。验证时,节点在 CKB 的 RISC-V 虚拟机 CKB-VM 中执行所引用的锁定脚本。锁定脚本读取相关交易数据和见证,应用自身验证逻辑,并返回成功或失败。
如果锁定脚本返回成功,Cell 就被解锁;如果失败,交易就无效。
关键在于,CKB 协议不需要预先知道锁定脚本是在验证 ECDSA、Schnorr、多重签名、WebAuthn、零知识证明(Zero Knowledge Proof,ZKP)、SPHINCS+、ML-DSA,还是未来的其他原语。从网络角度看,这些不是需要新协议规则的新原生账户类型,而是在同一虚拟机中运行的不同可执行验证逻辑。
这就是 CKB 能够在不改变基础协议的情况下,支持新密码学原语的原因。开发者无需重新定义每个节点认为什么是有效的原生签名,而是可以将新的验证逻辑部署为锁定脚本;用户也可以按自己的节奏,迁移到由这些脚本保护的 Cell。
这还意味着,不同密码学方案和授权策略可以同时在 CKB 上共存。一个 Cell 可以由默认的 secp256k1 风格锁定脚本锁定,另一个可以由多重签名脚本锁定,还有一个可以由后量子脚本锁定。
最重要的是,网络无需仅为引入新签名方案而进行协议升级。只要验证器能够实现为 CKB 脚本,并在 CKB-VM 的约束内执行,就可以在脚本层无需许可(permissionlessly)地部署。
这就是区块链语境中真正的密码敏捷性。
CKB 已在链上部署 SPHINCS+ 后量子锁定脚本,让用户今天就能试用抗量子的资产保护。但更重要的是架构:CKB 不受限于 SPHINCS+,也不受限于任何单一后量子方案。当密码学格局再次改变,CKB 可以通过部署新的锁定脚本采用新签名方案,而无需扰动基础协议。
这使 CKB 不仅今天具备量子抗性,更能永远为量子时代做好准备。
常见问题
什么是区块链中的密码敏捷性?
密码敏捷性是区块链能够快速、轻松地采用、替换或支持新密码学原语的能力,无需软分叉或硬分叉等会对网络造成重大扰动的变更。
为什么量子计算会威胁区块链?
足够强大的量子计算机运行肖尔算法后,可能从已暴露的公钥推导出私钥,破坏用于证明区块链资产所有权的密码学。
比特币和以太坊具有量子抗性吗?
目前没有。比特币和以太坊当前高度依赖椭圆曲线密码学,而足够强大的量子计算机可以攻击这种密码学。
为什么更改区块链密码学很困难?
在大多数区块链上,签名方案是交易有效性规则的一部分。更改它们需要协议层变更,进而需要整个网络和生态达成共识、进行协调,这个过程可能耗费数年。
Nervos CKB 如何实现密码敏捷性?
CKB 将交易授权放入可编程锁定脚本。开发者可以无需许可地将新的密码学验证逻辑部署为脚本,用户可以按自己的节奏,将资产迁移到由这些脚本保护的 Cell。
CKB 今天具有量子抗性吗?
有。CKB 已在链上部署 SPHINCS+ 后量子锁定脚本,Quantum Purse 则围绕该脚本提供自托管钱包,让用户今天就能保护资产,抵御潜在量子攻击。
什么是 Q-Day?
Q-Day 是具备密码学攻击能力的量子计算机强大到足以破解广泛使用的公钥密码学的时点,其中包括保障大多数区块链钱包和交易安全的签名方案。
什么是 SPHINCS+?
SPHINCS+ 是基于哈希函数的后量子数字签名方案。NIST 已将其标准化为 SLH-DSA,其设计目标是抵御经典和量子攻击。
More from CKB
如何保护你的加密资产免受量子计算威胁
随着量子计算机越来越接近破解常见区块链安全机制,如今要保护数字资产,就需要严格管理地址使用,并向量子安全网络迁移。

BIP-360 详解:支付到 Merkle 根(P2MR)
在让比特币安全模型适应未来挑战的诸多努力中,支付到 Merkle 根是一项引人关注的提案。

比特币可能如何走向量子抗性
比特币为 Q-Day 做准备的时间不是数十年,而是几年。
