
量子计算与你的币:真正面临风险的是什么
量子计算是加密领域里最稳定地被谈坏的话题。一派说一切即将崩塌;另一派说还得几十年,然后就不再去想。两派都跳过了真正有用的那部分——搞清楚系统里哪一部分是脆弱的,以及你的哪些币是暴露的。
因为答案并不整齐划一。有些输出的风险明显高于另一些,而这个差别是你今天就能采取行动的。
两个算法,两个非常不同的问题
几乎所有的担忧都可以归结到上世纪九十年代的两项成果。
Shor 算法能高效求解公钥密码学所依赖的问题:整数分解,以及 secp256k1 签名所建立其上的离散对数问题。一台足够大的量子计算机运行 Shor 算法,就能从公钥推导出私钥。这才是真正的威胁,而且分量不轻:它是把签名彻底攻破,而不是削弱。
Grover 算法能加速无结构搜索,但只是平方级的加速。面对哈希函数,它大致把有效安全强度减半。SHA-256 从 256 位降到约 128 位的抗性,这依然远在可及范围之外。挖矿会获得一个理论上的加速,其意义远比听起来小得多,因为工作量证明是与其他矿工的赛跑,而不是对着一个固定靶子。
所以真正重要的总结是:哈希没问题,签名有问题。 一切严肃的担忧都由这一句话派生而来。
为什么地址不是公钥
下面这一段是多数讨论会跳过的,而它恰恰决定了你的暴露程度。
比特币地址不是公钥。它们是公钥的哈希——对于基于脚本的地址来说,则是脚本的哈希。你收款时,公钥并不会出现在链上。它是在你花费时才出现的,因为花费需要公布一个签名,以及验证该签名的那把公钥。
这就造出了两类币:
已哈希且未花费。 链上只显示一个哈希。要攻击它,量子对手得先攻破哈希,而 Grover 算法带不到那一步。这类输出受一层与签名毫无关系的额外保护。
公钥已暴露。 一旦你从某个地址花费过,那把公钥就永远公开了。此后仍留在该地址上的东西,就只剩签名方案本身在保护。
正是这个区分,使得「不要复用地址」这条多年来仅以隐私为由被推荐的建议,在量子问题上同样成立。复用地址意味着第二笔款项是躲在一把已暴露的公钥之后,而不是躲在哈希之后。
今天真正暴露的是什么
比特币早期的输出。 最早的那批交易是直接支付给公钥而非哈希的。那些裸公钥此时此刻就明明白白摆在链上。很大一部分从未被动过的极早期币——包括很多被推定属于中本聪的——都属于这一类。
任何被复用过的地址。 只要花费过一次,此后你在那里收到的一切都躲在一把已公布的公钥之后。
每一个发起过交易的以太坊地址。 这一点值得直说,因为它常让人意外:在 EVM 链上,公钥可以从任意一个签名中反推出来。只要一个地址发出过哪怕一笔交易,它的公钥实际上就是公开的。以太坊没有比特币那种「已哈希且未花费」的类别。
Taproot 输出。 Taproot 把公钥直接放进输出,而不是放公钥的哈希。这是个优雅的设计,在隐私与效率上都有实实在在的好处,同时也确实意味着密钥路径输出从被注入资金的那一刻起就暴露了一把公钥。值得知道;但今天不构成警报。
内存池窗口。 当你确实要花费时,你的公钥在广播的那一瞬间就可见了——在确认之前。一个快到足以在该窗口内推导出私钥、并让一笔竞争交易被打包的量子攻击者,理论上能劫走途中的资金。这是一种真实存在的理论攻击,而它所需要的能力远超任何已被演示过的水平。
SSP 处在什么位置,实话实说
SSP 的比特币地址是 P2WSH——见证脚本的哈希。这让你未花费的币落在已哈希那一类:在你花费之前,链上摆着的是一个哈希,不是公钥。当你花费时,脚本和两把公钥都会被揭示,与任何其他基于脚本的输出完全一样。
接下来是很容易吹过头的部分,那我们就不吹。2-of-2 多重签名对量子有帮助吗?只有一点点。
攻击者拿 Shor 算法对付你已花费的脚本时,需要推导两把私钥而不是一把。那大约是两倍的工作量。两倍是个常数因子,而常数因子不构成安全——有能力攻破一把 secp256k1 私钥的对手,几乎必然也有能力攻破两把。二取二多重签名在防范设备失陷、钓鱼、盗窃以及针对单把密钥的胁迫方面表现优异。面对一台在密码学意义上真正够用的量子计算机,它几乎无关紧要,而任何把多重签名当作抗量子保护来兜售的人都在误导你。
真正要紧的是链层面向后量子签名的迁移,而这不是一个钱包能够单方面做到的事。
这一切究竟有多近
一点都不近,任何诚实的读法都是如此。
用 Shor 算法攻破 secp256k1,需要一台大型且带纠错的量子计算机。由于物理量子比特充满噪声,要造出一个可靠的逻辑量子比特就得用上许多个物理量子比特,而已发表的、针对现实密钥长度的攻击估算数字达到了数以百万计的物理量子比特。今天的机器还差着许多个数量级——这不是再迭代一代硬件的事。
有两点使得这不能成为忽视该话题的理由。
其一,时间表确实不确定。「差着许多个数量级」诚实地描述了今天,却是对 2040 年做出笃定预测的糟糕依据。
其二,也更重要:已暴露的公钥不会过期。 对加密数据而言,有所谓「先收割、后解密」的顾虑。对币而言,对应的情形更简单也更糟——今天可见的公钥会一直可见,而躲在它后面的币,只要那种能力一到就能被取走。没有任何窗口会关上。这就是为什么即便威胁仍旧遥远,现在也值得关心自己的币落在哪一类里。
实际正在做的事
密码学的基础工作已经就绪。NIST 已经标准化了后量子签名方案——由 Dilithium 与 SPHINCS+ 提案演化而来的 ML-DSA 与 SLH-DSA——它们今天就能部署在普通软件里。
区块链才是难啃的那一块。更换签名方案是一次共识变更:每个节点、每个钱包、每家交易所、每一处基础设施都必须达成一致并完成迁移。后量子签名也比现行签名大得多,这会直接影响区块空间与手续费。而且总得有人决定:那些主人始终未曾迁移的币该怎么办——包括那些主人可能联系不上、甚至已经离世的古老输出。这是一个至少与技术问题同样棘手的治理问题。
工作正在推进。它还不紧迫,而等它变得紧迫时,也要花上许多年。
该做什么
不要复用地址。 你本来就该为隐私这么做。它还能让你的币留在已哈希那一类里,而不是躲在暴露的公钥后面。这是今天一个人所能做的唯一有意义的事,而且免费。
不要为此重新调整持仓。 任何恐慌性动作都毫无必要。凡是因为量子计算而催促你紧急转移资金的人,不是在行骗,就是在向你推销。
把威胁放在合适的比例上。 现实地说,你因为弄丢助记词、点进钓鱼网站,或批准了一个没读过的授权而损失加密资产的可能性,远高于因为量子计算机。那些才是今天的风险,也值得今天的注意力。
预期它会在协议层被处理。 迁移真正到来时,会以一次带有漫长过渡期的链升级的形式出现,而不是你的钱包悄悄替你修好的什么东西。
诚实的立场并不迷人:一个真实存在、被正确识别、仍然遥远、正在被处理的问题——而且它眼下并不是横在你与损失金钱之间的那一样东西。


