iT邦幫忙

2021 iThome 鐵人賽

DAY 16
2

Yes


這篇會分成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
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

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

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

我要留言

立即登入留言