区块辞典:梅克尔树

区块辞典的开卷词条,当然是我们的

梅克尔树啦~

梅克尔树(Merkle Tree),也可以翻译成“默克尔树”(没错,就是德国女总理安哥拉·默克尔的那个“默克尔”)。

(昨天世界杯买我们德国了吗?)

另外它还有个更直观的名字叫做“哈希树”(Hash Tree)。梅克尔树这个有格调的名字,则是因为计算机科学家瑞夫·梅克尔(Ralph·Merkle)1979年对哈希树申请了专利。屈指一算,梅克尔树已经有30年的历史了呢!

(这是嘻哈)

(这才是哈希!)

而直到这几年,这棵默默生长的树才因为区块链崭露头角。梅尔克树是区块链的基本数据结构,没有它区块链不可能如此迅速发展。

它是一种树形的数据结构,其作用简而言之,就是极大地简化了数据查询和验证过程。

(所谓的树形长这样~)

如果你只想简单了解概念,看到这里大概就够了

-------------------前方烧脑预警-------------------

梅克尔树如何简化数据查询和验证?

即使你还不清楚区块链到底是什么也没关系,先从字面意义上来理解它就可以。想象一下一条“链子”上拖了很多个“区块”,如果“区块”很沉重,扯动“链子”就非常吃力。更麻烦的地方在于,“区块链”里的“区块”会不停增加,而且由于它的分布式特性,整个“区块和链条”都需要储存在每台参与的电脑中,如果没有一些特殊优化,这些数据动辄就会占用几百GB的硬盘储存空间,而且未来它还会无限增长!

而梅克尔树解决了这个问题。

它首先用哈希算法,将每个区块的大量信息(无论信息到底有多少)转换成一串轻巧的,固定长度而且独一无二的哈希密码。这就类似于指纹识别,识别时不需要把你的脸、胳膊和脚等部位一一检查,只要指纹匹配,就可以验证你是你了。

进阶知识点:拥有哈希密码并不能还原出原本的数据,就像复制了你的指纹也不能克隆一个你。

但如果人(区块)越来越多,成千上万,每次一一验证指纹也是件麻烦的事情,这时就要用到梅克尔树的特殊结构了,梅克尔树将已经验证过的人(区块)用二叉树的结构圈在一起,把他们的哈希密码总结到一起,然后对这项总结又生成一个新的哈希。这样以后只要验证这个哈希,就知道这整群人统统没问题,每次要加入新的人(区块)都可以很简单验证并更新整个系统。

而反过来,如果这些数据里的任何条目,哪怕只是一个字母发生了变化,所有包含这个条目的哈希密码都会有明显变化,由此可以迅速查出问题出在哪里。

实际的过程会更加复杂,而且梅克尔树还有不同变种,比如以太坊设计的梅克尔树就和比特币最初采用的梅克尔树不太一样。由于我们是面向普通人的区块辞典,只希望大家知道原理就足够,技术细节暂时先不深入,但如果大家有兴趣,未来我们也可能会追加补充说明。

下期预告:

梅克尔树也叫哈希树,我们今天也一直提到哈希,其实你在互联网在下载一些文件时,可能就见过哈希这个词。为什么下载时要用到这个东西呢?

下期区块辞典,我们就进一步来聊哈希,不见不散!

辞典文章中如有不解之处,欢迎留言或私信与我们讨论,对于询问度高的词汇我们也会优先开设词条。

- The End -

文 |梅克尔 · 叶芝

图 | 部分图片来自网络

梅克尔树

“梅克尔树”是区块链的数据结构,又名“哈希树”。

我们是以“梅克尔树”为图腾的区块链信徒,

挖掘行业动态,科普前沿技术,脑洞新奇观点。

区块链界小清新不谈炒币,只谈区块链如何改变生活。

关注我们,轻松可见人类如何步入新纪元。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180619G0XH9G00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券