今天我们谈谈量子计算机对区块链的威胁
此前不久,华为举行的《与任正非咖啡对话》活动上 华为创始人任正非与智能工厂工业 4.0 精神之父、德国生产自动化教授 Detlef Zuehlke 以及前联合国安理会主席马凯硕进行了“数字主权,从对话到行动”的主题对话。 在对话过程中,任正非表示,关于信息安全问题永远是大问题,就和矛和盾的关系一样,有盾一定有矛,但是量子计算机出现之后很多计算问题就可以解决了。 “很多人将区块链说的多么伟大,但在量子计算面前就一钱不值了。”对于信息安全问题,任正非认为可以求助于法律。 针对这种观点,区块链信仰以为:量子计算机对于区块链安全性的影响微乎其微,从技术角度来说不构成威胁。
纵观量子计算的发展历史,公认的称得上“有实际意义”的量子计算算法,最多的时候一共有两个半: 第一个也是最著名的,是可以分解大整数或者寻找群里面周期的 Shor 算法,这个算法比经典算法有指数级别的优势,可以用来攻击 RSA 算法和椭圆曲线加密/签名; 第二个是用于搜索的 Grover 算法,这个算法有平方量级的加速,比如说原来用的时间是 N 的话,这个量子算法只需要 √N 的时间就可以; 最后半个,是解线性方程组的 HHL 算法,号称在满足若干个前提条件的情况下,可以加速机器学习中间的某一步。
但是最近的研究成果表明,经典算法也可以做到差不多的程度,所以这半个也不能算数了,现在只剩下两个。 对于其余几乎所有有意义的、非刻意构造的问题,量子计算目前都还没有显示出超越经典计算机的优势。 这也是近三十年来量子计算领域最为关注的问题。 所以,即便是现在就有了高性能的量子计算机,那么最大的影响也就是 RSA 加密算法和 ECDSA 签名算法不安全了,需要更换成别的加密和签名算法。 到量子计算机做出来的时候大家更换新的算法就行了。
对于一般的计算问题,包括寻找哈希函数的碰撞等,量子计算机并没有明显的优势。也就是说,用量子计算机也不可能一下子就找到哈希函数的碰撞。 即便用 Grover 量子搜索算法挖矿也许会暂时有一点优势,但顶多也就是相当于从 CPU 升级到 ASIC 矿机的程度。等到大家都用量子计算机挖矿就建立起新的平衡了。
另外,中本聪还是非常厉害的,这点不得不佩服。比特币不是直接拿公钥当地址,而是用公钥的哈希作为地址,并且一般建议地址不要重复使用。 因此对于没有暴露过公钥的地址,量子计算机也无从下手。交易广播的时候,虽然公钥会暴露,但是大概率在攻击者破解公钥之前交易就已经被确认, 实际上也不会遭到攻击。而且地址采用公钥的哈希,实际上也非常方便将来升级到抗量子计算攻击的签名算法。
所以,量子计算对于区块链的安全影响很小,而且是容易解决的,从技术角度来说不构成威胁。
2019年9月,谷歌在《自然》(Nature)杂志上发表论文,声称他们的量子计算机“Sycamore”已经取得了量子霸权(quantum supremacy),能在短短3分20秒内完成一项验证大数字随机性的任务。 消息传来,也曾一度引发人们的担忧,量子计算的逐步实现可能给区块链引以为傲的加密体系带来彻底的颠覆。 量子霸权对区块链有什么影响? 先不说这个说法遭到以 IBM 为首的业界和学界很多科学家的质疑,谷歌实际上就是找了一个对量子计算特别友好、同时对经典计算机特别不友好的问题 —— 模拟一个随机量子电路的行为,然后在这个问题上说量子芯片比超级计算机做得好 这点在科学上可能有一些纪念意义,但是对于解决现实问题毫无意义,更不代表着在某一个有用的问题上“谷歌”的量子计算芯片都可以几分钟完成经典超级计算机要花很久才能完成的计算。
打个比方,我们不能因为一个人学驴叫没有一头驴学的像,就认为这头驴比人更厉害,更不可能认为驴类已经进化到全方位超过人类,实现了“驴类霸权”。 还回到量子计算机的进展的问题,按照谷歌现在的量子芯片的水平估计,量子计算机还要多久才能发展到可以攻破现实使用的 RSA 加密算法呢? 以密钥长度为 2048 位的 RSA 算法为例,这实际上已经是现在用的最低安全性的标准了,大约需要 3000~4000 个逻辑量子比特才能攻破。 谷歌现在的芯片已经达到了 60 个量子比特,按照量子摩尔定律算似乎也就还需要不到 10 年时间。
但是实际上,谷歌的芯片上实现的是物理量子比特,不是逻辑量子比特。物理量子比特很容易受到外界干扰影响,不能直接用于复杂计算。 所以真正要计算的话需要把很多个物理量子比特用量子纠错码组织在一起,形成逻辑量子比特以后才能用。按照现在能达到的误差水平, 大约需要几万到几十万个物理量子比特才能实现一个逻辑量子比特。用经典计算机的硬件做个类比的话,就是破解 2048 位的 RSA 算法需要一个 4000 位的量子计算 CPU,但是现在的量子芯片的发展水平大概到了“量子三极管”的程度,距离实现一个逻辑上的量子门电路都还有一段距离。破解现实中的 RSA 算法至少应该 是二十年以后的事儿了。 再强调一下,像量子计算机这样,凭借工程上的进展,一步一步地提高计算能力,发展到足以攻破密码学算法,实际上对于安全的影响是很小的。因为我们可以提前知道威胁即将到来,然后升级到更厉害的密码学算法。 最终等量子计算机真的来了,发现早就已经没人用 RSA 了。
跟量子计算机的工程进展相比,对整个区块链行业更危险的其实是数学家,包括密码学家和理论计算机科学家。 因为他们可能某天灵光一现,突然发现一个很厉害的攻击方法,让所有人都措手不及。 所以我们还是要善待他们,以免将来出现某个数学天才破解了区块链用到的密码学算法报复社会的情况。
从公钥逆推回私钥的壁垒只有一个---椭圆曲线密码学(Elliptic curve cryptography),简称ECC,这是一种建立公开秘钥加密的算法,也就是非对称加密。 从数学角度来看,椭圆曲线可以这样表示:比特币基于secp256k1曲线的椭圆曲线数字签名算法(ECDSA)便是椭圆曲线其中的一种。
由于椭圆曲线算法依赖于离散对数困难问题,而上文提到的秀尔算法又可以被用为离散对数的求解,所以理论上拥有一定有效量子比特的量子计算机会对比特币的椭圆曲线算法造成威胁。 然而secp256k1曲线的安全性是2^128 ,所以就算秀尔算法将其复杂度降低到 128^3,理论上攻击secp256k1曲线的量子计算机也至少要有1500个逻辑量子比特。 考虑到要使用量子纠错,实际上需要的物理量子比特将远远高于这个数字。 2019年9月份谷歌宣布的迄今为止最大的通用量子计算机也只有53个物理量子比特,错误率极高不说,并且只能在接近绝对零度的实验室条件下运行。 与此同时,谷歌使用的超导芯片在扩展性上天然存在很多问题,所以如何在保持可以操控的基础上增加更多的量子比特在可预见的将来都将是一个非常大的挑战。
虽然不能完全预测量子计算将以何种速度发展,但预计比特币的256位ECDSA密钥至少在2040年之前是安全的。 比特币本身已经具有一些内置的抗量子特质,如果你有一个好的比特币使用习惯,即一个钱包地址只使用一次,那么你的公钥只有当你花费比特币时才会被广播到全网。 这时,量子计算机将只有极短的时间来破解你的私钥,即从交易发送到交易信息被添加到区块中的这段时间。让我们假设你并没有一个好的比特币使用习惯,量子计算机发展也突飞猛进,所有常用的公钥算法都被破坏了。
比特币还有一个杀手锏,那就是升级它的加密算法。众所周知,如果技术手段能够破解一种密码,它就必然可以再制造出一种破解不了的密码。 除此之外,在密码学家对后量子密码学的研究中,超奇异椭圆曲线同源密钥交换(SIDH)也有望取代当前的常规椭圆曲线密钥交换(ECDH)。
基于高维度向量空间的密码学,即格密码学也会将破译难度再提升一个宇宙量级,足以对抗量子计算。 新的公钥算法将作为软分叉添加到比特币,比特币用户只需将其比特币发送到新创建的地址即可实现量子安全。 对于即将到来的量子时代,作为区块链从业者的我们应该怀着敬畏与期待的心情,迎接它的到来。量子计算机的价值在于解决典型的NPC问题和其他如三体、七桥、 蛋白质折叠、地震预测、天气预报等问题。
量子计算机不是万能的,它并不能取代经典计算机,更不可能摧毁区块链,对于区块链的威胁是非常小的,大可不必担心。