区块链技术的运用总共有哪些地方需要运用到哈希函数的呢,下面我们总结5点可以利用哈希函数的地方:
1:计算区块链中节点的地址,公钥和私钥
区块链中的公钥,会经过两次计算,- -次是SHA -256计算,然后是RIPEMD160计算,就会得到- . 个公钥哈希。得到公钥哈希后,先添加版本信息,再经历两次SHA-256运算,取前4比特字节放到哈希公钥加版本信息中,经过base58编码就能得到最终地址。
2.Merkle Tree
Merkle Tree是数据结构中的一种树结构, 也被称为二权树或多权树。Merkle Tree上的叶节点存放Hash计算后的hash值,非叶节点是其对应的子节点串联的字符串的Hash值,它适用于区块头和SPV认证。
3.比特币中的“挖矿”
比特币挖矿的工作原理,是调整难度值的设定,依然依赖于哈希算法。一个被命名为“Nonce”的随机字符串被添加到新区块的哈希值上,再次运行哈希算法,然后检验其是否低于已设定的难度值水平。
若是低,则产生的新区块会被添加至链上,“矿工” 会得到奖励。若是高,则“矿工”继续修改随机字符串“Nonce” ,直到低于难度值水平的值出现。
4.布隆过滤器
布隆过滤器,主要是基于Hash函数实现快速查找,它解决了客户端检索的问题。布隆过滤器可以快速判断出某检索每个区块上的哈希值都是固定的,如果想要篡改某个区块,就会导致哈希值改变,从而无法对应下一一个区块。
5.抗碰撞性
哈希函数的运算过程相当复杂,包含多种数学运算和大量变量循环运算,要满足两个不同的消息产生相同的哈希值几乎不可能发生。加密哈希函数对区块链的安全性和“挖矿”有巨大的帮助。
想要了解区块链,首先我们要明确构成它的两种数据结构:链表和哈希指针。
我们不妨以比特币为例,来帮助理解。在比特币中,哈希算法会把交易生成数据摘要,形成一个区块。这个区块会包含上一个区块的哈希值,而后面的区块也会包含这一个区块的哈希值。每个区块都链接在一起,形成个哈希指针链表。
评论