哈希算法原理和用途是什么?盘点利用哈希算法的比特币

今天聊一聊区块链、比特币的核心的一个技术,哈希算法,以及它的防碰撞性质。

这算法的特点是它就像是一个方程组。而方程组的解是一个一个试出来。这种方程非常的复杂,比如说你知道了x,你把这个x带进去就可以求出y。但是如果你知道这个y,却不能够反着求解出x来。当然实际的算法比这个要复杂很多。

这个算法就是说不管你输的只有多么大,也可以是无穷多。他的输出值呢就是一段固定长度的数字。而且他有一个很核心的性质,那就是防止碰撞。

啥意思呢?就是说很少会出现你输入两个不一样的数字,最后获得了一个一样的数字。尽管这种情况在逻辑上是可能的。因为你的输入要远远大于你的输出可能性。

比如说你在输入这边儿打一个,“你们好”。然后你又输入一个,“你们好吗”。这俩出来的哈希值就应该是不一样的。或者说你想人为制造一个一样的哈希值,结果是基本不可能的。

那这种算法特性能不能被证明出来?答案是不能。这个东西只能这样试出来,你无法进行数学证明。所以其实比较搞笑的是这个性质是大家试出来的,或者是靠经验总结出来,也就是说我就说他对,你没办法证明他不对。但是这种防止碰撞的特性却有很大的用处。

具体来说,他可以看你的数据是不是被人给改了。

比如说吧,你写了一篇非常好的文章。然后呢你把它存到你朋友那儿去。或者说你存到网络上去。但是呢这个文章字数特别多,有可能就被人给改了。那你很长时间以后取回来怎么判断是不是被人给改了?

很简单,你提前把文章的所有内容进行一个哈希运算得到一个值。等你再把它取回来的时候呢,你再把这个内容再进行哈希运算,看和原来一样不。如果一样那就没改,如果不一样,那说明被改了。注意,哪怕他就改了一点点,改了一个逗号,一个句号。那出来哈西值也是不一样的,从理论上来说是这样,神奇不神奇?

那这个性质跟区块链又有什么关系?这个意义就大了。我记得我之前写过,比如说你在区块头保存的这个哈希值,实际上是把上一个区块的内容与上一个区块头的哈希值进行一起运算,运算出来的。

这就相当于第二个区块保存了第一个区块的基因。第三个区块保存了第二个区块的基因。同时第三个区块儿也包含了第一个圈儿的基因。这就是所谓区块链的链字的含义。这就加强了区块链的不可篡改性。

因为你如果要篡改某一个区块里的内容,或者整条区块链上的内容,你就需要抢到这个区块的出块权。抢到之后呢你还得改上一个,再抢到上一个的出块权,然后再抢到上一个的上一个出块儿权。如果你的算力没有那么大,那相当于你就做不到。所以比特币的系统中有一个规定,那就是六个区块儿就基本可以确认信息不可篡改。

这就是哈希函数的所谓防止碰撞的特性。当然他还有别的性质,我们后面再慢慢说。我还是希望大家能一点儿一点儿的理解他的底层的原理,逻辑与技术,而不是天天去争论他是不是骗局。

哈希算法原理和用途是什么?盘点利用哈希算法的比特币

     点击查看更多首码项目
广告合作 首码项目 严选项目
在线投稿                                Q群:572861413

本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

原创文章,发布者:首码对接项目,转载请注明出处:https://www.biyungu.com/12500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年 5月 29日 上午11:54
下一篇 2021年 5月 29日 下午5:03

   版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请勿盲目下载注册。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系管理qq61721503 

   特别提醒:币云谷首码网作为信息共享平台无法对信息的真实性及准确性做出判断,不承担任何财产损失和法律责任,若您不同意该提示,请关闭网页且不要在本站拓展任何合作,否则造成的任何损失由您个人承担,凡是涉及任何投资和高回报信息请勿相信。

相关推荐