我如何向最终用户解释“零知识证明”?

信息安全 密码学 比特币 文件 最终用户
2021-08-17 00:18:02

ZKP 允许证明知道某个秘密的答案,而无需实际披露该答案是什么。

有什么类比可以帮助人们将这个概念应用到日常实践中吗?一个“对孩子撒谎”的例子就足够了。

例如,Diffie-Hellman 有颜色混合的比喻和挂锁的比喻。

是否有任何现实生活中的隐喻、具有超能力的超级英雄、英雄/反派、物体或任何与某人相关的事物来帮助描述 ZKP 是什么?

我的意图是将获胜的隐喻转换为动画,在呈现 ZKP 时将在移动设备上播放。(发送方一个动画,接收方一个动画)

4个回答

我在研究生院的一次客座讲座中听到了这个例子。我认为这很简单,因为我自己已经多次使用它,向加密/数学知识几乎为零的人解释 ZKP。

假设我想说服你,我有一种超能力,可以在几秒钟内计算出一棵树上叶子的确切数量。我想在不透露确切数字和不透露我的超能力如何运作的情况下说服你。我可以设计一个简单的协议:

我会闭上眼睛,让你选择从那棵树上摘下一片叶子。由于这只是一个选择,您要么将其拉下来,要么不会。除了用我的超能力再次快速数叶子之外,我没有其他办法知道你是否做到了现在当我看这棵树时,你会问我是否真的把它拔下来了。

如果我给你一个错误的答案,你会立刻知道我的超能力是假的,我的知识也是假的。但是,如果我的回答是正确的,您可能会认为我只是走运了。在这种情况下,我们可以重复上述步骤。我们可以继续重复这些步骤,直到您对我实际上拥有超级大国并且我知道确切数字这一事实感到满意为止

我遇到的零知识证明的最佳演示是Moni Naor、Yael Naor 和 Omer Reingold的“应用儿童密码学,或如何说服你的孩子你没有作弊” 。他们研究了一个简单但现实生活中的密码学问题:如何在不透露任何有关他所在位置的信息的情况下让人们相信您知道沃尔多在哪里的谜题的解决方案。正如论文的标题所暗示的那样,解释旨在简单到让孩子能够理解。

好的答案是这个故事:值得注意的案例是“阿里巴巴的洞穴”隐喻,用于说明零知识证明背后的基本机制:证明者必须通过交互式协议让验证者相信他/她的知识,但在同时,旁观者不得获得任何有关秘密知识的信息。

  • 来自书:用隐喻解释算法,Michal Forišek · Monika Steinová,2013
  • 这本书的参考资料是 1990 年的这篇文章:如何向您的孩子解释零知识协议。

在此处输入图像描述

对 rsa 混合类比的赞誉。一个很棒的发现。

zkp 主要依赖于某种操作,验证方能够规定对方可以使用的一些术语。当然,这在很大程度上取决于首先提出的问题。

如果问题被表述为 Victor 想知道 Peggy 是否可以进入隧道的左侧/右侧,而不是知道通过门的密码,那么 Peggy Victor 秘密门组合将不起作用。

所以现实生活中的问题,对于孩子来说,大概可以这样概括:

我想知道您是否了解 A/B/C 的工作原理,或者您是否了解表明您了解的知识。其证明可能是某种形式的测试,它可能会转化为对已接受答案的某种形式的逐字阐述,或知识的物理表达(即你知道内燃机是如何工作的,是的,这是公寓8 和双碳水化合物,我用我赤手空拳用从俄罗斯北部某处某处矿井深处凿出的钢制成)。ZKP 的棘手之处在于,它延伸到许多其他领域,是在产生证明时,它本身是否揭示了得出答案的方式。

它出现在现实生活中,这转化为验证方对证明进行逆向工程以确定内部阴谋所需的时间。所以我认为 ZKP 也是关于将这个时间增加到一个没有意义的比例。

这样,您就可以将其应用于许多现实世界的示例。