零知识证明:像5岁孩子一样解释它(万圣节版)

解释加密技术很难,用简单的话解释加密技术更难。向孩子解释零知识证明?很简单! 所以,在这里你可以看到--用一些万圣节的糖果来解释ZKP。

此前该系列文章:Explain Like I’m 5: End-to-end Encryption[1]

零知识协议

零知识协议(或零知识密码证明,ZKP)是一种不交换密码的认证方式,这意味着它们不能被盗。这很酷,因为它使你的通信非常安全和受保护,没有人可以发现你在通信的内容或你在相互分享什么文件。

ZKP允许你向通信另一 "端 "的某人证明你知道一些秘密(或许多秘密),而实际上却没有透露。术语 "零知识 "起源于这样一个事实:关于秘密的任何("零")信息都没有透露,但第二方(称为 "验证者")(正确地)相信第一方(称为 "证明者")知道有关的秘密。为什么你需要证明你知道这个秘密而不告诉它?当你不信任对方,但仍然需要说服对方你知道这个秘密。那么这个过程是什么样子的呢?

糖果棒和百万富翁

让我们在 Bob 和 Alice 的帮助下进行说明,他们为万圣节准备了一些巧克力棒。

他们想知道他们是否收到了相同数量的糖果,但没有透露他们的巧克力数量,因为他们不想分享。

假设他们的“不给糖就捣蛋”袋子里正好有 10、20、30 或 40 块巧克力。

为了比较他们得到的巧克力块的数量而不分享实际数量,Bob 得到了 4 个可上锁的盒子,并在每个盒子里贴上标签,上面写着 10、20、30 或 40(巧克力棒)。

然后 Bob 扔掉除了盒子的钥匙对应于他得到的巧克力棒的数量(假设他有 20 块巧克力棒)所有钥匙并离开。

Alice拿了 4 张小纸片,在其中一张纸上写上“+”,在其他纸上写上“-”。

然后,她将“+”部分从一个槽中滑入盒子,盒子中的数字与她得到的糖果数量相对应(假设她有 30 块糖果),然后将带有“-”的纸片滑入其余部分盒子和树叶。

Bob 返回并打开他仍然有钥匙的那个盒子——那个盒子与他得到的糖果数量相对应——然后看它是否包含“+”或“-”。

如果是“加号”,则Alice的包里有相同数量的巧克力棒。如果纸条上写着“-”,则表示他们有不同数量的糖果(但仍然不会互相分享)。

我们知道 Bob 的包里有 20 块巧克力,而 Alice 的包里有 30 块巧克力。通过打开盒子并找到上面有“减号”的那张纸,Bob 得知他和 Alice 的糖果数量不同。但他无法查明Alice的巧克力块是多了还是少了。

Alice也回来了,看到Bob有一张纸,上面有一个“减号”。所以他有不同数量的糖果。但是Alice和Bob仍然不知道他们每个人有多少块巧克力。他们只知道他们没有相同的数量。

这个例子的形式略有不同,被广泛称为Yao’s Millionaire’s Problem[2],其中两个百万富翁想知道他们是否拥有相同数量的钱,但没有透露确切数量。这是 ZKP 如何工作的一个简单示例。

原文:https://hackernoon.com/eli5-zero-knowledge-proof-78a276db9eff

引用链接

[1] Explain Like I’m 5: End-to-end Encryption: https://medium.com/@cossacklabs/eli5-end-to-end-encryption-ae46821db74f?ref=hackernoon.com
[2] Yao’s Millionaire’s Problem:
https://en.wikipedia.org/wiki/Yao's_Millionaires'_Problem?ref=hackernoon.com

展开阅读全文

页面更新:2024-04-24

标签:万圣节   减号   知识   纸片   糖果   盒子   巧克力   钥匙   数量   秘密   孩子

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top