Jacky Gu

比特币于量子计算机

20 May 2021 Share to

对量子计算机可能对比特币区块链产生的影响的分析

量子计算机最著名的应用之一是破解目前使用的大多数密码学的加密算法。自从谷歌宣布它实现了量子优势(quantum supremacy)后,网络上有越来越多的文章预测目前使用的密码学将面临普遍消亡,特别是比特币。这篇文章的目的是就量子计算机给比特币带来的风险提出一个客观的评估。

这篇文章将主要回答以下问题:

  • 如果有一台足够大的量子计算机,现在有多少个比特币可以被盗?
  • 怎样才能减轻比特币被拥有量子计算机的对手盗取的风险?
  • 比特币区块链现在和将来是否对量子攻击有内在的抵抗力?

量子计算机和密码学

关于量子计算机如何对目前使用的非对称密码学(公钥密码)构成威胁的话题,已经有大量的讨论。因此,我们将不详细讨论这个问题,而只解释与本文有关的方面。

在非对称密码(公钥密码)学中,私钥-公钥对是以这样一种方式产生的:即这两个密钥之间有一种数学关系。顾名思义,私钥是保密的,而公钥是公开的。个人使用他们的私人密钥产生一个数字签名,这个签名可以被任何拥有相应公钥的人验证。这种方案在金融业非常普遍,用来证明交易的真实性和完整性。

非对称密码学的安全性是基于一个叫做 “单向函数”的数学原理。这一原则决定了公钥可以很容易地从私钥中推导出来,但反之则不行。所有已知的(经典)算法,从公钥推导出私钥,需要花上天文数字的时间来进行计算,因此并不实用。然而,在1994年,数学家Peter Shor发表了一个量子算法,可以打破非对称密码学最常见算法的安全假设。这意味着,任何拥有足够强大的量子计算机的人都可以用这种算法从其相应的公钥中得出私钥,从而伪造任何数字签名。

比特币101

为了了解量子计算机对比特币的影响,我们将从简要介绍比特币交易的运作方式开始。比特币是一个去中心化的价值转移系统。与银行系统不同的是,银行有责任为客户提供一个银行账户,而比特币用户则负责生成自己的(随机)地址。通过一个简单的程序,用户的计算机计算出一个随机的比特币地址(与公钥有关),以及一个秘密(私钥),为了从这个地址进行交易,需要使用私钥。

将比特币从一个地址转移到另一个地址被称为交易。这种交易类似于从一个银行账户向另一个银行账户汇款。在比特币中,发送者必须通过提供数字签名来授权他们的交易,证明他们拥有存储资金的地址。请记住:拥有一台可运行的量子计算机并拥有你的公钥的人可以伪造这个签名,因此有可能花掉任何人的比特币。

在比特币网络中,哪些交易被接受进入网络的决定权最终留给了所谓的矿工。矿工们在处理下一批交易的比赛中竞争,也称为区块。谁赢得了比赛,谁就获得下一个区块的记账权,并被允许构建下一个区块,在他们这样做的时候,会授予他们新币。比特币的区块是以顺序方式相互连接的。它们一起形成一个链,称为”区块链”。

获得记账权的矿工创造了一个新的区块,可以自由地打包他们希望的任何交易。其他矿工通过在他们同意的区块上构建来表达他们的同意。在出现分歧的情况下,他们将在最近接受的区块上建立。换句话说,如果一个流氓矿工试图构建一个无效的区块,诚实的矿工将忽略这个无效区块,而是在最近的有效区块之上构建。

比特币地址类型

比特币地址可以分为两类,每一类都受到量子计算机的不同影响。

在第一类中,公钥直接作为收款人的比特币地址。由于明显的原因,这种地址的交易被称为 “支付给公钥”(p2pk)。在比特币的早期,即2009年,这是主流的地址类型。许多由中本聪自己开采的比特币仍然储存在这样的地址中。这些地址的一个问题是缺乏一个机制来检测地址的错误输入(例如,最后一个校验码,例如在信用卡号码中使用)。另一个问题是,这些地址非常长,这导致交易文件更大,处理时间更长。

由于比特币的所有交易都是公开的,任何人都可以从任何p2pk地址获得公钥。然后,运行Shor算法的量子计算机可以从这个地址推导出私钥。这将使拥有量子计算机的人能够使用该地址所有的比特币。

