简言之,在Merkel树中,每个节点都用数据块的加密散列值进行标记。哈希树可以用来验证计算机之间存储、处理和传输的任何类的数据。它们可以帮助确保从对等网络中的其他对等方接收到的数据块完好无损地接收到,而不会发生损坏或更改。
我们来谈谈默克尔树。
说到区块链,我们有很多区块,这些区块会借助哈希值连接在一起。我们知道每个区块都有一个事务,可以是一个或多个事务。如果我们想找出块本身的散列值,我们应该怎么做?是将整个块组合成散列值吗?还是要查找每个事务的哈希值?现在,如果要查找每个事务的哈希值,必须存储所有哈希值。这样,一个块将不仅有一个哈希值,而且有100个哈希值。我们不希望只得到一个哈希值,实现方法之一是借助Merkel树。
当你第一次看到Merkel树时,它们可能会非常混乱,但实际上它们的结构非常简单。
每棵树都有一根,一组树枝,叶子从树枝的底部长出来。
那么如何建造这棵树呢?假设在一个块中,有8个事务,我们将开始收集每个事务的哈希值。对于8个事务,我们将有8个哈希值。现在,我们要做的是找到第一个和第二个值,然后是第三个和第四个值,依此类推,直到我们最终得到这样的结果:
一旦我们有了所有的集合哈希,我们就可以再次组合它们,如下图所示:
**,在完成上述步骤后,我们将返回到树的根,最终的Merkel树如下图所示:
**,我们将合并所有内容以获得1到8的哈希值,然后用一个总哈希值标记整个块和其中的所有事务。
在这个例子中,我们可以看到**的数字是偶数,但如果它是奇数呢?我们只需要重复这个事务,如[9,10,9,10]分支所示。
**,当我们在根上组合所有这些时,我们只留下Merkel树的根和一个散列值块。这在区块链方面非常有用,因为它限制了处理所有块所需的内存,并且每个块只能处理一个哈希值,因此比必须处理每个块中存储的100个哈希值要高效得多。
大多数哈希树实现都是二进制的,这意味着每个分支下都有一个叶子,但是它们也可以在分支下使用更多的叶子节点。
文章标题:5分钟内了解默克尔树
文章链接:https://www.btchangqing.cn/184040.html
更新时间:2022年11月19日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。
大鲸鱼都看多,我们怎么能看空
哈哈,昨天不知道上了多少韭菜
评论一下 表示支持