默克尔树入门

什么是默克尔树

默克尔树是一种数据结构,以它的提出者默克尔命名,根据默克尔树的性质也可以叫哈希树,是一种典型的二叉树。

默克尔树由根,分支(中间的非叶节点),叶节点组成。它有两个重要的特点,第一个是叶节点包含的是相关数据的哈希值(而不是相关数据本身),这也是它叫哈希树的原因,因为它的所有节点都是存储的哈希值;第二个是非叶节点的内容是孩子的哈希值的哈希。具体如下图所示。
在这里插入图片描述
(图片来自 Investopedia )

图中的 TA 就是原始的数据,将数据经过 hash 后,得到哈希值 HA,HA 作为整棵树的叶子节点。其余的节点如 HB,HC 等,用同样的方式得到。

每两个孩子节点的哈希值在进行哈希得到其父节点的哈希值,如 HAB = hash(HA,HB) ,一次类推得到 HABCDEFGH

这样以上就是默克尔树的基本原理。

参考

《Bitcoin: A Peer-to-Peer Electronic Cash System》
《区块链技术指南》
Merkle Tree

猜你喜欢

转载自blog.csdn.net/qq_34902437/article/details/120911504
今日推荐