链闻ChainNews

关注



  1. How to Explain Zero Knowledge Protocols to Your Children (Quisquater et. al.)

  2. Cryptographic and Physical Zero-Knowledge Proof Systems for Solutions of Sudoku Puzzles (Gradwohl et. al.).


老钱觉得原文是零知识证明方面写的最佳最接地气的科普类的文章。所以想要翻译一下,顺便在原文基础上加上一些自己的解读。想要了解零知识证明,或者匿名性极强的区块链加密货币 ZCash 的朋友不妨读一读。



小明、小红、小刚三个好朋友很喜欢玩数独。平日里他们三个也会互相出题给对方做。常常他们会出一些非常变态的数独题互相挑战。他们会挑一个人在纸上画出一个 NxN 的格子,填上谜面(Constraint),然后交给另外两人去解。


证明


有一天,小明出了一道非常难的数独题,小红花了很久尝试去解开这个数独,但是怎么都解不出结果。小红觉得小明在耍她,「这题压根就无解!小明你耍我!」,她跑到小明那抱怨。


「呵呵,我能证明给你看这题是有解的,但是我知道这个解」,小明淡定的回答道。


「好啊」,小红暗自想着,「哼哼,等你证明给我看之后,我就把解记下然后去戏耍一下小刚,给他也做一下这题。」


小明接着说:「我会用零知识证明的方法给你证明我会这题的解。也就是说我不会把解给你看,却能让你信服我虽说有这题的解。」


小红并不确信他能这样做到,还在想象小刚被耍的样子。


承诺


小明拿出 81(9×9)张空白的卡片放在桌上,在每张纸上写上 1-9 中的一个数字,他让小红转过身闭上眼,然后把这 81 张卡片颤颤巍巍地按照解的排列放在桌上,代表谜底的卡片,数字面朝下放在桌上;代表谜面的卡片,则数字面朝上放在桌上。



随机试验


小明放好卡片后,让小红睁开眼转过身。小红很兴奋,她觉得谜底就要揭晓了,很是开心。她可花了好几天时间都没能解出这题。


小明对小红说:「小红,你不能偷看这些面朝下的卡片。」严重能看出小红很失望,她以为能看到完整的一个解。「但是我能让你检验这些解:你可以随意选择按照行(row),或者按照列(column),或者按照 3×3 的九宫格(box)来检验我的解。你挑一种吧。」



小红很疑惑,嘴上念叨着什么鬼心里想着 mmp,然后告诉小明她决定选择按照行的方法来验证,小明接着把每一行的 9 张卡片收起来单独放到一个麻布袋里。所有卡片都被收完放在了 9 个麻布袋里。小明接着摇了摇每个麻布袋,把里面的卡片顺序都打散。最后把这9个麻布袋交给小红。



验证


「好了,你可以打开这些布袋了。」小明对小红说,「每个布袋里应该都有恰好 9 张,没有重复数字的,分别是数字 1-9 的卡片。」小红打开每个布袋一看,还果真是这样。



「可这啥都证明不了啊!我也可以这样做给你看。我只要保证每一行都是 1-9 这 9 张卡片,不去管纵列和九宫格里的数字是不是也都是没有重复的不就行了。」小红气极败坏的说道。


小明解释说:「但是我事先也不知道你会选按照行来收集卡片,还是按照列,还是按照九宫格啊。我又不是你肚子里的蛔虫……我是按照题解来放置卡片的,你选啥我都没在怕的。」


小红想了想,虽说,一个数独只有真正正确的解才能保证每一行每一列每一个九宫格里的数字都是没有重复的 1-9。小明如果真的在骗她,小明不会那么理直气壮,小红也至少有 1/3 的概率可以抓到他在骗人。


重复


小红还是不服气。觉得小明仍然有可能在骗她,所以要求小明再把卡片复原,按照原来的方法,慢慢选。这样接连试了几次,小红每次都选一个不一样的试验方法。试了好多次都是一样的结果。小红这下不得不承认,小明要么运气非常非常好,每次都能押中小红会选择哪种试验方式,要么就是他确实知道题解,(或者小明会读心术能预先知道小红会选什么试验方式)。小红很失望,这么多次试验下来,她还是不知道真正的题解,她只知道每次小明放置卡片的排列里很大几率每行每列每个九宫格确实都是没有重复的 1-9,这就说明很大几率这题是有解的,而且小明很大几率确实知道这题的解。


