---
# System prepended metadata

title: 关于「知识」vs「信息」的快速笔记

---

# 关于「知识」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比特「信息」。但是他没有的到任何「知识」（得到「零知识」），因为他可以也自己去抛这个硬币。

