交互式零知识三色问题演示 原文

这是针对三色图的零知识证明协议的交互式演示。 零知识证明可以让验证者相信一个事实的真实性(即,一个图仅三色),而无需揭示图的具体颜色。

此应用程序允许您以验证者的身份玩游戏。 该应用程序(证明者)为您提供了一个图形,其颜色对您来说是隐藏的,并且您可以选择一条边,验证器将显示其颜色。 选择一个图并尝试点击一些边。

选择一个图开始
置信度: 0%

您可能会注意到游戏的不同轮次之间颜色会发生变化; 尽管证明者一旦为您提供选择就不允许改变主意,但允许混合选择之间的颜色。 事实上,如果没有,您可以对整个着色进行逆向工程(使其不是零知识证明)您可以通过按 揭露 按钮检查应用程序是否违背其承诺 . (既然这告诉你真正的颜色是什么,这显然不是零知识协议的一部分!)

一旦厌倦了手动单击边,您可以选择 自动 来加快速度。 当你进行了更多轮的协议时,证明者由于幸运而说谎(图不是三色)概率在下降,这也反映在置信度指标中。

练习 1: 目前,您只能选择相邻的节点对进行检查。 如果您可以选择任意节点对来检查,证明仍然是零知识吗?

练习 2: 当前用于置信度的方程是 1-(1/E)^n,其中 E 是图中的边,n 是运行试验的次数。 这是正确的等式吗? 为什么没有先验?