当有大量数据需要验证时,就需要消耗大量的内存来存储和确保安全,这个过程很难。但是又了马尔科夫树(Merkle tree),就可以轻易解决这些问题。 马尔科夫树是区块链技术的基础,在该结构中,可以很容易地在大量数据中找出哪些数据发生了变化,整个数据验证的过程非常高效。比特币和以太坊中都使用了马尔科夫树。 从上图可以看出,所有的交易都在底部,最顶部的哈希值叫做Root hash或Merkle root(马尔科夫根)。 如上图所示,有4个交易A、B、C、D。A和B哈希后会形成一个哈希值,C和D会形成另一个哈希值,AB的哈希结果和CD哈希结果会组合来形成一个新的哈希值——Root hash或Merkle RootABCD。 Root hash有所有交易的信息。马尔科夫树会重复计算节点对的哈希值,直到只剩下一个哈希值,就是Root hash。 Merkle tree是一个二叉树,所以需要偶数个叶子结点,如果交易数是奇数,那么最后一个哈希值会复制一次来创建偶数个叶子节点。 如上图所示,可以看出奇数值的交易数中有复制的交易进行了哈希,表明Merkle tree会计算奇数的叶子树。 所有交易数据会总结称一个Root hash,保存在区块头(block header)中。数据中有任何改变,整个哈希值就会变化,如果哈希值变化了,Merkle root就会发生变化。Merkle tree可以帮助维护数据的完整性。 Merkle tree的另一个好处是如果想要了解特定交易的状态,无需下载整个区块链,只需要请求竖直证明(vertical proof)和树的特定分支,验证一个特定的交易分支。 如何用哈希来确保数据安全? 哈希还增加了数据的安全性。因为没有加密数据,所以无需也无法解密数据。因为哈希函数是单向加密函数,加密哈希函数需要满足一些关键特征才能保证是有用的,包括: 每个哈希值都是不同的 相同的消息会生成相同的哈希值 无法根据哈希值确定输入值 输入值的微小变化也会导致整个哈希值的变化 哈希可以帮助确定数据是否被修改过。比如,之前下载了一些重要信息,为确定数据是否被修改过,可以对数据进行哈希计算,并比较数据的哈希值和接收到的数据的哈希值。 如果哈希值相同,就表明数据没有被修改过,如果哈希值不匹配,就表明数据在发送后接收前被修改了。 —- 编译者/作者:大姐 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何用哈希来确保数据安全?
2020-02-16 大姐 来源:区块链网络
- 上一篇:Libra锚定美元?这是必然选项
- 下一篇:云算力云挖矿引领挖矿新时代
LOADING...
相关阅读:
- 比特币上涨突破11700刀时,计算接下来的行情里面主涨趋势还有几波?2020-08-01
- 以太坊经典区块链因一名矿工重组而分裂2020-08-01
- 日报丨蚂蚁集团发布国内首款区块链自研软硬件一体机2020-08-01
- 区块链神算子:8.1日比特币晚间分析 单边出现量能或呈V型反转2020-08-01
- MXC极域与SimplyCity重磅合作拓展澳洲物联网智慧城市市场2020-08-01