(原创编译内容,如需转载请联系本人推特获得授权,所有权利保留)
零知识证明是近期Web3行业非常火的概念,然而,什么是零知识证明(和交互证明)?近期读到一篇2008年的论文,Justin Bledin(现在供职于约翰霍普金斯大学)讨论了所谓的交互证明和零知识证明的认识论问题(epistemology),特别是它们可否被归类为一种数学意义上的“证明”,文章开头作者用一个很有趣的小故事来解释零知识证明:
一只猫给一只老鼠做了个迷宫,迷宫有南北两个入口/出口。
猫说:我的小老鼠,我打赌你不能穿越我的迷宫。如果你能,我就给你很多奶酪。如果不能,我就把你吃掉!
老鼠说:但是你是一只狡猾的猫。我怎么知道你的迷宫里有一条路可以穿越迷宫?证明给我看,我就接受你的挑战。
猫说:你太狡猾了!为了证明给你看,我必须给你指出一条穿过迷宫的路。那我们还有什么乐趣呢?
老鼠说:不一定。你可以把我丢在迷宫里的某个随机地点。然后我将随机选择北方或南方的出口,你将随机带我去那里。如果我们重复的次数够多,我就会相信这两个开口之间存在一条路。
猫说:嗯,这样你就还是不知道开口之间的路径,只是一个随机走到它们的集合。你好聪明!那我们就开始吧。
除了作者的这个小故事之外,其实我们可能用验证码的例子来解释更容易理解:网站会用一些找图片的机制来验证操作人员是真人还是机器人。比如一次成功验证有90%的概率可以确定操作者是真人,那么只要连续做足够多次(例如一百次),那就可以在统计学意义上认定操作者是真人。这样用户就不用在暴露个人隐私的情况下(例如开摄像头)向网站证明自己是真人了。因为这个过程存在着证明方(做题人)和验证方(出题人)两方,因此也就被称之为“交互式证明”。
但是这种证明和数学中的证明是一回事吗?如果是的话,那么我们对于数学体系的原有认知就会需遭到革命性的挑战,因为这种证据从性质上是一种“概率证据”(即便有99.999%的概率是真人,和那个人站在你面前说我是真人之间还是存在区别的)。只不过这种区别在日常生活中可以被近似掉,但是在理论世界中,这两种证明手段会存在认识论基础上的天差地别。因此作者在这篇文章里就讨论了这个问题,他不认为零知识证明会对数学理论带来多么“革命性的改变”。
这篇论文虽然包含了大量数学哲学、逻辑学、计算机科学(复杂性理论)的论述,但其大意是足够让普通读者理解的:即我们有必要对“零知识证明”的性质有清醒的认识,并且将它与传统的数学证明相区分。与1+1=2的数学证明不同,零知识证明可能更像是人与人之间的交流,就像在朋友圈里晒豪宅奢侈品——在不告诉其他人自己有多少钱的情况下,向周围人“证明”自己有钱的事实。
下面是该文的摘要与一些要点摘抄:
这篇文章探讨了关于交互式零知识证明的研究对哲学家在数学和理论计算机科学的认识论方面有什么启发(如果有的话)。尽管这种证明系统最初看起来是 "革命性的",而且是一种非标准的 "证明 "概念,但我将论证它们并没有什么哲学意义。从这项工作中可能得到的对数学认识论的教训--我们的数学证明模型应该包括互动,我们的数学证据理论必须考虑概率证据,我们对数学证明的评价应该只关注其说服力--不是被误导就是老生常谈。虽然交互式证明和数学证明之间的差异表明,有必要为理论计算机科学,或至少是复杂性理论(complexity theory),发展一种不同于我们的数学知识理论的单独的认识论,但随便看看复杂性理论的实际做法就会发现,这样一种独特的认识论可能没有必要。
要点摘抄:
文献来源:Justin Bledin, "Challenging epistemology: Interactive proofs and zero knowledge", Journal of Applied Logic, Volume 6, Issue 4, December 2008, Pages 490-501.
编译者:Troyso (Tromso) 是香港的一名法律工作者,关注法律和金融领域的Web3创新,本文仅为个人学术观点探讨。本人推特@Troyso_tech,即刻@Troyso。