跟机器学习一样,我们目前还没有任何的工作能够接近真正意义上的通用人工智能。这个通用人工智能是指对某个主题的真正理解,或者真正具有意识或者自我意识的人工系统。定义这些术语可能比较棘手,也具有一些争议。就我个人而言,我目前还没见过一个正式的通用人工智能的合理定义,我只是抓住了对它概念的知觉的理解并且总结。我怀疑我们永远不会实现真正意义上的通用人工智能,即使P=NP。虽然我们在解决NP问题方面取得了很大的进展,但是很多密码学的领域仍旧毫无进展。包括单向函数、安全散列和公钥密码等多种形式的加密。一种有效的NP算法,其实是能够破解所有密码系统的,除了那些信息理论上安全的密码系统(比如一次性密码和一些量子物理学的安全系统)。我们已经看到过很多成功的网络安全攻击,但是它们通常源于服务器糟糕的设置、很差的随机数生成器,或者人为的一些错误,几乎都不是由于密码学本身的问题所导致的。现在的大多数CPU芯片都内置AEC,因此一旦我们使用公钥密码技术来设置私钥,我们就可以像发送纯文本一样轻松的发送加密数据了。加密为区块链和加密货币提供了底层的技术支持,这意味着人们对加密技术的信任十分高,足以将现金和比特币进行交换。Michael Kearns和Lesilie Valiant在1994年的研究表明,学习最小的电路,甚至学习最小的有界层神经网络,都可以用来分解质因数和破解公钥密码系统。但是到目前为止,机器学习尚未成功用于破解密码协议。可能有人会问,我们既然已经在许多其他NP问题上取得了很多的进展,为什么单单是密码学上失灵了呢?在密码学中,我们可以选择问题,专门设计为这个场景单独设计的方法来加密,从而达到不错的效果。而其他的NP问题通常使用通用的、通过程序自己形成的方法来执行。这些自动匹配的方法可能不是量体裁衣的,就并不是最合适和最困难的方法。量子计算是目前我们知道的唯一一个能够威胁到互联网公钥协议安全的存在。Shor的算法可以用于对大数进行质因数分解和其他相关的数论计算。这种担忧可以通过几种方法来加以解决。虽然目前来看量子计算取得了一些令人惊叹的进步,但是它距离能够破解当今的密码系统相去甚远,毕竟还不能够处理足够多的纠缠位。有人估计,可能还得需要几十年甚至几个世纪才能真正使用Shor算法+量子计算机对目前的公钥产生威胁。另外,研究人员在开发对量子攻击具有抵抗力的公钥密码系统方面取得了良好的进展。我们将在本文后面的部分详细介绍量子计算。因式分解问题,目前来说并不是NP完全的,即使我们没有大规模的量子计算机,数学上的突破也肯定有可能推导出很高效有用的解决方案。不论我们如何看待量子计算的未来,一些拥有了多种公钥系统的计算机都可能解决因式分解问题。话说回来,面对这么多难以计算的问题,我们能有什么优势呢?或者说我们能从中学习到些什么呢?我想到了密码学。但是,既然造物主让某些计算问题变得十分困难和复杂,甚至难以求解和实现,肯定是有内在原因的,这和很多自然界中的摩擦力现象(Friction)十分类似。在物理世界中,摩擦力通常是需要我们额外付出能量做功来克服的,但是如果没有摩擦力这种常在的阻力,我们甚至无法行走、跑步和前进。同样的,在计算机的世界里,复杂性虽然会导致一些计算困难,但是如果没有它,我们可能就会遇到类似于无法前进般的更棘手的问题。在许多情况下,P=NP将消除这种摩擦力。最近发表的很多计算理论相关论文告诉我们,如果消除了摩擦力般的计算复杂性,那么会产生许多负面的影响。例如,如果消除了计算复杂性,那么人们将不能够表露自己的思想,人们也只能够看到其他人所采取的行动,而不知其动作背后的目的。经济学家有一个术语:偏好启示(Preference Revelation),这个现象试图根据我们所采取的行为来推断其背后的真实目的。在过去的大量时间里,我们通常没有大量的训练数据来支持类似模型的训练,因此这种程序也成为了一种空中楼阁般高度不精确的“艺术品”,无法实用。