哈希函数在区块链当中起着至关重要的作用,它的做法是将繁杂的交易信息加密压缩成固定字节的简单哈希值,并成为该区块的标识,保证区块链中交易信息不被篡改。还有不论是连接相邻区块,还是构建merkle树,以及交易验证、数字签名等等重要环节都用到了这个算法。
1.概念哈希:Hash,一般翻译为“散列”,也有直接音译为“哈希”的,就是把任意长度的输入通过哈希算法变换成固定长度的输出,该输出就是哈希值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。我们常说的哈希算法、哈希函数通常都是意指同一个东西。2.原理基于一种密码学上的单向哈希函数,通常业界使用y=hash(x)的方式进行表示,该哈希函数实现对x进行运算计算出一个哈希值y。
3.特点(1)加密过程不可逆,意味着我们无法通过输出的哈希值倒推原本的明文是什么。(2)输入的明文与输出的哈希值一一对应,任何一个输入信息的变化,都必将导致最终输出的哈希值的变化。(3)对于任意大小的输入,最终计算出的哈希值的长度很小,并且是固定长度。(4)两段内容不同的明文,很难使得它们的哈希值相同。即对于任意两个不同的数据块,其哈希值相同的可能性极小。
然后将句号改变为感叹号,哈希值完全变了。
5.哈希指针(HashPointer)哈希指针是指该变量的值是通过实际数据计算出来的,且指向实际的数据所在位置。即哈希指针既可以表示实际数据的存储位置,又可以表示实际数据内容(某个时间戳下该数据的哈希值)。总结一下,从哈希指针这个角度来看区块链的结构,可以说区块链就是按时间顺序将数据区块通过哈希指针的方式连接起来的一个链表。
领取专属 10元无门槛券
私享最新 技术干货