谷歌的 Quantum AI 团队本周早些时候表示,未来的量子计算机可能会在大约九分钟内从公钥推导出比特币的私钥。这个数字在社交媒体上迅速扩散,把市场吓得不轻。
但这在实际中到底意味着什么?
先从比特币交易的工作方式说起。当你发送比特币时,你的钱包会用私钥对交易进行签名,这是一串秘密数字,用来证明你拥有这些币。
该签名也会透露你的公钥——一个可共享的地址——它会被广播到网络中,并在一个名为内存池(mempool)的等待区中排队,直到矿工把它包含进区块。平均而言,确认大约需要 10 分钟。
你的私钥和公钥由一个叫作椭圆曲线离散对数问题(elliptic curve discrete logarithm problem)的数学难题关联起来。经典计算机无法在任何有用的时间范围内逆转这项运算;而一台足够强大的、运行一种名为 Shor’s 的算法的未来量子计算机则可以。
问题就出在这“九分钟”上。谷歌的论文发现,量子计算机可以通过提前预计算那些与任何特定公钥都无关的攻击部分来“事先准备好”。
一旦你的公钥出现在内存池中,这台机器只需要大约九分钟就能完成工作并推导出你的私钥。比特币的平均确认时间是 10 分钟。这让攻击者获得大约 41% 的概率:在原始交易完成确认之前推导出你的密钥并将你的资金转走。
把它想象成一个小偷花费数小时打造一台通用的开锁机器(预计算)。这台机器对任何保险箱都能用,但每次出现一台新的保险箱时,它只需要做一些最后的调整——而这一步所花的时间大约就是九分钟。
这就是内存池攻击。它令人警惕,但需要一台尚不存在的量子计算机。谷歌的论文估计,这样一台机器所需的物理量子比特数量会少于 500,000 个。而今天规模最大的量子处理器大约只有 1,000 个。
更大、也更迫在眉睫的担忧是那 6.9 million 比特币——约占总供应量的三分之一——已经存在于那些其公钥被永久暴露在外的钱包中。
这包括网络最初几年中的早期比特币地址:它们使用了一种叫作 pay-to-public-key 的格式,在这种格式下公钥会默认在区块链上可见。它也包括任何复用了地址的钱包,因为从某个地址发起支出会暴露该地址上剩余全部资金对应的公钥。
这些币不需要这场“九分钟竞速”。一名拥有足够强大量子计算机的攻击者可以从容下手,逐个破解已暴露的密钥,而不受任何时间压力。
比特币的 2021 Taproot 升级让情况更糟,正如 CoinDesk 在周二早些时候报道的那样。Taproot 改变了地址的工作方式,使公钥默认在链上可见,从而在不经意间扩大了将来可能遭受量子攻击的脆弱钱包范围。
比特币网络本身仍会继续运行。挖矿使用的是一种名为 SHA-256 的不同算法,当前的量子计算机在现有方法下无法对其进行有意义的加速。因此区块仍会被产生。
账本仍然会存在。但如果能从公钥推导出私钥,那么支撑比特币价值的所有权保证就会崩塌。任何拥有已暴露密钥的人都面临被盗风险,而机构对网络安全模型的信任也会瓦解。
解决方案是后量子密码学(post-quantum cryptography),它用量子计算机无法破解的算法替换脆弱的数学难题。以太坊已经花了八年时间朝着这次迁移做准备。比特币甚至还没开始。