1. 程式人生 > >Merkle Tree(HashTree)

Merkle Tree(HashTree)

為什麼要使用Merkle Tree?
    目前, 在計算機領域,Merkle Tree大多用來進行比對以及驗證處理。在處理比對或驗證的應用場景中時,特別是在分散式環境下進行比對或驗證時,Merkle Tree會大大減少資料的傳輸量以及計算的複雜度。例如,就拿圖一舉例,假如是 15,16.......30是一個個資料塊的hash值,我把這些資料從A傳輸到B,資料傳輸到B後,我想驗證下傳輸到B上的資料的有效性型(驗證資料是否在傳輸過程中發生變化),只需要驗證A 和 B上所構造的Merkle Tree的root節點值是否一致即可,如果一致,表示資料是有效的,傳輸過程中沒有發生改變。假如在傳輸過程中,15對應的資料被人篡改,通過Merkle Tree很容易定位找到(因為此時,節點0,1,3,7,15對應的hash值都發生了變化),定位的時間複雜度為O(log(n)).