交易哈希和区块哈希的区别,交易哈希有什么用?很多人不了解,今天趣百科为大家带来相关内容,下文是小编给大家带来的介绍。
哈希函数在区块链中起着至关重要的作用。它的做法是将复杂的交易信息加密压缩成一个简单的固定字节的哈希值,它成为了区块链的标识,保证了交易信息在区块链的不被篡改。这种算法还用于一些重要的环节,如连接相邻块、构建merkle树、交易验证、数字签名等。
1.概念
Hash: Hash,一般翻译为“Hash”,或者直接音译为“Hash”,是通过哈希算法将任意长度的输入转换为固定长度的输出,输出为哈希值.简单地说,它是将任意长度的消息压缩成某个固定长度的消息摘要的函数。我们常说的哈希算法和哈希函数通常是一个意思。
2.原理
基于密码学中的一个单向哈希函数,在业界通常用y=hash(x)来表示。这个哈希函数可以通过运算x计算出一个哈希值Y .这种函数很容易被验证,但是却很难破解.从x计算出Y很容易,但是从Y推导出x很难.也就是只有加密过程,没有解密过程。
3.特点
(1)加密过程是不可逆的,也就是说我们无法通过输出的哈希值推断出原始明文是什么。
(2)输入明文和输出哈希值是一一对应的。任何输入信息的改变都必然导致最终输出哈希值的改变。
(3)对于任何大小的输入,最终计算出的哈希值的长度都很小,而且是固定长度。
(4)很难使两个内容不同的明文的哈希值相同。也就是说,对于任意两个不同的数据块,相同哈希值的可能性极小。
4.SHA256算法
常用的哈希算法包括MD5、SHA-1、SHA-256、SHA-384和SHA-512。在区块链,SHA-256算法通常用于块加密。对于任何长度的任何消息,SHA-256都会生成一个256bit的哈希值,这个哈希值叫做消息摘要.这个抽象相当于一个长度为32字节的数组,通常用长度为64的十六进制字符串表示,就是我们看到的64个字符。
区块链利用这种算法在一个交易区块中进行交易信息进行加密,并将压缩的信息转化为由一串数字和字母组成的散列(哈希)字符串。区块链的哈希值可以唯一准确地标识一个块,任何节点都可以通过简单的哈希计算获得这个块的哈希值。计算出的哈希值没有改变,这意味着块中的信息没有被篡改。
下面是一个将明文加密成哈希值的例子。
然后把句号改成感叹号,哈希值就完全变了。
5.哈希指针(Hash Pointer)
哈希指针意味着这个变量的值是从实际数据计算出来的,并且指向实际数据的位置。也就是说,哈希指针既可以表示实际数据的存储位置,也可以表示实际数据内容(某个时间戳的数据哈希值)。
综上所述,从哈希指针的角度看区块链的结构,可以说区块链是一个以哈希指针按时间顺序连接数据块的链表。指针实际上是一串数据的哈希值,一串数据的哈希值是这串数据的“指纹”和抽象,所以可以用这个哈希值指向这串数据。
区块链中每个块都有一个hash指针对应自己的块,除了创建块(即第一个块),其他每个块都存储前一个块的hash指针,这样就形成了一个如下图的链,即区块链。
这样的数据结构可以保证数据不被篡改,因为任何一个块的数据一旦被篡改,对应的hash指针就会出错,所以后面的块的hash指针就无法匹配数据被篡改后该块生成的hash指针,所以一旦发生恶意篡改就可以检查出来。
这就是hash函数的介绍。我很荣幸能帮助你。