小明把这种零知识证明的方法也给小刚展示了一遍。从此之后三个好友养成了通过零知识证明去证明给对方看自己知道某题解的习惯。毕竟每个人在解题的时候都花了极大功夫,不想轻易地把题解直接告诉对方。虽然每次零知识证明的过程很花时间,但是他们都乐在其中。


席卷全球的数独风暴


逐渐的,小明和小红发现全世界有很多数独爱好者,他俩决定在斗鱼上开一个直播间,直播解数独。为了展现自己的才智,每周开播前,小明在粉丝团里随机抽取一个粉丝递交的数独,直播时,小明会把题解告诉小红,然后由小红用零知识证明的方法向观看直播的老铁们证明这题有解,并且自己知道题解,老铁们纷纷表示 666 并送上飞机火箭。就这样小明和小红的直播间人气暴涨,两人成为了斗鱼的签约艺人。


开挂


一天,小明来到小红家准备直播一个非常难的数独,可是他发现他把解出的题解落在自己家了。时间紧迫,要从新算一遍指定赶不上开播时间会被斗鱼老板骂。但是他和小红还是决定开播。开播前小明和小红说:「咱俩假装弄一弄零知识证明,我告诉你一会儿我会怎么选试验方式。你只要确保每次我选的那种试验方式(每行,或每列,或每个九宫格)里的数字不要重复就行了。」


小红同意了。


小刚,在自己家看完了直播,事后小明和小红把他俩这次作假的方法告诉小刚,小刚愤愤不平的斥责他们俩,「你们这样做和卢本伟开挂有什么区别!对得起支持你们的粉丝吗?我再也不相信你们俩的零知识证明了!」


神奇的机器和非交互式证明 Non-interactive Proofs


小刚很恼火。一来他很享受之前和小明和小红一起玩数独,但是现在他觉得挂逼不值得信任。小刚想找另一种方法来保证直播中他俩不能再这样作假。几个不眠的夜晚过去之后,小刚告诉小明小红,他想到了一个好方法。小刚把自己关在屋里忙活了一整天,第二天早上他把小明小红叫来,给他们展示自己的新发明:零知识数独非交互式证明机「The Zero-Knowledge Sudoku Non-Interactive Proof Machine” or zk-SNIPM」。



这台机器基本上就是把小明和小红之前当面做的那套证明自动化系统,不再需要人为交互。小明只要把卡片放在传送带上,机器会自动选择按行,或列,或九宫格来收取卡片,放到袋子里打乱顺序,然后把袋子通过传送带再送出来。然后小明就可以当着镜头的面拆开袋子展示里面的卡片。


这台机器有一个控制面板,快速打开里面是一串旋钮,这些旋钮用来指示每次试验的选择(行、列、九宫格)。



小刚已经设置好了试验的序列,而后把控制面板焊死,以保证小明和小红不会知道他到底选择了怎么样一个试验序列。


这下小刚很放心,他可以全然信任自己这台机器,放心的把机器交给小明和小红,让他俩下次直播就直接用这台机器来证明。小刚相信有了这台机器他俩就没法再开挂了。


仪式


小明和小红很嫉妒小刚的这台机器,并且想也能用这台机器来验证小刚自己出的数独题。但是问题是,小刚是知道自己选了什么样的试验序列的,如果用同一台机器去验证小刚自己的数独题解,小刚就可以开挂。小明把大伙聚集起来提议让小刚把控制面板从新打开,然后大家一起来设置控制面板上的试验序列。小明把这个过程称为「可信任的初始设置仪式(trusted setup ceremony)」。


