用万圣节糖果解释什么是“零知识证明”,可能是关于密码学很通俗的解释了……
零知识证明
零知识证明(又称零知识密码证明,ZKP)是一种在不交换密码的情况下进行身份验证的方法,在这种情况下,密码是无法被窃取的。这是一件非常酷的事情,因为这可以保证你的通信安全,没有人能够获取你的通信内容或你与其他人共享的文件。
通过ZKP,你可以在不泄漏任何事情的情况下证明自己知道“另一端”那个人的很多秘密。“零知识”这一术语的本意源于:第一方(被称为“证明方”)没有透露有关机密的信息(“零知识”),但第二方(被称为“验证方”)确信第一方知道问题所涉及的秘密。
为什么你要在不说出秘密的情况下证明自己知道秘密呢?当你不信任别人,但仍然需要说服他们你知道这个秘密时,你就要在不泄漏秘密内容的情况下证明自己是知情的。那么这又是如何实现的呢?
巧克力棒和百万富翁
下面我们借助Bob和Alice在万圣节得到的巧克力棒来进行说明。
为了在不说出各自具体数量的情况下比较两人巧克力的多少,Bob拿来了4个带锁的盒子,并在每个盒子上贴上标签,上面写着10个、20个、30个、40个(巧克力棒)。
然后Bob只留下与自己拥有的巧克力数量(假设他有20个巧克力棒)一致的箱子的钥匙,扔掉其他所有箱子的钥匙后离开房间。
Alice拿来4张纸,其中一张纸上写着“+”,其余三张纸上都写着“-”。
然后她把所有写着“+”的纸(通过箱子上缝隙)放入与自己巧克力棒数量相对应的盒子中(假设她有30个巧克力棒)。把写有“-”的纸分别放入其他3个盒子中然后离开房间。
Bob回到房间并用自己的钥匙打开与自己巧克力棒数量相对应的盒子,查看盒子中的纸上写的是“+”还是“-”。
Bob如果发现盒子里的纸上写的是“+”,那么说明Alice拥有的巧克力数量和他是一样的。如果是“-”,则说明他们拥有的巧克力数量不同(但他们仍不会和彼此分享各自拥有的巧克力数量)。
我们知道Bob的袋子里有20个巧克力棒,Alice的袋子里有30个巧克力棒。通过打开盒子,并找到写有“-”的纸,Bob得知他和Alice拥有的巧克力数量不同。但是他并不知道Alice拥有的巧克力数量比自己多还是比自己少。
Alice回到房间后会看到Bob手中的纸上写得是“-”,并由此得知Bob拥有的巧克力数与自己不同。但Bob和Alice仍然不知道对方到底有多少巧克力棒,他们只知道他们拥有的巧克力数量是不同的。
同样的例子,但是以一种稍微不同的形式,被广泛地称为“Yao’s Millionaire’s Problem姚氏百万富翁问题”。两个百万富翁想要知道他们拥有的钱数是否相等,却又不想透露具体的数值。这是ZKP工作原理的一个简单例子。
是不是十分简单明了?用这样的解释方式,5岁的小朋友也可以轻松理解“零知识证明”的意思!想要了解哪些有关零知识协议的密码学解释?可以留言告诉我们,或在留言区和我们讨论你对其他密码学的解释方式哦~ 来源 | Hackernoon
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。