merkle tree,是一種樹(資料結構中所說的樹),網上大都稱為merkle hash tree,這是因為 它所構造的merkle tree的所有節點都是hash值。merkle tree具有以下特點:
1. 它是一種樹,可以是二叉樹,也可以多叉樹,無論是幾叉樹,它都具有樹結構的所有特點;
2. merkle樹的葉子節點上的value,是由你指定的,這主要看你的設計了,如merkle hash tree會將資料的hash值作為葉子節點的值;
3 非葉子節點的value是根據它下面所有的葉子節點值,然後按照一定的演算法計算而得出的。如merkle hash tree的非葉子節點value的計算方法是將該節點的所有子節點進行組合,然後對組合結果進行hash計算所得出的hash value。
例如,下圖就是乙個merkle hash tree形狀,如果它是merkle hash tree,則節點7的hash value必須是通過節點15、16上的value計算而得到.
目前, 在計算機領域,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)).
應用包括:bt/git等
Merkle Tree及其應用
merkle tree,是一種樹 資料結構中所說的樹 網上大都稱為merkle hash tree,這是因為 它所構造的merkle tree的所有節點都是hash值。merkle tree具有以下特點 1.它是一種樹,可以是二叉樹,也可以多叉樹,無論是幾叉樹,它都具有樹結構的所有特點 2.merk...
Merkle Tree演算法詳解
merkle tree是dynamo中用來同步資料一致性的演算法,merkle tree是基於資料hash構建的乙個樹。它具有以下幾個特點 1 資料結構是乙個樹,可以是二叉樹,也可以是多叉樹 本blog以二叉樹來分析 2 merkle tree的葉子節點的value是資料集合的單元資料或者單元資料h...
區塊鏈MerkleTree演算法實現
merkletree被廣泛的應用在位元幣技術中,merkle tree 是一種資料結構,用於驗證在計算機之間和之間儲存,處理和傳輸的任何型別的資料。目前,merkle樹的主要用途是確保從對等網路中接收的資料塊未受損和未改變,和檢查其他對等網路沒有撒謊傳送假資料塊。位元幣中每個塊中都包含了所有交易的集...