谷歌近日宣布其最新量子芯片“Willow”取得了突破性进展,把量子计算机暴力破解比特币网络和钱包的话题,又推到了舆论焦点。
谈到量子计算机对于比特币的威胁,无非以下两点:
- 使用量子计算机挖矿,短时间挖出所有剩下的比特币
- 使用量子计算机暴力破解比特币钱包,盗走比特币
刚好今天上午看到 Fred Krueger 发了一条推文讲这件事,借着他的推文,让我和你再讨论一下吧。先看看他怎么说的:
所以你有一台拥有 100 万个物理量子比特的量子计算机。你能攻破比特币吗?
每 2000 个区块会有一次难度调整。所以,即使你能在一个小时内挖出 99% 的区块,难度调整机制也会启动并让你几乎停滞下来。接下来的 2000 个区块仍然需要像现在一样花费两周时间才能完成。
你认为可以用 Shor 算法破解 ECDSA?你需要公钥才能做到。而公钥只能通过一个地址的已花费交易获取,而不是通过一个仅有未花费 UTXO(未花费交易输出)的地址获得。对于一个从未花费过任何比特币的地址,没有算法可以破解。这也是中本聪曾说过“不要重复使用地址”的部分原因。
第一点,说的就是挖矿的事。如果你明白(建议赶紧了解)什么是比特币网络的难度调整机制(Difficulty Adjustment),这个迷思就很好解释。
之前我曾写过,比特币挖矿实际上是一个掷色子问题,需要掷出的特定色子的难度,每隔2016个区块就会被调整,直到下一个2016个区块被挖出的平均时间,大概为10分钟。简单来说,如果网络总算力越强,2016个区块之后,挖出区块的难度就会被自动调整的越大。
如果使用量子计算机挖矿,情况也是一样,哪怕它可以在短短一小时内挖出2016个区块,难度调整机制也会立即介入,并把挖矿难度增加20160倍,以至于下一个区块被挖出的时间,恢复到10分钟左右。
所以说,比特币挖矿的难度是遇强则强,量子计算机也无能为力。
第二点,关于量子计算机破解比特币钱包,就有点微妙。
首先,如果只有比特币地址暴露,想要破解比特币钱包的私钥,相当于要破解 SHA-256 函数,目前的量子计算机做不到,哪怕有一天可以做到,中本聪也早就想到了应对方法。
其次,也就是 Fred 推文里提到的,比特币地址的公钥,由于公钥是交易签名时,通过 ECDSA 算法得出,这种算法理论上是可以被量子计算机攻破的。所以,量子计算机对于破解被花费过的比特币地址,的确是有威胁,而未被使用的地址(UTXO),由于没有公钥被暴露,无法被量子计算机破解。
那么我们改怎么做呢?Fred 也说了,不要重复使用同一个地址进行交易。
我再补充一个建议,由于比特币的价格会越来越高,如果一个地址的余额太高,很难做到一次交易就全部转出。所以,出于安全考虑,应该把未使用地址(UTXO)的大小,减小到0.5个,甚至0.3个比特币以下。并且,如果要使用,最好一次全部转出,不要留有余额。这样做,还有一个好处,就是人们无法通过某笔交易,知道你有多少比特币,保护了你的隐私。
如果你使用的是 Trezor 或 Coldcard 等硬件钱包,倒是不用太担心公钥问题。钱包会在你转出比特币时,将余额也转入到一个新生成的未使用地址里(UTXO),从而避免公钥暴露和隐私安全。
总结一下,我不太关注量子计算机对于比特币的威胁,要知道比特币的发明者自己就是加密专家,你能想到的,他和社区维护者早就想到过了。并且,比特币爱好者是最聪明的人群,这些事情让她们去操心就好。