哈希算法是什么?为什么是区块链不可篡改的重要保障?

区块链系统中,当一笔数据产生后,会由共识机制进行数据维护,通过分布式储存记录在链上,然后交由智能合约去执行,最后由密码学保障整个体系的安全。密码学,简单来说,就是一种特殊的加密和解密技术。

 

区块链中涉及到的密码学主要有两种——哈希算法与非对称加密技术。

 

哈希算法是一种特殊的函数,不论编写代码的开发者输入多长的一串字符,只要通过这个函数,都可以得到一个固定长度的输出值(即哈希值)。就好比我们的身份证号码一样,无论你是上海人,还是北京人,身份证号码都是18位且是全国唯一的。

 

(一)哈希算法具有以下三个特征:

 

1、单向性:哈希算法是一种常见的单向性加密算法,就是指在哈希函数中,由输入可以得到输出,但通过输出却几乎不可能反推回输入。

 

2、不可篡改性:对于任意一个输入,哪怕是很小的改动,比如一个标点符号,其哈希值的变化也会非常大。

区块链的每一个区块,都会以上一个区块的哈希值作为标识,通过哈希算法再进行加工,这样后面区块不仅可以查找到前面的所有区块,也可以验证前面区块数据有没有被更改。数据一旦记录在链上,除非整条链上的所有哈希值都被破解,否则,链上数据是不可能被篡改的(区块链的不可篡改性)。

 

3、抗碰撞性:碰撞是与哈希函数相关的重要概念,反映哈希算法的安全性。所谓碰撞,就是指输入两个不同的数据,最后得到了一个相同的输出结果,就跟我们日常撞衫一样。一般情况下,如果哈希算法的“抗碰撞性”条件不满足,那么此哈希算法就会被认为不安全。

 

哈希算法的抗碰撞性主要应用在区块链的帐户地址中,在区块链系统中,任何一笔交易或者帐户的位址都是完全依托于哈希算法生成的,这样就保证了交易或者帐户地址在区块链网路中的唯一性。无论交易者要转多少钱或者转给多少个人,他的每一笔交易和要转帐的帐户位址都是唯一的存在。

 

(二)哈希算法(函数)需要满足以下条件:

 

1.确定性:哈希算法是确定性的算法,算法执行过程不引入任何随机量。这就意味着相同字串的哈希结果一定相同;

 

2.高效性:给定任意一个数据m,可以快速计算Hash(m) ;

 

3.目标抗碰撞性:给定任意一个数据m1,很难找到另一个数据m2,使得Hash(m1)= Hash(m2);

 

4.抗碰撞性:很难找到m1≠m2的两个数据,使得Hash(m1)= Hash(m2)。

 

因哈希算法可以快速验证、并防止数据或交易在传递过程中被篡改,在网路数据和区块链技术应用中起着重大作用,也是区块链具备安全可信特征的重要因素。

哈希算法是什么?为什么是区块链不可篡改的重要保障?-第1张图片-欧易OKX官网