[Day16]What is Merkle tree?


这篇会分成4个部分,分别是介绍merkle tree以及各种待会会用到的名词、实际看merkle tree、如何创建merkle tree、如何用merkle tree检索。

What is merkle tree?

Merkle Tree 是一种用来表示 Hash 值的树状结构。它的基本结构就是 Binary Tree(也就是二元树),每一个中间节点(Node),都会被标示一个 Hash 值。由於 Merkle Tree 的发明人是 Ralph Merkle,当然这就是这个资料结构的名称由来。

Why不直接用simple hash就好?

因为merkle tree 在检索与验证的过程中,能够比简单hash花费更少的时间与空间,待会(明天XD)会检索给大家看!
在介绍这张图之前,有几个名词要先和大家说:

  1. 叶节点:在二元树中,这个节点底下没有任何小孩(子节点)的,就叫做叶节点。像树上的叶子一样,不会再生出树枝。而下面会有一排区块,那每一块都是一笔交易数据,他们分别进行hash运算後,得到的hash值就是叶节点。
  2. 中间节点:就是上有父母、下有子孙的节点。在叶子节点两两匹配之後,会在进行一次hash运算,得到的hash,就是对应的中间节点,也可以说是过程节点。
  3. 根节点:只有一个,就像树根一样,是所有中间节点的合并。在merkle tree里面叫做 Merkle root,这是终止节点。
    https://ithelp.ithome.com.tw/upload/images/20210930/20140143aTPq8utiy1.png

图源:merkle tree维基百科
然後明天会试着创建一棵merkle tree!以及检索!


参考资料:
https://zh.wikipedia.org/wiki/%E5%93%88%E5%B8%8C%E6%A0%91
https://www.samsonhoi.com/274/blockchain_genesis_block_merkle_tree
https://www.chainnews.com/zh-hant/articles/814488966228.htm
https://www.itread01.com/articles/1487247623.html


那今天的介绍就到这边拉~
真的是没有很专业的介绍,比较像是跟大家分享我学到甚麽,我还有很多要学习的地方:(
如果喜欢的话明天记得继续回来看下一篇!影片记得按赞订阅开小铃铛谢谢大家!
/images/emoticon/emoticon29.gif


<<:  认识CSS(五):背景效果

>>:  JavaScript学习日记 : Day18 - Class

EP21 - [Ruby on Rails] 新增订单

Youtube 频道:https://www.youtube.com/c/kaochenlong ...

Day27 Let's ODOO: Backup

Odoo举凡各种设定、操作、权限都储存在自己的PostgreSQL 资料库里,所以我们要迁移服务是非...

Day29|常见的三种工作流程 - Git flow、GitHub Flow 与 Gitlab Flow

在制作专案时,大多都是与他人共同协作,当一起开发的人越来越多时,就更需要有一套规则或模式来进行合作,...

Day 0xA UVa490 Rotating Sentences

Virtual Judge ZeroJudge 题意 将输入的多行字串改变顺序後输出 需要注意的点...

Day17-维稳? StatefulSet介绍

在pod的生态中,本身就是一个小小世界,新旧pod之间通常不影响,当建立新的pod时,基本上不会跟被...