前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用万圣节糖果解释什么是“零知识证明”, 可能是关于密码学很通俗的解释了……

用万圣节糖果解释什么是“零知识证明”, 可能是关于密码学很通俗的解释了……

作者头像
区块链大本营
发布2019-09-29 15:47:23
6460
发布2019-09-29 15:47:23
举报
文章被收录于专栏:区块链大本营区块链大本营
译者 | 火火酱

责编 | Carol

出品 | 区块链大本营(blockchain_camp)

上周,我们图解了零知识证明,解释了区块链中的最常见的密码学到底是什么,引起了许多朋友的讨论。但同时,也有小伙伴表示太深奥没法完全看明白,还有的说想教孩子学习零知识证明,但不知道如何用孩子能听懂的语言去解释。

所以今天咱们就一起来看看,如果让你用最简单易懂的表达方式来解释零知识证明,你可以怎么说?

要解释加密技术是很困难的,要用通俗易懂的语言来解释加密技术则是难上加难。给孩子解释零知识证明(Zero Knowledge Proof)呢?简单!今天,我们就来用万圣节糖果解释一下零知识证明吧。

零知识证明

零知识证明(又称零知识密码证明,ZKP)是一种在不交换密码的情况下进行身份验证的方法,在这种情况下,密码是无法被窃取的。这是一件非常酷的事情,因为这可以保证你的通信安全,没有人能够获取你的通信内容或你与其他人共享的文件。

通过ZKP,你可以在不泄漏任何事情的情况下证明自己知道“另一端”那个人的很多秘密。“零知识”这一术语的本意源于:第一方(被称为“证明方”)没有透露有关机密的信息(“零知识”),但第二方(被称为“验证方”)确信第一方知道问题所涉及的秘密。

为什么你要在不说出秘密的情况下证明自己知道秘密呢?当你不信任别人,但仍然需要说服他们你知道这个秘密时,你就要在不泄漏秘密内容的情况下证明自己是知情的。那么这又是如何实现的呢?

巧克力棒和百万富翁

下面我们借助Bob和Alice在万圣节得到的巧克力棒来进行说明。

Bob和Alice两个人想知道他们收到的巧克力数是不是一样多。但是因为他们不想把自己的巧克力分享给对方,所以他们并不想透露自己收到的巧克力的具体数量。

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

为了在不说出各自具体数量的情况下比较两人巧克力的多少,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岁的小朋友也可以轻松理解“零知识证明”的意思!想要了解哪些有关零知识协议的密码学解释?可以留言告诉我们,或在留言区和我们讨论你对其他密码学的解释方式哦~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 区块链大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档