欧易OKX矿池接入教程
一分钟搞懂 Merkle Tree 以及它的特点和作用
什么是 Merkle Tree?
Merkle Tree 也就是胜超前文说的 Merkle 树,中文译名还有梅克尔树或默克尔树,因为这是一棵用哈希值搭建起来的树,树的所有节点都存储了哈希值,所以也叫哈希树,英文名为Hash Tree。
Merkle 树是一种典型的二叉树结构,看起来像一棵倒着的树,由一个根节点,一组中间节点和一组叶节点组成,最早由 Merkle Ralf 在 1980 年提出,广泛用于文件系统和 P2P 系统中。
如何理解 Merkle 树中的节点?
叶节点:在二叉树中,没有子节点的节点称为叶节点,这是初始节点,对于一个区块而言,每一笔交易数据,进行哈希运算后,得到的哈希值就是叶节点。
中间节点:子节点两两匹配,子节点哈希值合并成新的字符串,对合并结果再次进行哈希运算,得到的哈希值,就是对应的中间节点,这是过程节点。
根节点:有且只有一个,也就是胜超之前分享的 Merkle 根,也叫Merkle Root,这是终止节点。
Merkle 树有什么特点?
1,首先是它的树的结构,Merkle 树常见的结构是二叉树,但它也可以是多叉树,它具有树结构的全部特点。
2,Merkle 树的基础数据不是固定的,想存什么数据由你说了算,因为它只要数据经过哈希运算得到的Hash 值。
3,Merkle 树是从下往上逐层计算的,就是说每个中间节点,都是根据相邻的两个叶子节点组合计算得出的,而根节点是根据两个中间节点组合计算得出的,所以叶子节点是基础。
Merkle 树有什么用?
1,Merkle 树比较典型的应用场景的就是 P2P 下载,在点对点网络中作数据传输的时候,为了校验数据的完整性,把大的文件分割成小的数据块,如果小块数据在传输过程中损坏了,那么只要重新下载这一小块数据就行了。
2,Merkle 树还可以被用来快速比较大量的数据,因为当两个 Merkle 树根相同时,则意味着所代表的数据必然相同。
3,Merkle 树可以实现零知识证明,关于零知识证明以后有时间再分享,ZCash 就是采用零知识证明来达到交易匿名的目的。