零知识证明
是一方(证明者)向另一方(检验者)证明某命题的方法,特点是过程中除“该命题为真”之事外,不泄露任何信息。因此,可理解成“零泄密证明”。
零知识证明要具备三种性质:
完备性 合理性 零知识
四种零知识证明
第一关分球实验
正常人a和红绿色盲b,进行一个任务,需要将40个由红色和绿色混合的球,需要将红色和绿色分开。这对色觉正常的a来说非常容易(代表拥有某些特殊能力),但又不想让b知道如何分球。于是设计了一个游戏:b左右手各持一个不同颜色的球,b有50%的概率进行交换,让a判断是否b手中的球是否交换,经过多轮验证,b知道a是拥有分辨红绿颜色的能力。
第二关山洞
现在有一个环形山洞,小刚听说小明知道山洞门的秘钥,如何小刚如何验证小明是否知道呢?现有这样一个游戏:小明随机从a或者b洞口进入,小刚在洞口外面指定小明从哪个洞口出,经过多次验证,小明每次都能正确到达,于是验证成功。
第三关数独
小明和小刚共同遇到了一个问题,完成数独表格,小明说这一点难不倒我,但是小明并不想让小刚看到自己是如何解答这个问题的。小刚有三种选择按列选,按行选,按大格子选。每一个规格一个袋子,随机打乱,随后任意选择一个来验证验证是否满足1-9,经过多次测试即可验证小明是有能力完成这个任务,但不泄露任何解决答案。
第四关染色问题
任何世界地图都可以用四种颜色把它涂满,并且相邻国家的颜色不一样,但是地图不一定使用三种颜色涂满使得相邻国家的颜色不一样。
使用三种颜色将地图涂满
艾维 · 威哥德尔森:任何一个数学的命题,可以转化为np完全问题(三染色为np完成问题)
参考资料
神奇的零知识证明!既能保守秘密,又让别人信你!_哔哩哔哩_bilibili
百万富翁问题
姚启智教授于1982年在论文《Protocols for Secure computation》中以百万富翁问题(两个百万富翁A和B想知道他们两个谁更富有,但他们都不想让对方及其第三方指导自己财富的任何信息)提出。
同时也在论文中提出了自己的解决方法。