本文介绍了Node.js中Merkle Tree和Patricia Trie的实现,还介绍了这两种数据结构的一些理论方面。
介 绍
Merkle和Patricia是以太坊区块链中使用的两种最受欢迎的数据结构,其背后的Bloom Filters非常接近。在本文中,我将介绍以下内容:
1. 关于Merkle和Patricia尝试
2. 算法
3. 在Node.js中实现
默克尔树Merkle Tree
默克尔树Merkle Tree不是计算机科学中的新概念,它已经存在了数十年,起源于密码学领域。
简而言之,默克尔树Merkle Tree本质上是一种树数据结构,其中数据存储在叶节点中,非叶节点存储数据散列,每个非叶节点是其下两个节点的组合哈希值。
从数学上讲,它可以表示为
![0723b5e4abf02fbdb3a07c2b308fbef2.png](https://i-blog.csdnimg.cn/blog_migrate/9ad814e1ac7b31e7d5e95a283d04d425.jpeg)
例如:给定一个字母表列表,从中创建一个默克尔树merkel tree。默克尔树merkel tree的最底层将包含所有字母作为叶节点。
![82ad2104065cdf7998d11563bfb1df98.png](https://i-blog.csdnimg.cn/blog_migrate/2d044e4c979beb09601d1384a9c94727.jpeg)
上面的层包含其哈希值。
![94d424493774ca1709fb996c60c6fced.png](https://i-blog.csdnimg.cn/blog_migrate/0356ff028eef7ba2662611385b953a7e.jpeg)
第二层之后的层中的节点包含子节点的哈希值。通常我们从第二层获取两个节点,并将它们合并以形成另一个节点。我们也可以采用两个以上的节点,但是二叉默克尔树merkel tree是所有节点中最简单的,增加