小明提议把这台机器放在一个漆黑的屋子里,把旋钮上的指示贴纸都撕去。他们三人分别进入这个屋子,小红还提议大家进房间时蒙上眼来保证随机性,甚至带一顶锡纸做的金属帽子(小红还是怀疑小明多少会一点读心术,想通过锡纸帽子来屏蔽脑电波信号防止读心术(side-channel attack)。这样,最后这些旋钮所代表的试验序列他们三个人都没有办法知道。就算他们 3 人中有 2 人事先商量好自己会怎么选,他们也无法得知第三个人会怎么选,从而没有办法作假。这个仪式结束之后,他们一起把控制面板焊死。


破解这台机器?


一天下午,小红和小刚出去玩儿了。小明一个人在家守着这台机器。他开始琢磨它是不是像小刚说的那样安全可靠。过了一会,他开始给机器故意传送一些假的题解(只保证每行或每列或每九宫格的数字不重复),试图通过这种试错来找出机器里设置的试验序列。慢慢的,小明把机器里的试验序列都推断出来了。他既兴奋又丧气,你能帮小明设计一个更好的证明机吗?


透过故事看本质


故事讲完了,相信大家对零知识证明有了一个大概的印象。零知识证明的本质就是在不揭晓我所知道或拥有的某样东西的前提下,向别人证明我有极大几率这点很重要,零知识证明说到底是一个概率上的证明)确实知道或拥有这个东西。


故事里要证明的东西就是一个数独题的解,小明让小红每次随机抽取行,列,九宫格的卡片,并收集在一起随机打乱,小红通过拆开袋子并不能知道题解,但是却能相信小明非常大几率确实知道题解。


这个故事里的 zk-SNIPM 也是半开玩笑地暗指了零知识证明现在最大多数的 zk-SNARKs(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)算法。故事中的 zk-SNIPM 虽然存在漏洞,但是他还有改进的余地,比如用一台扫描仪把第一次卡片的组合就全扫描下来,然后一次性同时验证所有的试验序列。这样就很难通过试错的方式来破解机器。


小明和小红之间最开始那种互动式的证明方法暗指的是交互式零知识证明(interactive zero-knowledge proof)。交互式零知识证明需要验证方(小红)在证明方(小明)放好答案(commitment)后,不断的发送随机试验。除非验证和证明双方事先串通好,那么他们就可以在不知道真实答案的情况下开挂(simulate/forge a proof)。


非交互式的证明则不需要这种互动。但是会额外需要一些机器或者程序,并且需要一串试验序列,这个试验序列不能被任何人知道。有了这么一个程序和试验序列,证明机就能自动算出一个证明,并且能防止保持中立作假。


主打匿名性的区块链加密货币 ZCash 里用到了零知识证明来保证交易双方和交易金额的匿名性。ZCash 团队举行过 2 次故事中的那种仪式,第一次仪式他们甚至拍摄了一个纪录片,第二次仪式中一组人甚至不惜一切去切尔诺贝利核事故发生地取来了带有核辐射的废料,然后在高空中用利用核辐射来生成随机数


有兴趣的各位可以去看看 ZCash 相关资料,非常有趣儿。



老钱打算接下去再写几篇关于零知识证明的系列文章,继续介绍零知识证明的典礼定义,在以太坊中的应用,以及 zk-SNARKs 的一些细节。


-


作者:


任何中文媒体的转载请与「链闻」联系。


「链闻社」活动预告 


「链闻社」第二期嘉宾访谈

3 月 8 日

欢迎加入链闻社群。

具体安排届时将提前通知大家。

    扫描二维码申请入群    




 ChainNews 招聘专场 






链闻  ChainNews

Buy on the rumor, sell on the news.

有谣言买入,有新闻卖出。


网站改版上线 

