哈希
算法即运用
哈希函数进行运算,所得到的运算结果为
哈希值。在
区块链技术中扮演着重要的角色。
哈希函数是一种二进制、单向映射的计算方法,又称
散列函数。将任意长度的数据输入
哈希函数后,将转换输出为固定长度的二进制数,并且无法根据得到的二进制数,倒推输入的内容是什么。而且有微小差别的不同信息经过
哈希运算后,得出的
哈希值也会有很大区别,因此起到了
加密的作用。
例如Gate和Gate1,经过SHA1哈希运算后,分别得出两个长度一致,但完全不同的数据:
5701b5f6feaa9aaae618dd553adc29893963cc1a;
b3607aef90d33224f0ab1b2663407af3571e4798;
哈希函数有很多种,一般来说,输出的计算结果位数越多的函数,安全性越高。常见的
哈希函数有SHA256、SHA1、MD5等,其中
比特币使用的就是SHA256函数。
哈希算法在比特币区块链网络中的主要应用:
1. 计算
节点的地址
比特币的
节点地址类似银行卡号,我们可以通过
地址进行
比特币的转入转出。
比特币地址需要根据
公钥数据多次进行SHA256计算、RIPEMD160计算、BASE58编码才可以生成。
2. 挖矿
比特币
工作量证明的
挖矿方式,其实就是以
哈希计算的方式实现的。将
区块头数据带入
哈希函数计算公式,不断调整
区块头数据中的
随机数,直到计算出满足特定标准的
哈希值,
工作量证明就会完成。
3.
梅克尔树(
Merkle Tree)
梅克尔树是
区块头中的重要信息,
区块中的所有交易记录需要通过哈希
算法,得出Merkle Root
Hash。Merkle Root
Hash与
区块版本号Version、上一个
区块的
哈希值Prev_
Hash、时间戳Timestamp、
难度值Bits和随机数Nonce共同组成
区块头。
哈希
算法在
区块链中的应用不仅以上三种,还包括
区块链的形成等等。哈希
算法是确保
区块信息安全有效传输的重要保证。