真有这种操作,比特币、暴雪和下载盗版电影都应用了同一种算法

你永远也不知道,暴雪爸爸把炉石橙卡掉率存在数据库哪个角落。

在ICO泡沫迅速涌起和迅速破灭后,比特币仍然一路高歌,在最近突破了9600美金的大关。作为一种独立于货币体系的数字加密币,比特币成功的本质还是要归功于技术——区块链的安全和隐私支撑起了比特币最核心的价值。

提到区块链,非对称加密算法和哈希算法是两个不能避开的技术名词。尤其是哈希算法,在区块链相关的技术文章中总能看到这个名字,却很难真正理解它的奥秘。今天,我们就来看看哈希算法是如何保护比特币和其他数据的?

学好哈希算法,用脑子储存比特币

如果你准备购买比特币,你就会拥有一个“比特币钱包”。通常来讲,比特币钱包会是一个移动/本地客户端,用户可以通过客户端进行交易。但是还有一种更高端的玩法:脑钱包。

我们知道,比特币实际上是一种“资源”,它并不是像文档一样躺在谁的U盘里,而想要确立这种资源的所有权,则需要由用户自己生成一串数字密钥并储存到某个地方。交易时,先生成一套只能由交易中某一方用来解密的私有密钥,再根据私有密钥单向加密生成双方都能看到的共有密钥。

由于密钥的生成是独立于比特币协议和区块链的,所以如何保护好自己的密钥成了一个大问题,以前甚至发生过黑客破解比特币钱包客户端获取比特币的事件。

为了避免这种问题,就有人想出了一个新方法:自己生成一段比特币密钥,然后记在自己脑子里。

生成比特币密钥的方式并不难,最初始的密钥只是一串256位的二进制数字,抛二百多次硬币即可得到。但想记住二百多个0和1实在是太复杂了,脑钱包概念的关键在于,用哈希算法SHA-256对密钥进行校验,让256位二进制数字变成更短的编码,就可以保证让这串字符适合人脑记忆。

来自国家安全局,怪不得哈希算法很安全!

不管是抛二百次硬币用脑子记忆的脑钱包,还是在移动端、PC端作为客户端的电子钱包,基本都绕不开用SHA-256算法校验这一步骤。

其实SHA-256算法发明的最初目的和比特币毫无关系,1993年,美国国家安全局设计了一套用于安全加密的密码散列函数——Secure Hash Algorithm,翻译过来就是安全散列算法。人们更愿意把它叫做SHA,1993年推出的版本名为SHA-0,后来随着算法不断的被破解又不断自我修正,最终推出了数个SHA算法的变体,其中就包括SHA-256。

SHA最主要的特性就是,接收到二进制数字消息时会形成一串“数字摘要”,而这一摘要还可以用来验证数字消息的完整性。如上文所示,SHA-256就意味着算法可以把256位的二进制数字进行压缩。

很多人会感到疑惑的是,哈希算法对数字进行压缩、摘要,那么为什么不可以根据这些摘要反向“破解”呢?

哈希算法与其说是“加密”,其实更接近于“压缩”。这其中涉及到一个“映射”的概念。所谓映射,我们可以理解为“代表”。举个例子,可以用ABC这样的字符去代表10001101这样的数字,字符A可以代表1、001、0001等等,但只得到字符A时,我们无法得知加密前的数字究竟是1还是001还是0001还是……

用更简单的案例解释一下:在比特币交易中,交易双方都能得知的共有密钥是“100”,但只有其中一方知道加密前的私有密钥是2+78+5+5+10。

得到100这个共有密钥的人,想要破解私有密钥只能去挨个去排列“1+0+0+0+99”、“1+1+0+0+98”……如果变成256位的密钥,几乎是一个不可能完成的任务。而想要验证公有密钥也很简单,既然加密前的私有密钥是2+78+5+5+10,那么99、98这些公有密钥就都是错误的。

忘记比特币,下载过盗版电影的你早就认识了哈希算法

所以,目前看来哈希算法的压缩功能最大的用处是在比特币交易加密上?

实际上哈希算法最大的用处还是压缩数据,之所以被用在比特币上,是因为其中包含的大量运算贴合了以“消耗资源来获取比特币”的规则。在其他领域中,哈希算法也能发挥很大作用。

一个比较典型的例子是游戏公司暴雪推出的“One Way Hash”算法。

作为手握魔兽争霸、星际等等数款大型游戏的企业,暴雪和其他企业一样,拥有一个巨大的数据库。而当数据库太大时,从中检索就成了一个巨大的麻烦。