也就是说我不会把解给你看,却能让你信服我虽说有这题的解。证明,有一天,小明出了一道非常难的数独题,小红花了很多天尝试去解开这个数独,但是怎么都解不出结果。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • !!
  • ”的感觉,确实和其他家具比,电视非常巨大但看起来太爽了,谁不想在这个客厅看电影打游戏呢呜呜电视柜两侧留了四五十cm的空隙,使用起来很灵活,目前我放了落地灯和配备
  • 独行月球看了有笑有泪独孤月和金刚鼠马蓝星和独孤月独孤月在月球经历失望 希望 感受孤独 伙伴 为了马蓝星 工程师变成维修工 在月球那两年 马蓝星是他内心的支柱和向
  • #树树哒谷咕咕# 收到了江江的无料包[泪][泪][泪][泪]火速拍了图图[泪][泪]给的实在是太多了呜呜呜呜呜都好漂亮好喜欢!【投稿】你一只小仓鼠你还能逃出我的
  • 海岸上被冲洗的沙滩我们温存地待它,在上面写下我们的名字。海岸上被冲洗的沙滩我们温存地待它,在上面写下我们的名字。
  • 所以太阳对于太阳系是定海神针,对于地球来说,它是生命的母亲,没有太阳就不会有现在完善的地球生态系统,不会有生命的诞生和人类的出现。要知道地球已经有38亿年的生命
  • 在这冷酷的世界上,让人维持生存的体温,能够活下去的不是了不起的名言也不是有学识的一语中的而是你的一句带有体温的温暖的一句话。 在这冷酷的世界上, 让人维持生存的
  • 更多的时候,我们不得不负重前行,如尘世马牛,樊笼鸡鹜,心为形役,即使筋疲力尽也力求为亲人换一个衣食无忧。我们都别把理想放的太高,让自己望也望不到,生活的理想其实
  • 我想有这么一群人,因被你们的真诚吸引凝聚在一起,一定是可爱的人,因心中充满善良和爱~节目结束了,爱还在延续~感谢你们带来的快乐,这个夏天真的很甜❤️图cr:圈老
  • 2、对自己掌控范围之外的事,少期待少要求少抱怨;同样,对掌控范围之内的事,尽量解决妥当很多姑娘在恋爱中难过的一大根源就是:她们对自己无法掌控的事,永远抱有极高的
  • 下午运动回来的路上,又看到了绚烂的晚霞,每年真是喜欢这时候的气候,稍加留意,早上暖色的光和夜晚的又略有不同,早上的光洒满绿叶,好像绿叶加上了一层金箔,睡安,明早
  • 看图说屁话之《爸爸的新恋情》feat.181 我爸和我妈离婚是我意料之中的事,我也一度催他找个新的对象,并做好了他会给我领个小他一轮的年轻女人做我的新妈妈的心
  • 29.9elebelle日抛美瞳片盲买不踩雷 性价比高的日抛舒适 小直径 摘取更方便 #好物推荐##美妆生活##好物分享##薅羊毛##穿搭##母婴##母婴达人种
  • 昨晚YOYO老板与南宁颜值爆表队相聚,从头至尾赞不绝口,且看图五便知[偷笑] ,一旦选择就不负初心拼到底,大概是这帮姑娘的共性,所以由瑜儿女神组建的这个颜值天团
  • 男人跟女人交往,一定要看清楚她的态度和表现,如果发现她处处排斥你,不接受你的任何示好,就不要纠缠了。相反,女人对你没有任何好感,内心里排斥跟你交往,她不可能收你
  • @四川文旅 ⛺️雨崩要论自然环境的奇绝壮美、抵达的艰难,以及信仰的纯净,雨崩或许可称为露营界的“天花板”。@云南省文化和旅游厅 ⛺️莆田莆田市前溪村地理上属于戴
  • #时代少年团周边中转站[超话]#挂人哈 走过路过别错过 李飞你眼珠子也睁大一点 看看多少人被骗了[舔屏][舔屏][舔屏][舔屏]帮朋友挂的骗子@淋雨又淋雨 大家
  • #想对R1SE说的话#团综观后感怎么说呢,团综其实真的不够看,感触比较深的就是“太阳的秘密都说给月亮听了”“我学会的第一项技能就是离别吧”“我坚持下来,是因为R
  • 每天一百多近二百,是“被可被見”數字,但可怕是,島上眾多人,被訓練成麻痺冷血無感,接受民主的☠️就是很正常的事,所以要去接受,要當活在規矩世界,島上,只有剛開始
  • 所以计划美国回国的小伙伴们注意啦,还有不懂得可以去领馆官网看清楚哦,或者直接私信我们详询‼️#纽约回国[话题]##美国回国[话题]# 回国 #回国新政[话题]#