区块链默克尔树2025年3月17日 | 阅读 3 分钟 默克尔树是区块链技术的基本组成部分。它是一种由不同数据块的哈希组成的数学数据结构,作为区块中所有交易的摘要。它还允许高效且安全地验证大量数据中的内容。它还有助于验证数据的完整性和内容。比特币和以太坊都使用默克尔树结构。默克尔树也称为哈希树。 默克尔树的概念以拉尔夫·默克尔 (Ralph Merkle) 的名字命名,他于1979 年为其专利。从根本上说,它是一种数据结构树,其中每个叶节点标记为数据块的哈希,而非叶节点标记为其子节点标签的加密哈希。叶节点是树中最底层的节点。 默克尔树如何工作?默克尔树通过生成整个交易集的数字指纹来存储区块中的所有交易。它允许用户验证交易是否可以包含在区块中。 默克尔树通过重复计算节点的哈希对来创建,直到只剩下一个哈希。这个哈希称为默克尔根或根哈希。默克尔树是自下而上构建的。 每个叶节点都是交易数据的哈希,非叶节点是其先前哈希的哈希。默克尔树是二叉树,因此需要偶数个叶节点。如果交易数量为奇数,则最后一个哈希将被复制一次,以创建偶数个叶节点。 ![]() 上面的例子是最常见和最简单的默克尔树形式,即二叉默克尔树。一个区块中有四笔交易:TX1、TX2、TX3 和 TX4。在这里,你可以看到有一个顶部的哈希,它是整个树的哈希,称为根哈希或默克尔根。这些都被重复哈希,并存储在每个叶节点中,得到哈希 0、1、2 和 3。然后将连续的叶节点对通过哈希Hash0 和 Hash1 汇总到父节点中,得到 Hash01,并单独哈希 Hash2 和 Hash3,得到 Hash23。然后再次哈希这两个哈希(Hash01 和 Hash23)以生成根哈希或默克尔根。 默克尔根存储在区块头中。区块头是比特币区块在挖矿过程中进行哈希处理的部分。它包含最后一个区块的哈希、一个 Nonce 以及默克尔树中当前区块所有交易的根哈希。因此,将默克尔根包含在区块头中使交易防篡改。由于此根哈希包含了区块内所有交易的哈希,因此这些交易可能会节省磁盘空间。 ![]() 默克尔树维护数据的完整性。如果交易的任何一个细节或交易的顺序发生更改,这些更改将反映在该交易的哈希中。这种变化将沿着默克尔树向上级联到默克尔根,改变默克尔根的值,从而使区块无效。因此,每个人都可以看到,默克尔树可以快速简单地测试某个特定交易是否包含在集合中。 默克尔树有三个好处
下一个主题区块链与数据库对比 |
我们请求您订阅我们的新闻通讯以获取最新更新。