浅析区块链中的HASH算法

Posted 平行区块链

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析区块链中的HASH算法相关的知识,希望对你有一定的参考价值。

区块链技术是一系列技术的结合,建立一种新的技术架构,hash算法是其中尤为重要的一块,这里简单对hash算法做一个说明。如果有理解不当的地方请及时指正。


 

讲hash算法之前先明确一个基础的计算机知识,计算机在底层机器码是采用二进制的模式,所谓二进制简单来说就是底层以0/1来标识,所有数据传输记录都以010101的模式来存储记录,两种状态也可认为就是一个日常生活中的开关,1标识开,0标识关。那么计算机中最小的数据单位也就是这里说的0或者1,这里我们称为bit(比特或者位),8个bit组成一个字节。当然计算机中也有八进制、十六进制的表示,这里暂时不展开讨论。只明确底层一个二进制的概念。


浅析区块链中的HASH算法


Hash算法


Hash算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。



浅析区块链中的HASH算法


简单理解hash算法就是这一种单向的加密,一个明文加密称为密文,不可逆推,只有加密过程,没有解密过程。说明了hash函数和hash表的概念,那么目前常用的hash算法有MD5(已被破解),SHA系列算法(比特币中使用sha-256算法)。SHA这里稍微提下(secure hash algorithm)这不是一个算法,这是一个hash函数集,现在有sha-224、sha-256、sha-384、sha-512等算法。在09年中本聪设计比特币的时候,当时sha-256被认为最安全的算法之一,故选择了sha-256,到目前为止还没有被破解。


解释到这里,可能会联想到,hash算法中key在计算后如果出现了同一位置,冲突的产生,这里简单说下几种冲突处理,如有兴趣可以查看hash算法论文。


 

浅析区块链中的HASH算法


2.多哈希法:设计两种以上的hash函数,避免冲突,这个感觉比较不靠谱,但是从概率上来说多种hash函数还是降低了冲突的出现。



Hash算法函数根据分类:加法hash、位运算hash、乘法hash、除法hash、查表hash等。


参考百度百科说的比较抽象,有兴趣可以深入了解下。


区块链中hash算法的使用



浅析区块链中的HASH算法

 

2.merkle tree:是数据结构中的一种树结构,可以是二叉树,也可以是多叉树,他和数据结构中树的特点几乎一致,和普通树不同的是:merkle tree上的叶节点存放hash计算后的hash值,非叶节点是其对应的子节点串联的字符串的hash值。用于区块头和SPV认证中。


浅析区块链中的HASH算法

 

3.比特币中的挖矿,工作量证明(pow),计算的其实就是一个nonce,当这个随机数和其他散列过的数据合并时,产生一个比规定目标小(target)值。挖矿也可以理解一种快速不可逆的计算。SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET。

   

浅析区块链中的HASH算法


4.比特币中的bloom filter布隆过滤器,布隆过滤器基于hash函数的快速查找。解决了客户端检索的问题,原理是Bloom filter可以快速判断出某检索值一定不存在于某个指定的集合,从而可以过滤掉大量无关数据,减少客户端不必要的下载量。

    

区块链是多个技术结合各自特点出现的一种新的技术架构,HASH算法和加密技术为区块链的自证信任化及安全控制提供了基础,技术不断发展,肯定会有更适合的技术保障应用的实现。


往期文章推荐

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法

浅析区块链中的HASH算法


平行区块链Parallel Blockchain

以上是关于浅析区块链中的HASH算法的主要内容,如果未能解决你的问题,请参考以下文章

区块链中的加密算法:Hash算法之SHA256算法

1.3.1 区块链中的加密算法——Hash算法(更新)

区块链中的HASH算法

区块链系列--比特币 :区块链中的Hash算法

什么?区块链中的hash算法!施主,快扶老衲起来

区块链解读-区块链中HASH算法