12.什么是默克尔树?

12.什么是默克尔树?

Update: 2021-02-21
Share

Description

12. 什么是默克尔树?


在区块链的技术词汇中你可能会经常听到一棵树,那就是默克尔树!默克尔树又叫哈希树,它主要起着完整性校验的作用。大家如果直接去查默克尔树的概念会看到一个很复杂的树状图可能会把大家搞得一头雾水觉得啊呀这个东西我肯定是看不明白的。那接下来桔子会用一个递进的、简洁的方式给你讲明白什么是默克尔树,默克尔树的作用在哪!首先我们要知道,默克尔树是用来验证数据的,可以帮助我们确认收到的数据是原封不动且没有损坏的。

 

我们之前在讲核心技术密码学的时候已经说过了哈希的概念。输入一个数据得到一个固定的哈希值,这个哈希值可以用于校验数据完整性,保证数据准确不被篡改。哈希一般更适用于单一文件的校验,然而利用默克尔树可以做整个系统的校验,且具有灵活高效的优势。


默克尔树本质上是一种倒立的树状数据结构,自下而上由数据块、叶子节点、中间节点和根节点组成。首先,我们要对最底层的数据块分别进行哈希运算,每个数据块的哈希值就组成了叶子节点层。经过一对一的转换,叶子节点的数量和数据块的数量应该是一样的。然后,我们再对相邻的两个叶子节点进行哈希运算,得到的哈希值形成了中间节点层,在这合二为一的计算过程中,中间节点的数量应该只有叶子节点的一半。最后,我们再对相邻的两个中间节点进行哈希运算,得到的哈希值就是根节点,数量再次减半。整个过程就像在做二进制的运算,经过多次哈希计算逐渐得到一个向上递减的树状结构。


那说到这里大家是否有个疑问呀?为什么要拆分数据进行多次哈希运算呢?这不是白白增加工作量嘛!其实大家可以试想一下如果桔子负责记录村里的年度财务数据,我把这些数据通通记录在一起,只做一次哈希计算得到了一个哈希值。那当领导需要下载数据检查账目的时候,万一发现数据有问题,他得从头到尾全部排查一遍,才能找到问题出在哪。但通过拆分这些数据得到的默克尔树,就能快速地定位到出错的部分进行检查修改,这大大提高了工作的效率和灵活性!今天的内容就到这里啦,桔子推荐你去关注趣链科技的微博账号,让我们一起参与趣块链的微博话题讨论吧!



Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

12.什么是默克尔树?

12.什么是默克尔树?