# 关于「知识」vs「信息」的快速笔记 「知识」是什么,这个问题哲学家已经辩论几千年了,没有一个最终的答案。 [这个](https://youtu.be/fOGdb1CTu5c?t=1068) "5个level讲零知识"的视频中,Shang-Hua Teng 教授作为零知识专家提出了一个问题:“为什么叫「零知识证明」,而不叫「零信息证明」或「零数据证明」?“ 显然证明系统中是有*数据*的,所以肯定不是「零数据证明」。 Sahai教授给出了如下回答:零知识是那些你总是可以预测答案的东西,因为你已经知道答案所以你不可能在交互中获取任何新「知识」。 这个回答是很重要的insight,事实上GMR正是就是以这个insight用「模拟范式」定义了零知识。但是很明显这个回答依然避开了那个tricky的问题:“什么是「知识」?” > “知识”在数学上是有非常良好的定义的。但“零知识”不是“零信息”的,因为要至少传递一些 01 串的信息给对方。零知识本质上在于熵很大,都是很随机的信息,无法从中提取出有用的知识 这位朋友的这个[说法](https://twitter.com/hu_zhiwei/status/1541664506610614272)(也就是郭老师和姚老师的说法hhh)我认为是值得商榷的,事实是「知识」在数学上也没有一个公认的严格定义,但「零知识」有。 在用模拟范式得到零知识的定义之前,GMR曾对「知识」的定义进行过探索:「知识」是用比特度量的通过一次协议通信后计算能力增长的上界。但是这个定义并没有得到哪怕是学术界的公认(大家更关注「零知识」)。 ![](https://i.imgur.com/14FabKV.png) 通过查阅Goldreich的《Foundation of Cryptography》(我心目中的零知识圣经),我找到了如下的解释: ![](https://i.imgur.com/eA2ZiF8.png) 简要解释如下: 1. 「知识」和**计算困难性**有关,而「信息」无关。 - 如果一个问题(对你来说)是困难的(比如一个NPC问题),你之前算不出答案,但是现在告诉你一个答案,这个你得到原来自己计算不出来的结果的过程就是一个「知识增长」的过程(俗称“学到了!”)。 - 但是如果一个问题是简单的(比如1+1等于几),现在告诉你答案(等于2),对你来说也没有获得任何新「知识」。(俗称“早知道了!”) - 所以对于验证者觉得是简单的问题(一般来说就是$\mathcal{BPP}$ 问题),或者已经知道答案的问题,「零知识」的达成是非常trivial的。(俗称“我不听我不看🙉🙈”) - 而「信息」是由香农在「信息论」中定义的:一个「事件」发生的「概率」越低,其「信息量」越大,要表示这个事件所需要的「比特」就越多。1比特最大可以表示1比特的信息(注意这里只是上界,传输1比特信息并不一定代表事件的信息量就是1比特,比如回答「太阳从东方升起吗?」传输的这个1/Yes是1比特但是信息量却为0。) - 问题和答案之间的不确定性关系(概率大小),决定了信息量,而和问题本身的计算难度无关。所以不管是一个NP-hard难题还是“1+1等于几”,只要答案是确定的,也不管协议中传输了多少比特,验证者得到的都是「零信息」。反之哪怕是“抛硬币的结果是什么”这种简单的问题,回答都会使得验证者获得1比特的「信息」。 2. 「知识」和**公开的已知的对象**有关,「信息」和只有**部分信息公开已知的对象**有关。 - 试想一个证明者永远抛硬币🪙来回答验证者的问题(挑战查询),比如“双面人哈维”。从信息论角度,验证者每收到一个回答,都得到了1比特「信息」。但是他没有的到任何「知识」(得到「零知识」),因为他可以也自己去抛这个硬币。