通常情况下在数据库中寻找数据就像在KTV点歌,数据库是曲库,想要找到自己要点的歌,只能把曲库从头到尾翻个遍。但也有一种更简单的方法,那就是建立一种代表关系,把歌曲名字《小星星》简写成XXX,并把这种对应关系储存在数据库中。寻找歌曲时,如果连XXX都找不到,说明曲库中不可能存在《小星星》这首歌。

同理,《小星星》=XXX、《爱我中华》=AWZH,这种文字转化成拼音、拼音取首字母的对应方式在现实应用时可能会涉及到函数、坐标等等数学问题,总之这种对应方式被称作“哈希表”。

但我们在KTV点歌时,搜索XXX得出的结果不光有《小星星》、还有《笑哈哈》,面对这种同一字符串在哈希表上位置相同的问题,暴雪的程序猿们想出了一种绝妙的解决办法——在哈希表中用三个哈希值来校验位置。

也就是说在暴雪KTV的曲库中,《小星星》(xiaoxingxing)的哈希值可以分别是XXX、OGG和III,这时再搜索歌曲,就几乎不会遇到《小星星》和《笑哈哈》同时出现的情况了。

同样的作用也体现在P2P(点对点)传播上。如果是上古时代的互联网用户,可以对emule(电驴)这款下载软件有印象,在eMule上可以从全球所有eMule用户手中接收某一件文件的数据上行和下载。

其原理就是,当你想下载电影《战狼2》时,系统会提取《战狼2》的哈希值,通过对这一哈希值的搜索,可以发现所有拥有《战狼2》的用户,大家一起进行点对点的数据传送,eMule本身也不用建立数据库,只搭建平台就可以了。因为哈希算法的压缩特性,使得“全球搜索”这件事变的低成本并可行。

虽然那个具备共享精神的好时代一去不复返,但即使是今天哈希算法也依然活跃在我们的视野中,即使有很多人声称自己破解了哈希算法,却也没有发生过因为算法被破解而造成损失的情况。

目前来看,哈希算法如果被抛弃,无非是出现以下两种情况:第一,量子计算开始应用,哈希算法和已知的所有密码、加密方式都被强大的计算能力和速度打败。第二,出现了更好用的压缩算法,比如美剧《硅谷》中的魔笛手成真,哈希算法由于不好用而被开发者抛弃。

评估一下以上这两种情况出现的可能性,相信大家就能知道哈希算法还会陪伴我们多久了。

脑极体

1201篇资讯

粉丝

本文系作者 脑极体 授权钛媒体发表,并经钛媒体编辑,转载请注明出处、作者和本文链接
本内容来源于钛媒体钛度号,文章内容仅供参考、交流、学习,不构成投资建议。
想和千万钛媒体用户分享你的新奇观点和发现,点击这里投稿 。创业或融资寻求报道,点击这里

敬原创,有钛度,得赞赏

赞赏支持
发表评论
0 / 300

根据《网络安全法》实名制要求,请绑定手机号后发表评论

登录后输入评论内容
  • 没头没尾的,去今日头条会火的

    回复 2017.11.30 · via pc

快报

更多

16:04

欧元兑美元EUR/USD失守1.08,为3月1日来首次,日内跌0.26%

16:02

欧股开盘上涨,欧洲斯托克50指数涨0.1%

15:54

荷兰首相访华期间双方是否讨论光刻机问题?商务部回应

15:51

美财长称世界上没有一个国家像中国那样大力补贴其优先产业,外交部驳斥

15:47

中国国贸:2023年净利润同比增长12.84%,拟10派8元

15:47

微信支付上调香港用户全年内地消费额度至40万港元

15:47

国家邮政局发布2023年邮政快递业服务现代农业品牌项目

15:46

中方取消针对澳葡萄酒双反措施,商务部介绍相关情况

15:39

瑞银:下调农夫山泉目标价至46.73港元,维持“中性”评级

15:32

小米辟谣发布会彩排现场定价图

15:32

商务部:中方起诉是正当之举,美方严重扰乱全球新能源汽车产业链和供应链

15:29

成都市发布《虚实共生产业链元城市机会清单》涉及总投资2亿元

15:20

国债期货收盘大多数上涨,30年期主力合约涨0.15%

15:13

日本参议院预算委员会通过2024财年预算案

15:08

北向资金全天净买入23.35亿元

15:08

A股收评:三大指数集体收涨,低空经济概念股大幅走强

15:05

中国终止对澳大利亚葡萄酒征收反倾销税,不征收反补贴税

15:03

国内商品期货多数收跌,玻璃、烧碱、焦煤跌超2%

15:03

农业农村部:“农产品批发价格200指数”为123.48,比昨天上升0.12个点

14:58

日本官员称已开始紧急检查市场上全部功能性标识食品

113
1
98

扫描下载App