700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 哈希函数--区块链的back bone

哈希函数--区块链的back bone

时间:2021-08-03 06:29:42

相关推荐

哈希函数--区块链的back bone

点击上方“蓝色字”可关注我们!

作者:Bitcoin Magazine

了解比特币和区块链非常简单,只要理解三部分, 第一是了解其数据结构,第二个就是分布式储存和共识,第三就是网络和节点。

哈希函数不管是在数据结构还是在分布式共识方面都是非常重要的,

那么什么是哈希函数呢?

一般来说哈希函数是一类可以把任何数据转换成固定长度输出(也就是我们说的哈希值)的数学函数,而且可以被高效的计算, 所以我们一般会用来构建哈希表等。

在此基础上密码学哈希还多了3个特性。

是无冲突

可以隐藏原数据

可以用来创建搜索谜题

无冲突

无冲突的意思呢,是指这个哈希函数永远不会把两个不同的数转换成同样的哈希值。

我们以sha-256为例(sha-256也是比特币里用到的哈希函数,属于sha-2系列),它可以将数据,不管这个数据(输入)多大或者多小都可以转换成256比特,也就是32字节的一个哈希值。

就算这个数据(输入)只更改来一个标点符号,生成的哈希值也是完全不一样的。

但是理论上来讲,哈希值重复的情况是存在的,我们称这种情况为冲突,因为你想啊, 这个输入是无限的,你可以输入任何数据,大的小的都行。 而这个输出,哈希值它是有限的。(32位字母和数字的组合,组合的次数是有限的)但是这个数字是很大的,如果你要找到sha-256哈希值重复的这种情况,就是试2的130次方的输入,这个数字是一个天文数字,我的电脑都打不出来。 所以呢没有人能找到冲突也就是哈希值重复的情况。

在确定来哈希值的独一性后,我们就可以用哈希值来作为识别文件。在文件很大的情况下就异常的有用了。当然这个只是初级玩家的用法。

高阶玩家玩更溜了。

相信玩编程的朋友都知道一种数据结构叫linked list。

单向linked list

就是用指针把不同的数据块按顺序链接起来,那么现在我们确定了哈希值的独一性后,是不是可以把这个哈希值拿来当指针用呢?

具体怎么实现呢?

首先计算出第一个数据块的哈希值,然后把这个值放在第二个数据块里,再计算第二个数据块(包含了第一个数据块的哈希值)值,以此类推,你就得到了一种新的数据结构,俗称区块链。

当然,这只是区块链数据结构,而不是我们现在说的区块链技术(后者还包含了分布式储存和分布式共识,还有点对点网络)然后这个数据结构比起linkedlist多了一个特性,那就是防篡改。任何人想要修改这个链里数据块的消息,都会很容易被发现,因为哈希值会对不上。

可以隐藏原数据

密码哈希函数的第二个特性就是可以隐藏原数据,因为哈希函数是单向函数,你可以把数据转换成哈希值,但是不能把哈希值转换成原数据。因此,哈希函数有可以隐藏原数据的特性。

这个就非常有用了,最知名的应用就是拿来储存密码。

比如说你在某网站的密码,如果这个网站直接把你的密码存在了他们的服务器上,那是非常不安全的,但是如果是储存了你的密码对应的哈希值,你每次输入密码的时候后台自动转化成哈希值,只要哈希值对上就可以登陆了。这样安全性就提高了很多。

但是为什么还有那么多盗号,盗密码的情况发生呢?那可能是因为你的密码很常见,所以黑客只要需要输入所有常见的密码,然后用哈希值一对比,就知道了。

所以要想安全的隐藏“原数据的”的话,对输入的随机性和广泛性有要求的。 也就是为什么很多网站硬性要求密码要有符号,有大写字母,小写字母,数字等。

可以用来创建搜索谜题

第三个特性就是创建搜索谜题,就是我用哈希函数创建一系列的数学难题,然后再给出一定范围(难度随着范围大小变大变小)的可能答案,然后让你一个个的去试,(注意的是,这个是没有任何捷径的,就像我们之前将的那样,改一个标点符号哈希值就会完全不一样,而且这个哈希值的生成也是没有任何逻辑和规律可循,所以只能一个一个的试)如果运气好,找到了正确的答案,把答案和你解决的这个难题的信息一起哈希就会得到特殊的哈希值。(如以很多0开头啊,或者以很多x结束啊类似的) 。

这个运用在比特币挖矿里, 如果你找到了答案(nonce),然后和区块头里的信息一起哈希,就会得到一个以很多0开头的特殊的哈希值。

本文仅代表作者个人观点,不代表区块链铅笔的立场,不构成投资建议,内容仅供参考。

3分钟了解什么是区块链?(中文动画)|(英文动画教程)

3分钟了解什么是DAO?(中文动画)|(英文动画教程)

3分钟看懂以太坊和智能合约?(中文动画)|(英语动画教程)

3分钟了解比特币挖矿和区块链共识机制?(中文动画)|(英文动画教程)

3分钟了解公有链和私有链(中文动画教程)|(英文动画教程)

3分钟了解区块链的六层模型(中文动画教程)|(英文动画教程)

什么是区块链英文版(动画教程)

肖风:区块链与另类资产配置

逐鹿区块链!详解三大巨头BAT区块链战略布局

麦肯锡报告:区块链对保险行业的影响

八张图表解读区块链的未来发展

震惊全球的The DAO黑客事件全程回顾

Circle获得包括IDG、百度、万向在内6000万美元融资

关注本公众号后,进入公众号

回复关键词可以查阅资料,以下是部分关键词

回复WEF,查看《WEF:世界经济论坛认为区块链是互联网金融行业的未来报告》

回复智能合约,查看《巴克莱银行报告》

回复moody,查看《穆迪120个区块链项目报告》

回复SWIFT,查看SWIFT《区块链对证券交易全流程产生的影响及潜力》报告

回复论文11,查看论文《可扩展的去中心区块链》

回复埃森哲2,查看埃森哲《区块链每年可以为投资银行节省120亿美元》报告

回复联合国报告,查看联合国报告《数字货币和区块链技术在构建社会和可信金融之间扮演的角色》

回复用户特性,查看普林斯顿大学首本比特币教科书初稿《比特币用户的特性(Characteristics of Bitcoin Users)》

回复普林斯顿,查看普林斯顿大学首本比特币教科书初稿《比特币和数字货币技术(Bitcoin and Cryptocurrency Technologies)》

回复IMF,查看国际货币基金组织报告《Virtual Currencies and Beyond: Initial Considerations》

回复DTCC,查看美国存管信托清算公司报告《DTCC: 拥抱分布式》

回复广发,查看报告《科技前沿报告:区块链:正快速走进公众和政策视野》

回复川财1,查看报告《川财证券:区块链技术调研报告之一:具有颠覆所有行业的可能性》

回复川财2,查看报告《川财证券:区块链技术调研报告之二:区块链技术进化论-区块链技术的国内实践和展望》

回复桑坦德,查看桑坦德银行报告《The Fintech 2.0 Paper: rebooting financial services》

回复拜占庭,查看《拜占庭将军问题详解》

回复论文1,查看论文《比特币闪电网络:可扩展的离线即时支付》

回复论文2,查看论文《比特币骨干协议》

回复论文3,查看论文《数字货币是否应该进入Barbados央行国际储备货币组合中》

回复帮助,查看本公众号全部关键词列表

点击下方“阅读原文”查看更多,页面出现后再点击“来源”可以查看译文原文链接↓↓↓

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。