喜欢一个人,始于颜值,陷于才华,忠于人品,痴于肉体,
探索一件事:始于好奇,陷于细节,忠于问题,痴于学习。

2019年10 月 23 日,一篇表示谷歌已成功实现「量子霸权」的论文以封面文章形式在《Nature》杂志 150 周年版上重磅发表。瞬间网络上引起了广泛的讨论和研究。当天晚上还引起了比特币价格暴跌了 300 美元。

同时,”量子计算机将颠覆数字加密货币“的言论又在网络上蔓延开来。作为一名软件工程师的直觉告诉我,经典计算机和量子计算机应该是不同的物种,颠覆没有那么简单。 但是科学判断不能凭感觉,出于好奇,笔者查阅了大量资料,结合自己的理解,总算得出了一个符合当“前科学理解”的结论。 首先我说下结论:量子计算机可能破解部分现有加密算法,但是我们并不需要担心那一天的到来

事件解读

首先我们来分析一下关于谷歌宣布“量子霸权”这一事件。谷歌首席执行长 Sundar Pichai 称这次实验没有实用性但具有莱特兄弟第一架飞机意义,证实飞机此一概念是有可能。 这其实有点夸大这次实验的意义了,莱特兄弟的第一架飞机当时在人类飞行技术上是有重大的技术突破的,Google 的这次实验对于量子计算机并没有重大突破。 正如 IBM 研究员评价的那样,其运作方式依然没有超出目前量子科技范围,其只在特定条件特定问题下的一种实验问题结果。

回到颠覆数字货币的问题,Google 的研究只是论证了量子计算机对某些特定类型问题的实际适用性,并没有突破密码学技术,更别具有通用性了。 “量子计算机研发成功” 跟 “颠覆数字加密货币” 二者之间没有任何的逻辑关系。

我们只能说谷歌第一次试爆了一颗小型的原子弹而已,并不能说明谷歌掌握的可控核聚变的技术,二者的技术水平存在巨大的差距。

何为量子计算机?

量子计算机是 史蒂芬·威斯纳 在1969年最早提出的,当时叫法是 基于量子力学的计算设备。不同于经典计算机,量子计算机用来存储数据的对象是量子比特,它使用量子算法来进行数据操作。 量子计算机有两个独特的优秀特性:超大的信息容量和超强的并行计算的能力。

超大的信息容量

量子比特是量子信息的计量单位。传统电脑使用的是0和1,量子电脑虽然也是使用0跟1,但不同的是,量子电脑的0与1可以同时计算。 在经典计算机架构中,一个比特在同一时间,只有0或1,不是0就是1,不是1就是0,只存在一种状态,但量子比特可以是1同时也可以是0,两种状态同时存在,这种效果叫量子叠加。 量子叠加能够大大增加量子比特编码的信息容量,N 个量子比特的信息容量比 N 个经典比特大了 2 的 N 次方。

google 的 “西克莫” 此次用了 54 个量子比特,每个量子比特都由超导环组成。由于有1个量子比特无法有效工作,芯片实际只使用了53个量子比特。 53 个量子比特可以存储多大的数呢,也就是 2的106 次方,这是一个非常大的数,大致相当太阳跟一粒沙子的体积的比值。

超强的并行计算能力

在经典计算架构里面,并行计算是通过多核 CPU 的方式来实现的,也就是说有几个 CPU, 就能并行运行几条计算指令。 但是本质上它并没有减少计算量,举个简单的例子,假设现在要执行 N 条指令,分别对内存中的 N 个变量进行 +1 操作,如果是经典计算机,它会把这10条指令分别发送给 N 个 CPU 去执行(假设当前计算机有 N 核的话)。 这样带来的效率提升是很有限的,因为你的 CPU 的核数不可能无限多,再说在多核CPU架构体系中要保持多份数据的同步是需要额外花费很多资源的。

但是量子计算机利用量子纠缠可以很方便的实现了,你只需要把存放这N份数据的量子比特制备成纠缠态,这样只要其中一份数据改变了,那么剩下的 N-1 份数据也会自动改变。这种方式带来的效率提升是指数级的。

大多数人还是只是把量子计算机看成一个更快的计算机,而忽略了它与经典计算的本质上的不同,他们完全是两个不同的物种。量子计算机中的“计算”和经典计算机的“计算”的实现方式完全不一样

其实量子计算机的实现过程相当复杂,从简单的输入输出,到计算,都远比经典计算机实现的难度要高得多。 举个例子,对于系统重启这个简单的动作,对经典计算机来说,是非常容易的,断电就可以了,但是对于量子计算机来说却是一个难题,因为实现量子比特的物理系统都是超导,光子这些物理器件, 要操作一群光子让它们同时处于同一种状态这本身就不是一件容易的事情。所以说量子计算机的可控性和扩展性都远远没有我们想象中的那么容易。

量子计算机是否会威胁到经典计算机的密码系统?

一个新的计算机需要合适的算法和硬件(物理系统)的支持,才能发挥它的最大算力,经典计算机的算法并不能直接移植到量子计算机。 量子计算机只有运行能充分发挥它优势的量子算法,才能在计算速度上碾压经典计算机。

