iT邦幫忙

2021 iThome 鐵人賽

DAY 17
1
影片教學

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

[Day17]What is Merkle tree? - 2


hi~今天要延續昨天merkle tree的主題!
我們昨天簡述完之後,有用圖解,希望大家有更清楚一點!
那我們今天就實際來做一棵merkle tree吧!

實作一棵merkle tree

  1. 先加入五個數據塊,分別做hash(於是我們就會到第二層!)
  2. 接著再把兩個兩個一起做hash(於是我們又更上一層樓)
  3. 再把兩個兩個一起做hash(更上一層了!
  4. 最後把全部倆倆併在一起,再做一次hash,就是merkle tree root了!
    Merkle Tree的複雜度是O(n)(也就是要進行O(n)次hash運算,n是數據塊的大小)。 得到Merkle Tree的樹高是log(n)+1

https://ithelp.ithome.com.tw/upload/images/20211001/20140143aABD6CPrIM.png

用這棵merkle tree 進行檢索

那我們就用剛剛這棵樹來進行檢索!會發現樹狀結構在資料很多的時候反而更吃香!因為這樣二選一可以減少許多時間與空間!
假設我們今天要比對兩堆資料中的hash(L4)是否一樣,那我們會從樹根開始比,再一層一層往下!要選有這個資料的那邊,直到最後就會找到了!
https://ithelp.ithome.com.tw/upload/images/20211001/20140143bVaYIRq2vq.png

如果文字描述不清楚,建議看影片比較清楚呦!
那以上就是今天的Merkle tree創建與檢索!


參考資料:
https://www.chainnews.com/zh-hant/articles/814488966228.htm
https://www.itread01.com/articles/1487247623.html


那今天的介紹就到這邊拉~
真的是沒有很專業的介紹,比較像是跟大家分享我學到甚麼,我還有很多要學習的地方:(
如果喜歡的話明天記得繼續回來看下一篇!影片記得按讚訂閱開小鈴鐺謝謝大家!
/images/emoticon/emoticon29.gif


上一篇
[Day16]What is Merkle tree?
下一篇
[Day18] What is Gas?
系列文
連續30天,每天5分鐘,一起學習blockchain!30

尚未有邦友留言

立即登入留言