Hash(哈希值)又叫散列值,是对一段字符串进行特殊的演算,生成一个定长的字符串,这个字符串就是Hash值,Hash值用来比对字符串的完整性,即比对给定的字符没有被篡改过。Hash值也可以看作是是数据的指纹,用来识别数据的独特性,具有不可替换性,即便数据有一个字符的不同,Hash值也会有很大的差异,因此Hash值可以看做对数据的摘要,如果把所有数据的Hash值作为一组摘要,可以表现出数据的特征,可以用于数据检索和相似度比较。 Hash值的主要特点就是快而且不好被猜测,它能够将任意长度的消息压缩到比较短的固定长度的消息摘要中。这个固定长度的摘要,能够有效地完成原始消息的简易识别,当MsgA与MsgB的Hash值一样,则可以认定两者产生的原始消息必然相同,因为一个消息相同,Hash摘要也必然相同,这就提供了简单而安全有效的原始消息校验的方法。
在区块链中,使用Hash作为数据和信息的索引和校验方法,而且在每个区块链模型中,都有一个或多个Hash值标识这个数据,而且这个Hash值有时会因数据块里的内容而变化,这样做的目的是防止黑客篡改数据,使数据的安全性得到保障。另外,Hash的另一个应用在于区块链的共识机制,比特币使用的Pow机制,便是这样一种共识机制,Miner们都要去寻找一个尽可能满足要求的Hash值,而这个Hash值必须由全网节点共同确认。Hash算法同样用于比特币后续的PoS等共识机制中,它使网络能够安全有效的记录信息,同时也受到区块链安全性的保障。