世人皆知区块链,却不知梅克尔树呀
最近,研究中本聪大神的论文,他提到了梅克尔树让我很好奇, 打算研究一下,谁知道网上各种乱天飞的文章几乎都定义成:
梅克尔树(Merkle trees)是区块链的基本组成部分。
好吧,这样说不是不对,可是明明先有的梅克尔树,后有的区块链,难道当时定义它的人有预测的功能,知道此结构必将应用于区块链。
所以我觉得当时梅克尔树结构才出来的时候应该和区块链一毛钱关系也没有。
梅克尔树,最早叫做哈希树,在1979年的时候,Ralph Merkle 这个哥们为它申请的专利, 因此从那时候名字改作梅克尔树Merkle trees。 看到这里,我只想说,我X, 原来软件数据结构还能申请专利。也不知道专利有什么意义,别人不能用吗,还是用要给他使用费?
好了,还是言归正传,说说这种数据结构,首先它是一种树状的数据结构, 可以是二叉也可以是多叉,只不过二叉应用的非常广泛。树的所有叶节点存储的是数据块的哈希值, 所有非叶节点存储的是它自己所有子节点的哈希值, 然后一路哈希上去。
![](https://i-blog.csdnimg.cn/blog_migrate/b29eada522bd8f81ed55d6077975ac7e.png)
这就是梅克尔树Merkle trees。它实际是哈希列表和哈希链表的衍生物品。
使用
梅克尔树可以非常高效的验证计算机之间任何数据的存储、处理和传输。特别是在点对点网络里,能够确认你收到的数