在第二种类型的交易中,收件人的地址是由公钥的哈希值组成。由于哈希散列是一个单向的加密函数,公钥不会被地址直接揭示。第一个也是最流行的实现方式被称为 “pay to public key hash”(p2pkh),旨在解决上述两个问题(校验和和地址长度,关于更详细的解释,我们参考这个页面。如上所述,公钥不能从地址中检索出来。公钥只有在所有者希望启动交易的时候才会被披露。这意味着,只要资金从未从p2pkh地址转出过,也就是该账户从未被使用过,公钥就不为人所知,私钥也不能用量子计算机计算出。不过,有一个 例外,如果资金曾经从一个特定的p2pkh地址转入(无论数量多少),公钥就会被揭示。从那一刻起,这个地址被标记为”已使用”,最好不要再用来接收新币。事实上,许多钱包的程序设计是为了尽可能地避免地址的重复使用。避免重复使用地址被认为是比特币用户的最佳做法,但你会惊讶于有多少人没有把这个建议放在心上。下一章会有更多关于这个问题的内容。

如果有足够大的量子计算机,现在有多少比特币可以被盗?

想象一下,今天有人成功地建造了一台量子计算机,因此能够推导出私钥。有多少比特币将处于危险之中?

为了回答这个问题,我们分析了整个比特币区块链,以确定哪些币容易受到量子计算机的攻击。如上一节所述,p2pk地址和重复使用的p2pkh地址中的所有比特币都容易受到量子攻击。我们分析的结果如下图所示。

它显示了比特币在各种地址类型中的分布情况。从图中可以清楚地看到,p2pk地址在比特币区块链存在的第一年占据了主导地位。有趣的是,p2pk地址中的数量几乎保持不变(约为200万个比特币)。一个合理的假设是,这些硬币是通过挖矿产生的,并且从未从他们的原始地址转移。

随着p2pkh在2010年被引入,它迅速成为主导。从那时起,大多数比特币都存储在这种类型的地址中。在图中我们看到,存储并在重复使用的p2pkh中的比特币数量从2010年到2014年不断增加,此后慢慢减少,达到目前的250万比特币。这表明,人们普遍遵循不使用p2pk地址以及不重复使用p2pkh地址的最佳做法。尽管如此,仍有超过400万个BTC(约占所有比特币的25%)有可能受到量子攻击。按照目前的价格,这相当于400多亿美元!

图1:存储在容易受到量子攻击的地址中的比特币的分布。这张图显示,大约25%的比特币容易受到量子攻击,有相同数量的易受攻击的p2pk币和p2pkh币。请注意,重复使用的Segwit币出现在图中,但在其他方面没有在文章中提到。

怎样才能减轻比特币被拥有量子计算机的人员窃取的风险?

在上一节中,我们解释了p2pk和重复使用的p2pkh比特币地址容易受到量子攻击。那些从未使用过比特币的p2pkh地址是安全的,因为它们的公钥还没有公开。这意味着,如果你把你的比特币转移到一个新的p2pkh地址,那么它们应该不会受到量子攻击的影响。

这种方法的问题是,许多比特币的所有者已经失去了他们的私钥。这些币不能被转移,等待着被操作第一台足够强大的量子计算机的人拿走。解决这个问题的方法是在比特币社区内达成共识,并提供最后警告,将他们的比特币转移到一个安全地址。在一个预定的时期后,不安全地址里的比特币将变得不可用(技术上,这意味着矿工将忽略来自这些地址的交易)。这样一个激进的措施在实施之前需要仔细考虑,更不用说就这样一个敏感问题达成共识的可行性有多高。

比特币区块链现在和将来对量子攻击有内在的抵抗力吗?

让我们假设一下,所有易受攻击的比特币的所有者都将他们的资金转移到安全的地址(也就是说每个失去了私钥的人都会”神奇地”找到私钥)。这是否意味着,比特币区块链不再容易受到量子攻击?这个问题的答案其实没有那么简单。成为 “量子安全”的先决条件是,与该地址相关的公钥不公开。但正如我们上面所解释的,当你想从这样一个”安全”的地址转移比特币时,你已经暴露了公钥,从而使这个地址变得脆弱。从那一刻起,直到你的交易被找出来,拥有量子计算机的攻击者就有机会窃取你的比特币了。在这样的攻击中,攻击者将首先从公钥中推导出你的私钥,然后向自己的地址发起竞争性交易。他们会试图通过提供更高的挖矿费来获得比原始交易更高的优先权。

在比特币区块链中,目前交易被挖出来需要10分钟左右(除非网络拥堵,这在过去经常发生)。只要量子计算机需要更长的时间来推导特定公钥的私钥,那么网络应该是安全的,可以抵御量子攻击。目前的科学估计预测,量子计算机需要大约8小时来破解一个RSA密钥,另据一些具体的计算预测,一个比特币签名需要30分钟被黑掉。这意味着比特币原则上应该可以抵御量子攻击(只要你不重复使用地址)。然而,由于量子计算机领域仍处于起步阶段,目前还不清楚这样的量子计算机在未来会变得多快。如果量子计算机将有一天接近10分钟内从公钥推导出私钥,那么比特币区块链将很快被破坏。

结束语

量子计算机正在对比特币区块链的安全性构成严重挑战。目前,大约25%流通中的比特币容易受到量子攻击。如果你在一个易受攻击的地址里有比特币,并且相信量子计算的进展比公众所知的更先进,那么你可能应该把你的币转移到一个新的p2pkh地址(别忘了给你的私钥做一个安全备份)。

万一你自己的比特币在新的p2pkh地址中是安全的,如果很多人不会(或不能)采取同样的保护措施,你仍然可能受到影响。在大量比特币被盗的情况下,价格很可能会崩溃,人们对该技术的信心也会丧失。

即使每个人都采取同样的保护措施,量子计算机最终可能变得如此之快,以至于破坏比特币的交易过程。在这种情况下,比特币区块链的安全性将从根本上被破坏。在这种情况下,唯一的解决方案是过渡到一种被称为”后量子密码学”的新型密码学,这种密码学被认为在本质上可以抵抗量子攻击。这些类型的算法对区块链的可用性提出了其他挑战,世界各地的密码学家都在研究。我们预计,未来对后量子密码学的研究将最终带来必要的变化,以建立强大的、面向未来的区块链应用。