- 浏览: 5132848 次
- 性别:
- 来自: 天津
博客专栏
-
实战 Groovy
浏览量:29021
文章分类
- 全部博客 (639)
- 代码之谜 (6)
- JavaScript quirks (5)
- 程序员 (92)
- Java (93)
- BT编程 (7)
- html/css (64)
- Groovy&Grails (42)
- Android (20)
- C/C++ (5)
- PHP/Perl/Python (46)
- 经典文章 (51)
- CodeIgniter (14)
- JQuery (10)
- 笑话 (4)
- 其他 (32)
- javascript (69)
- 云计算 (0)
- html5 (7)
- 面试 (8)
- google (3)
- nosql (2)
- nodejs (11)
- go (5)
- erlang (1)
- 小常识 (3)
- 冷知识 (5)
- database (4)
- web (12)
- 架构 (12)
- Exception (0)
最新评论
-
jqw1992:
https://www.chromefor.com/libra ...
[福利] 开发者必备的 Chrome 插件——ChromeSnifferPlus -
litjerk:
初步算了一下,目前最最精简的Win98版是5M,他5个小时多敲 ...
让人目瞪口呆的三位世界级电脑大师 -
379855529:
。。似乎重点没说NIO啊,前面基础只是铺垫的很好的,可是我要的 ...
Java NIO与IO的详细区别(通俗篇) -
springmvc_springjpa:
spring mvc demo教程源代码下载,地址:http: ...
一步步开发 Spring MVC 应用 -
匡建武:
Good
四个程序员的一天
战争中你被俘了,敌人拷问你情报。你是这么想的:如果我把情报都告诉他们,他们就会认为我没有价值了,就会杀了我省粮食,但如果我死活不说,他们也会认为我没有价值而杀了我。怎样才能做到既让他们确信我知道情报,但又一丁点情报也不泄露呢?
这的确是一个令人纠结的问题,但阿里巴巴想了一个好办法,当强盗向他拷问打开山洞石门的咒语时,他对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我。”
强盗们当然会同意,因为这个方案不仅对他们没有任何损失,而且还能帮助他们搞清楚阿里巴巴到底是否知道咒语这个问题。阿里巴巴也没损失,因为处于一箭之地的强盗听不到他念的咒语,不必担心泄露了秘密,而且他确信自己的咒语有效,也不会发生被射死的杯具。
强盗举起了右手,只见阿里巴巴的嘴动了几下,石门果真打开了,强盗举起了左手,阿里巴巴的嘴动了几下后石门又关上了。强盗还是有点不信,说不准这是巧合呢,他们不断地换着节奏举右手举左手,石门跟着他们的节奏开开关关,最后强盗们想,如果还认为这只是巧合,自己未免是个傻瓜,那还是相信了阿里巴巴吧。
“零知识证明”说的是示证者向验证者表明他知道某种秘密,不仅能使验证者完全确信他的确知道这个秘密,同时还保证一丁点秘密也不泄露给验证者。阿里巴巴的这个方案,就是认证理论“零知识证明”的一个重要协议。
除了被俘后如何靠情报保命这个问题,零知识证明在社会领域中还有着很多应用场合。例如你证明了一个世界级的数学难题,但在发表出来之前,总是要找个泰斗级的数学家审稿吧,于是你将证明过程发给了他,他看懂后却动了歪心思,他把你的稿子压住,把你的证明用自己的名义发表,他名利双收,你郁闷至死,你去告他也没用,因为学术界更相信的是这位泰斗,而不是你这个无名之辈。
这并不是天方夜谭,而是学术界常见的难题,前些年有个博士生告他的泰斗级导师剽窃他的成果,但除了令师生关系恶化外没有任何效果,最后他使出了撒手锏,称他在给导师审阅的论文的关键公式中,故意标错了一个下标,而这会导致整个推导失败。学术委员会一查果真如此,但还是有倾向于泰斗的声音,有人说那是泰斗的笔误,只不过让你发现了而矣,并不能证明那公式就是你推导出来的。
这个博士生故意标错下标,不能说他没有心眼,但他没有把“零知识证明”理论用好,以致于落到这种地步。“零知识证明”早在1986年就被A.Fiat和A.Shamir用数学的方法给出了解决方案,并在同年申请了美国专利,但由于该理论可能被用于军事领域,专利局被军方密令搁置,6个月后,军方命令:“该申请发表后会有害于国家安全……所有美国人的研究未经许可而泄露将会被判刑罚款”。看来军方认为作者肯定是美国人了,但作者实际上是在美国申请专利的以色列人,研究也是在以色列的大学里做的,军方这个命令摆了个大乌龙,虽然两天后撤消了,但已经成为了学术界的笑柄。
这个笑柄也说明了一个问题,即“零知识证明”非常重要。基于数学的推理虽然非常复杂,但思路却很简单,上述的阿里巴巴方案就是其中之一。其它的一些方案,也都是像这样遵循着分割和选择(Cut and Chose)协议的。
例如图论中有个哈米尔顿回路(Hamiltonian Cyclic)问题,说的是多个顶点的全连通图,若有一条通路通过了所有顶点,且每个顶点只通过一次,那这就是哈米尔顿回路。如果顶点较多的话,即使用计算机穷举计算很难找出这条回路,因为通路的可能性真在是太多了。
如果松鼠会贴了一张全连通图(命名为A图)悬赏哈米尔顿回路,而且任命我(奥卡姆剃刀)作为评审官,你幸运的找到了一条,那该怎么办呢,将结果直接发给我吗?千万不要,因为保不齐我会将你的成果让给了我的亲信。那你该怎么办呢?应该这么办:
1、你将A图的顶点搞乱了,并生成一张新图,只是顶点的位置变了,而新图顶点之间的连线关系与A图是完全一致的。这时,新图中每个顶点与A图中每个顶点的对应关系你是清楚的,而且新图中的哈米尔顿回路你也是知道的。
2、你将这张新图发给我,没错,就是仅仅一张新图,上面并没有画着你发现的牛B回路。
3、我收到后,对你提出两个问题中的一个:一是证明新图就是从A图变形过来的,所有顶点和连线的关系完全一致,二是画出新图中的哈米尔顿回路。
4、如果你真的找到了A图的哈米尔顿回路,这两个问题当然都能轻松回答。需要注意的是:你只需要回答第3步的其中一个问题,千万不要两个问题一并回答,否则我就知道你关于A图的哈米尔顿回路了,你就SB了。
5、我还是不相信你,因为有可能你只是将A图变了形,却根本不知道A图的哈米尔顿回路,而我在第3步时恰好要求你证明新图就是从A图变形过来的,你当然能证明。或者有可能你找了个你知道哈米尔顿回路的图,但这张图跟A图一点关系都没有,而我在第3步恰好要求你画出这张图的哈米尔顿回路。
6、我要求你从第1步开始重复这个验证过程,随着次数的增加,第5步那种巧合的可能性就越来越低,如果你多次能回答对第3步中的问题,那我还不相信你已经找到了A图的哈米尔顿回路,那我就是一个傻瓜。
7、为了表明我不是傻瓜,我在松鼠会群博里宣布你找到了A图的哈米尔顿回路,而这时我并没有看到你所画的A图的哈米尔顿回路。
回到你证明了世界级的数学难题的问题,你可以用这种分割和选择协议来进行零知识证明,来保护你的权利。你公开声称你解决了这个数学难题后,验证者会给你出一个其它的题,而能做出这道题的前提条件是已经解决了那个数学难题,否则的话无解,而且这个条件是学术界所公认的,这个题就是所谓的平行问题。不出所料,你靠着已经解开数学难题的基础把这个平行问题做出来了,但验证者还是不信,他又出了一道平行问题,你又做出来了,多次较量后,验证者就确信了你已经解决了那个数学难题,虽然他并没有看到具体的解法。
大家已经看出来了,零知识证明需要示证者和验证者的密切配合,但如果你只是一个数学界的无名之辈,即使你宣称你解决了数学难题,也不会有人跟你配合着玩零知识证明,那你该怎么办呢?
我告诉你一个可以在法庭上都能当作有效证据的招数,你将证明打印好,选择一个最可靠最权威的邮政公司,把它寄给自己,当你收到这个扣着邮戳的包裹后,不要打开,把它放好,然后就可以把证明寄给数学泰斗。如果他用自己的名义发表了,不必着急,等他依靠其影响力把这个证明炒热后再出手,你上法庭控告他,他当然不承认,在法庭上你将那个没开封的包裹拿出来,上面清清楚楚地盖着时间戳,这就证明了你包裹里的证明是发生在那个时间戳之前的,加上之后的你邮给泰斗论文的邮件存根,和泰斗以自己名义发表论文的时间,三者就构成了一个完整的证据链,泰斗灰头土脸名声扫地,而你大获全胜名利双收。
评论
这个其实和概率证明有本质区别(个人意见)。这个只是在证明的过程中用到了概率。
发表评论
-
计算机神书『编码:隐匿在计算机软硬件背后的语言』
2013-04-28 11:08 261169在知乎回答了一个关 ... -
改良程序的11技巧
2012-02-23 13:34 1621有很多理由都能说明为 ... -
何时提炼函数 & 用查询取代临时变量
2012-02-16 11:34 2941拥有[短函数」(short methods)的对象会活得比较好 ... -
我喜欢出发 - 汪国真
2011-11-14 13:00 1515我喜欢出发 我喜欢出发。 凡是到达了的地 ... -
海边的遐思 - 汪国真
2011-11-14 12:58 1317海边的遐思 一排排涌浪涤荡着心头的尘埃,灵感被浪 ... -
数字签名是什么?
2011-11-29 17:32 57556今天,我读到一篇好文章。 它用图片通俗易 ... -
[转载]谈谈2011年度最佳代码
2011-08-08 16:24 9544原文: http://blog.zhaojie.me/ ... -
软件开发评估过程
2011-02-24 09:58 1650我很喜欢这个漫画,我做过的项目没有一个不是拖拖拉拉的,边开 ... -
互相叫对方起床
2011-02-24 09:05 1949和尚跟屠夫是好友。和尚早上要起来念经,而屠夫要起来杀猪。 ... -
寻找这十种人脉关系
2010-08-02 12:53 1948每个人的人脉关系是不一样的,但下面的这10种人是你的人 ... -
成功的12条黄金法则
2010-08-02 12:53 1458第1跳:1个目标一艘没有 ... -
信任=自信+他信+信他
2010-08-02 12:52 1636信任是为了简化人与人之间的合作关系。——卢曼 周金根 ... -
如何提高生活的幸福度?
2010-08-02 12:52 1301生活可以一天比一天幸福。感觉幸福不幸福全在我们 ... -
人生8大经典问题
2010-07-23 15:40 2461问题一, 如果你家 ... -
比较受用的一些习惯
2010-07-15 09:03 14131.长期的任务,要尽早开始 一般来说,长期任务总是比 ... -
当你疲倦时,当你想放弃时,看看这个吧!
2010-07-10 10:58 8282这篇东西转自一位有思想的研究生!她看到这篇漫画,觉得很 ... -
人生有三件事情不能等
2010-06-26 10:48 1450第一是“贫穷” 贫穷不能等———因为一旦长时间的贫 ... -
人生时间表. 如果您有了时间
2010-06-25 12:30 1244如果每天都有864 ... -
假设你的月收入只有2000元!(如何花、最大化价值)
2010-06-24 15:06 2052假设你的月收入只有2000元,你也可以过得很好。我帮你把钱 ... -
一生要小心处理的50件事
2010-06-24 08:42 29221.被人羞辱——翻脸不如翻身,生气不如争气 2.面对反对 ...
相关推荐
阿里巴巴的零知识证明.txt
阿里巴巴的知识图谱,总结很经典,大家可以看下.可以给好评
这是 阿里巴巴面试的经验总结 ,只要掌握了这些知识点, 不管是阿里巴巴还是其他公司都能够轻松面试通过,适合跳槽参考
阿里巴巴干部培训体系管理三板斧白皮书 阿里巴巴KPI考核方案 阿里巴巴的高绩效之道 阿里巴巴绩效管理培训 阿里巴巴绩效考核方案 阿里文化驱动的秘诀 标杆企业文化建设与实践 阿里组织变革理论与实践 阿里人才队员级...
阿里巴巴编码规范试题答案
《阿里巴巴 Android 开发手册》是阿里巴巴集团各大 Android 开发团队的集体智慧结晶和经验总结,将淘宝、天猫、闲鱼、钉钉等 App 长期开发迭代和优化经验系统地整理成册,以指导 Android 开发者更加高效、高质量地...
整理了一下阿里巴巴往届笔试面试题,希望对大家有帮助: 来源:阿里巴巴笔试面试圈>> 1、史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库 2、2018阿里软件工程师笔试题 3、2018秋招阿里巴巴java...
互联网企业投资战略分析——以阿里巴巴为例.pdf互联网企业投资战略分析——以阿里巴巴为例.pdf互联网企业投资战略分析——以阿里巴巴为例.pdf互联网企业投资战略分析——以阿里巴巴为例.pdf互联网企业投资战略分析...
阿里巴巴,作为距离大数据最近的公司之一,近几年对大数据却鲜有...《大数据之路:阿里巴巴大数据实践》就是在这个过程中,由阿里巴巴数据技术及产品部沉淀下来的大数据知识与实践,值得每一位与大数据相关的人阅读。
仿阿里巴巴的网站仿阿里巴巴的网站仿阿里巴巴的网站仿阿里巴巴的网站仿阿里巴巴的网站仿阿里巴巴的网站仿阿里巴巴的网站仿阿里巴巴的网站
阿里巴巴28条Redis使用规范
《阿里巴巴与四十大道》 , 是一本阿里巴巴小二写阿里巴巴公司的 书, 全书40章, 汲取于阿里巴巴公司内部日常生活的点点滴滴, 这些细 节被作者总结成“四十大道”。 这些“道”不是形而上的, 时刻反映在小二 与...
阿里巴巴-2020财年第二季度阿里巴巴财报(英文)-2020.9-35页精品报告2020.pdf
阿里巴巴JAVA开发规范word 编程规约 异常日志 MySQL 规约 工程规约 阿里巴巴JAVA开发规范word 编程规约 异常日志 MySQL 规约 工程规约 阿里巴巴JAVA开发规范word 编程规约 异常日志 MySQL 规约 工程规约 阿里巴巴...
《阿里巴巴Java开发手册》是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等,这是近万名阿里Java技术精英的经验总结,并经历了多次大规模一线...
尽在双11:阿里巴巴技术演进与超越,尽在双11:阿里巴巴技术演进与超越尽在双11:阿里巴巴技术演进与超越尽在双11:阿里巴巴技术演进与超越尽在双11:阿里巴巴技术演进与超越尽在双11:阿里巴巴技术演进与超越尽在...
阿里巴巴java面试题目,涵盖全部的Java高级技术,数据库技术和分布式相关技术。
《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总 结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大 开发者。现代软件行业的高速发展对开发者的综合素质要求...
阿里巴巴国际站运营常用计划表