iT邦幫忙

2021 iThome 鐵人賽

DAY 16
1
影片教學

連續30天,每天5分鐘,一起學習blockchain!系列 第 16

[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


上一篇
[Day15]Week2總結
下一篇
[Day17]What is Merkle tree? - 2
系列文
連續30天,每天5分鐘,一起學習blockchain!30

1 則留言

0
jafarwu
iT邦新手 5 級 ‧ 2021-09-30 19:28:57

不會建樹的我只好用種的/images/emoticon/emoticon02.gif
等你教學!期待期待

我要留言

立即登入留言