首页 >> 大全

梅克尔树 - 发现数据篡改的有效手段。

2023-10-23 大全 32 作者:考证青年

文章目录 现实的应用

前言

工作量证明是哈希的典型应用,本期我们继续深入讨论哈希的第二个典型应用,梅克尔树。大家都知道哈希函数的应用场景有很多。比如,比特币中挖矿要求的工作量证明。梅克尔树在区块链中如何实现区块的防篡改。区块是怎么通过哈希链接成区块链的。都可以应用哈希的特性来实现。这次我们把梅克尔树在比特币中如何验证交易被篡改,如何实现节点的轻量化,也就是说为什么手机钱包或移动钱包成为了可能的原因,从技术角度讲清楚,讲透彻。

请大家关注抖音频道。我们将会分享有趣的、高质量的、加密货币相关的视频。

什么是梅克尔树

大家都知道区块链是一个链式结构,这个链式结构将区块串链起来,构成了区块链。我们将其中一个区块放大观察,解剖麻雀,你会发现每一个区块里有一个金字塔,这个金字塔叫做梅克尔树。

梅克尔树的作用

这是一种神奇的数据结构,它能有效发现数据是否篡改、是否破坏,甚至可以识别对方是冒牌的。这个树状结构是由加密学家 Ralph 在1979年发表的。中本聪甚至用它来压缩区块链的存储空间。让我们看一下它的神奇之处。

梅克尔树的原理 交易

有了这些交易以后,我们来看看如何搭建这个金字塔的。我们来到了梅克尔树的第二层,将交易A的进行哈希得到哈希值HA,将交易B的进行哈希得到哈希值HB,以此类推完成第二层的工作。第三层,对HA和HB进行哈希得到HAB,对HC和HD进行哈希得到HCD。第四层,最后对HAB和HCD进行哈希,够成了梅克尔树的树根,也就是形成了金字塔的顶端。

目的和意义

我们历经千辛万苦,建成了梅克尔树这个金字塔,它有什么用呢?这个梅克尔树是区块中的主要组成部分,当区块从美国节点发放到中国节点时,黑客对这个区块进行了篡改。中国节点B是如何检测或验证是否被篡改了?我们来看一个实际例子。

比如说BOb将刚才交易中的5元变成了6元,也就是交易A的内容发生了改变。B节点接收到这个区块时要对收到的信息进行验证,验证的过程也是重新搭建梅克尔树的过程,CN节点中看新搭建的梅克尔树与原有的是否保持一致,由于交易A的数据发生变化导致HA的值与USA节点的不同,从底向上搭建出新的梅克尔树,新的金字塔顶端与USA节点不同。也就是说如果梅克尔树中的任意信息被篡改,那么重新搭建的树的根一定不同。因为CN节点在接收梅克尔树之前就得到了这个树的树根,如果发现新搭建的树根与之前的树根不一样,那说明交易数据被篡改了。为什么CN节点在接收梅克尔树之前就得到了这个树的树根,抖音频道下一期分解。

梅克尔树 - 发现数据篡改的有效手段。__梅克尔树 - 发现数据篡改的有效手段。

现实的应用

另外,没有梅克尔树,就没有手机钱包的存在。整个比特币的区块链数据需要至少250G的硬盘和2G的内存。存储整个比特币的区块链数据的节点叫做全节点,全节点一般是一个台式机,他有足够的磁盘空间和内存,用来保存和同步所有区块数据。如果所有数据都放到手机端来同步和验证,手机几乎干不了别的事情了。那么如何用手机只存储关键的、少量的、安全的信息,是手机钱包要突破的关键难题之一。

中本聪对梅克尔树进行了反复思考,发现梅克尔树中仍有很多与钱包地址不相关的交易,这些交易不是我关心的,与我无关。这些交易能不能最大化的进行删除?删除梅克尔树中的不必要信息?

在USA节点中,CN关心的交易在K中,其他的交易都不关心,那么USA节点只向CN节点发送HK,HL, HIJ, HMNPO, 数据即可。CN接收到数据后,可以将HK与HL进行哈希得到HKL,HKL与HIJ进行哈希得到HKLIJ,一直从底部线上构重新建梅克尔树这个金字塔,最终得到根为A到P的哈希值,如果K中信息在传输中有变化,那利用梅克尔树的机制可以验证出来。这样新版的梅克尔树只保留了最小且必要的信息,删除了区块中与钱包地址没有关系的交易。同时USA节点减少了传送的带宽。

应用这种方式存放关键的、少量的、安全的信息节点我们称之为简单支付节点或轻量节点,也就是我们通常说的SPV节点。SPV节点中采用梅克尔树的特性,即使不保留区块中的全部数据,但梅克尔树的骨架是没有发生变化的,这样的数据是完整的,可验证的。

与梅克尔树关系密切的区块链的链式概念,都是HASH的典型应用,这些内容 抖音频道将在下期中讨论。建议大家将本期内容和下期内容深度结合,这样可以完美理解区块链的结构组成。下期见。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了