目前区块链系统中应用最广泛的加密算法是 SHA-256 和椭圆曲线算法(ECC),以椭圆曲线算法为例,我们做一个技术分析,看如果要使用量子计算机破解椭圆曲线算法需要满足什么条件。

  1. 有人发明了破解 ECC 的量子算法。
  2. 该算法能够完美的在量子计算机中运行,并且能够带来指数级别的速度提升。

就目前来说,在破解密码这方面的量子算法屈指可数,表现最好的当属数学家[彼得·肖尔]提出的大数的质因数分解算法,也叫肖尔算法,这个算法在数学上严格证明了, 用量子计算机去破解密码的速度能够达到指数速度提升。肖尔算法在破解 RSA 算法时表现的特别优秀,但是对于 ECC 算法它照样束手无策。因为 ECC 算法并不是基于大质数因子分解的,它的安全级别 更高一些,一个 ECC 164 位的密钥产生一个安全级,相当于RSA 1024位密钥提供的保密强度,而且生成秘钥的计算量更小,处理速度更快。顺便提一句,目前我国居民二代身份证正在使用 256 位的椭圆曲线密码。

而且从 1994 年肖尔算法被提出到现在,在也没有第二种量子算法能够表现得跟肖尔算法一样优秀。

还有一个值得一提的是由计算机科学家格罗佛提出的格罗佛算法,可以在无需的数据库中进行搜索的量子算法(其实就是类似比特币的挖矿算法),虽然能够带来平方根级别的速度提升,但是这对于密码破解来说帮助也是不大的。 举个例子来说,经典计算机想要破解 ECC 需要 10 亿年,如果是平方根级别的加速也需要 31622 年,这样的破解是没有意义的。

我这里还可以举一个简单来帮助大家理解,为什么量子计算机速度这么快,却还是无法破解经典计算机的密码。这个例子未必严谨,但是非常直观,便于理解。

从某种意义上来说,人的大脑也可以算作是跟量子计算机同级别计算机,在某些方面的计算能力也是远超经典计算机的。比如说现在的人工智能,模式识别。 即使现在的最快的计算机,它的识别速度(计算速度)也不及一个智商中等的人类的万分之一。但是我们能根据这个得出判断说人比经典计算机算得快吗?或者我们谁敢说他的大脑的算力能破解比特币吗? 显然不能,因为他们用的底层算法,实现的模式完全不一样。人想要入侵计算机还是得按照计算机的算法来,不能隔空攻击。这个就类似量子计算机和我们现有计算机架构系统的区别。

从上面的分析我们基本可以看出,要通过量子计算机破解经典计算机的系统还有很长的路要走,有些算法理论上能否破解还是个未知数,跟何况在工程师实施的时候的实际效果可能远达不到理论值。

如果量子时代真的到来我们是否需要恐慌呢?

马云曾在 G20 大会上发言说,我们今天所有忧虑的问题都会有解决方案的,你没有解决方案,不代表明天没有,今天没有解决方案,不代表明天没有。

爱因斯坦说,我们总是站在“有”的世界,试图理解“无”的问题,按照“有”的逻辑,对“无”产生恐惧。

用一句话来概括就是:明天总有明天的办法

即使真的到了那天,只要量子计算机不是突然诞生的,我们就有足够的时间把区块链的私钥使用量子加密,把之前的交易重新签名一次就 OK 了。 用《精通比特币》作者 Andreas Antonopoulos 更简单粗暴的解释就是,“如果量子计算机到来,我们就升级。”

假如量子计算机真的普及了,那么加密解密的战场就转移到量子计算机了,而不是经典计算机领域了,到时候守护我们整个社会信任和秩序的就变成量子计算机了。 但是我认为更有可能是量子计算机和经典计算机相互配合,各自坐着各自擅长的事情,而不会是一个把另一个干掉。因为我们前面说了,并不是所有的算法都适合用量子计算机去计算。

总结

为什么吃瓜群众会如此恐慌,然后大量转发呢?

  1. 主要原因我觉得是被论文中的 ”量子计算 200 秒 = 地球最强超算 1 万年“ 的结论给误导了。
  2. 其次从传播心理学的角度上来解释,人们转发这种高科技文章只是为了证明自己关注科技,懂科技,蹭个热点而已,并不是他们真的担心比特币会崩盘,该他们带来经济损失,事实上他们当中很多人可能都不曾持有比特币。
  3. 大多数人对量子力学有一种既神秘又一知半解的心理,提起量子计算机,大家都不明觉厉,习惯性的恐慌,习惯性的转发而已。

今天很多媒体上的文章都有很大的误导性和炒作性,有些水平不高的小编就喜欢搬出各种高大上的前沿科技概念,忽悠群众,让你不明觉厉。 有时候我们可能脑子里面明明有一大堆的问题,但是因为不懂,所以不敢问,因为怕问了之后会让大家知道你不懂,很没面子,所以不得不为《皇帝的新衣》拍手称赞。 这个时候其实我们只要采用严格的逻辑思维,就能找到事情的逻辑漏洞,判断事情的真伪。

参考资料: