(韩非子,法家代表人物。图片来源于网络)
本篇看点:中本聪为比特币选用了哪一个安全哈希函数?对其安全性他又是如何评价的呢?
前情回顾:
【连载】比特币史话 | 量子霸权(3)
【连载】比特币史话 | 哈希(1)
【连载】比特币史话 | 哈希(2)
正文:
战国末期法家思想的集大成者韩非子(约公元前280年-公元前233年)在《韩非子·难一》中记载了一个“矛与盾”的小故事。故事说,有一个卖矛和盾的楚国人,一会儿叫卖自己的矛,说自己的矛是世界上最锋利的矛,什么盾都能刺破;一会儿又叫卖自己的盾,说自己的盾是世界上最坚固的盾,什么矛都挡得住。这时围观的群众里有人说,那你用你自己的矛,刺一刺你自己的盾,那又会怎么样呢?这个楚国人一时语塞,竟然一句话也答不上来。[1][公众号:刘教链]
围绕哈希算法而展开的攻防较量就仿佛这矛与盾。今天道高一尺,却不知明天是否会有魔高一丈。攻守之道,往往都是攻方容易占据有利地位。正道的攻方,往往会收获比守方更大的荣誉;邪道的攻方,则直接从成功中获得巨大的利益。成功攻破MD5和SHA-1的王小云教授世界闻名,而这两个算法的设计者却鲜有人记得他们的名字。巨大的荣誉激励或物质激励推动着攻方不断的努力,攻守之势总归是一种不对称的、艰巨而长期的博弈。我们知道,也许今天所有已知的加密算法,在未来某一天都终将被破解,但我们不知道,这一天究竟何时到来。要让比特币系统能够安全运行100年、200年甚至更久(比特币挖矿结束时间大概到2140年左右,可见比特币的设计寿命至少也得一两百年往上),中本聪不得不在今天做好充分的考虑和设计。[公众号:刘教链]
2001年,NIST(美国国家标准局)公布了联邦标准FIPS PUB 180-2号草案。在该草案中,安全哈希算法SHA-2家族首次亮相,并于次年8月正式成为新的安全哈希标准。SHA-2家族包含了6个哈希函数,以其摘要长度(即计算出来的哈希值的长度)命名,比如SHA-256(摘要长度256比特)、SHA-512(摘要长度512比特),等[2]。而其中的SHA-256算法,正是被中本聪选用,从而在比特币整个系统中几乎无处不在的哈希算法之一。[公众号:刘教链]
虽然SHA-256算法256比特的摘要长度只比SHA-1的160比特大了一倍,但是其安全性和破解难度却是天壤之别。对此,在2010年6月14日的一次论坛讨论中,中本聪专门就SHA-256的破解问题作出如下评价[3]:[公众号:刘教链]
“SHA-256非常强壮。它不像从MD5到SHA1的渐进式进步。它可以几十年屹立不倒,除非出现某种大规模突破性的攻击技术。如果SHA-256被全面攻破,我想我们可以达成某种共识,锁定出问题之前的「诚实的」区块链,并从那个位置开始采用新的哈希函数。如果哈希攻破是逐渐发生的,我们有一个按部就班的方式过渡到新的哈希函数。(比特币)软件可以编写成从某个特定的区块号码开始采用新的哈希函数。每个人都需要在那个时间点升级。(比特币)软件可以把所有旧区块的新哈希值保存一下,如此可以确保对于旧区块的篡改——即便旧哈希值相同——也不会被接纳。”[公众号:刘教链]
【未完待续】(公众号:刘教链)