区块链黑板报 | 哈希算法
Posted 币风港
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链黑板报 | 哈希算法相关的知识,希望对你有一定的参考价值。
五湖四海,皆华夏韭州。
韭菜炒庄诞生于2018年,集资讯传播、区块链技术普及,区块链系统开发、主流数字货币行情分析及教学于一体。
韭菜炒庄秉承“传播先进区块链技术,传承先进的交易技术,提高散户群体对市场的认知,提升交易者的交易水平”理念,服务全球币友。
今天给大家介绍一下哈希算法。
挖矿其实就是计算区块的哈希值,通过生成区块头部的随机数来调整每次哈希的结果,使得计算出来的区块的哈希值符合一个特定标准。
那么哈希是什么呢?又为什么需要用哈希算法来挖矿?
哈希算法
1
哈希算法,又称散列算法,就是指一种把任何长度的数据提炼出固定长度数字“指纹”的方法。
哈希算法有一个输入和一个输出,输入时任意长度的数据,在算法内部不管输入的数据是何种形式,都以单纯的比特序列来处理。
简单来说,对于哈希算法,它看到的输入就是一串由0和1组成的二进制数。
哈希算法的输出就是最后的哈希值或者散列值,具体来说就是哈希算法把将数据打乱混合,压缩成摘要,使得数据量变小,重新创建一个叫做哈希值的指纹。
哈希算法原理图
只有完全一样的输入值才能得到完全一样的输出值;输入值与输出值之间没有规律,所以不能通过输出值算出输入值。
要想找到特定的输出值,只能采用枚举法,不断更换输入值,直到找到满足条件的输出值。
2
这个HASH算法不是大学里数据结构课里那个HASH表的算法。
这里的HASH算法是密码学的基础,比较常用的有MD5和SHA,最重要的两条性质,就是不可逆和无冲突。
所谓不可逆,就是当你知道x的HASH值,无法求出x;
所谓无冲突,就是当你知道x,无法求出一个y, 使x与y的HASH值相同。
这两条性质在数学上都是不成立的。
因为一个函数必然可逆,且由于HASH函数的值域有限,理论上会有无穷多个不同的原始值,它们的hash值都相同。
MD5和SHA做到的,是求逆和求冲突在计算上不可能,也就是正向计算很容易,而反向计算即使穷尽人类所有的计算资源都做不到。
3
密码学的几个算法(HASH、对称加密、公私钥)是计算机科学领域最伟大的发明之一,它授予了弱小的个人在强权面前信息的安全(而且是绝对的安全)。
举个例子,只要你一直使用https与国外站点通讯,并注意对方的公钥没有被篡改,G**W可以断开你的连接,但它永远不可能知道你们的传输内容是什么。
4
为什么需要用哈希算法来挖矿?
比特币区块是由区块头和区块体构成,其中区块头细分为:
1.父区块头哈希值:前一区块的哈希值;
2.区块版本号:表示本区块遵守的验证规则;
3.时间戳:该区块产生的近似时间;
4.难度:该区块工作量证明算法的难度目标;
5.Merkle根:该区块中交易的Merkle树根的哈希值。
区块哈希就是对区块头进行哈希计算,得出某个区块的哈希值,用这个哈希值可以唯一确定某一个区块,相当于给区块设定了一个身份证号。
而区块与区块之间就是通过这个身份证号进行串联,从而形成了一个区块链的结构。
这样的结构也是区块链数据难以篡改的技术基础之一。
5
哈希算法保证了比特币挖矿过程不能逆向推导出结果,需要矿工通过随机数不断计算得到小于给定难度值的数值。
难度值是矿工们挖矿时的重要参考指标,它决定了矿工大约需要经过多少次哈希运算才能产生一个合法的区块。
比特币的区块大约每10分钟生成一个,为了让新区块的产生基本保持这个速率,难度值必须根据全网算力的变化进行调整。
哈希函数通过调整难度值来确保每个区块挖出的时间都大约在10分钟。
哈希函数计算的难度值对保证区块链系统的安全意义重大。
理性 & 坚持
Rational & Persistent
想了解更多更专业的业内行情分析,请添加客服微信:jiucaige123,我们拉您进群。
转发+点在看=买啥涨啥
韭菜炒庄
专业|专注|专心
以上是关于区块链黑板报 | 哈希算法的主要内容,如果未能解决你的问题,请参考以下文章