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

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

来源 | Hackernoon
译者 | 火火酱
责编 | Carol
出品 | 区块链大本营(blockchain_camp)


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

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

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

零知识证明

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

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

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


巧克力棒和百万富翁

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

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

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

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


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

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

为了在不说出各自具体数量的情况下比较两人巧克力的多少,Bob拿来了4个带锁的盒子,并在每个盒子上贴上标签,上面写着10个、20个、30个、40个(巧克力棒)。

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

然后Bob只留下与自己拥有的巧克力数量(假设他有20个巧克力棒)一致的箱子的钥匙,扔掉其他所有箱子的钥匙后离开房间。

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

Alice拿来4张纸,其中一张纸上写着“+”,其余三张纸上都写着“-”。

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

然后她把所有写着“+”的纸(通过箱子上缝隙)放入与自己巧克力棒数量相对应的盒子中(假设她有30个巧克力棒)。把写有“-”的纸分别放入其他3个盒子中然后离开房间。

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

Bob回到房间并用自己的钥匙打开与自己巧克力棒数量相对应的盒子,查看盒子中的纸上写的是“+”还是“-”。

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

Bob如果发现盒子里的纸上写的是“+”,那么说明Alice拥有的巧克力数量和他是一样的。 如果是“-”,则说明他们拥有的巧克力数量不同(但他们仍不会和彼此分享各自拥有的巧克力数量)。

我们知道Bob的袋子里有20个巧克力棒,Alice的袋子里有30个巧克力棒。 通过打开盒子,并找到写有“-”的纸,Bob得知他和Alice拥有的巧克力数量不同。 但是他并不知道Alice拥有的巧克力数量比自己多还是比自己少。

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

Alice回到房间后会看到Bob手中的纸上写得是“-”,并由此得知Bob拥有的巧克力数与自己不同。但Bob和Alice仍然不知道对方到底有多少巧克力棒,他们只知道他们拥有的巧克力数量是不同的。


同样的例子,但是以一种稍微不同的形式,被广泛地称为“Yao’s Millionaire’s Problem姚氏百万富翁问题”。 两个百万富翁想要知道他们拥有的钱数是否相等,却又不想透露具体的数值。这是ZKP工作原理的一个简单例子。

是不是十分简单明了?用这样的解释方式,5岁的小朋友也可以轻松理解“零知识证明”的意思!想要了解哪些有关零知识协议的密码学解释?可以留言告诉我们,或在留言区和我们讨论你对其他密码学的解释方式哦~


640?wx_fmt=gif

推荐阅读:

  • 一文读懂分片基础原理, 数据分片, 跨分片交易, 区块链分片和缩放究竟是什么鬼?

  • 图解零知识证明(ZKP), 区块链中最常见的密码学技术究竟是神马? 看完这篇就明白了…

  • 分布式存储春天已来Storj首登top10; Cardano排名上升; 以太坊比特币活跃地址双下降 | 数据周榜

  • 看完这篇还不会kafka,我跪榴莲!

  • 谷歌称已实现量子霸权;iOS 捷径功能被诉侵权;Chrome 78 Beta 发布 | 极客头条

  • 使用Python对大脑成像数据进行可视化分析

  • 旷视张祥雨:高效轻量级深度模型的研究和实践 | AI ProCon 2019

  • 横扫阿里、滴滴、美团后,阿里程序媛整理出这份厚厚的面经!

猛戳"阅读原文"有惊喜哟smiley_12.png

老铁在看了吗??

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