1. 程式人生 > >淺談密碼學(二)Merkle(默克爾)樹

淺談密碼學(二)Merkle(默克爾)樹

Merkle Tree多數是用來進行比對和驗證處理,一般意義上來講,它是雜湊大量聚集資料“塊”的一種方式,它依賴於將這些資料“塊”分裂成較小單位
的資料塊。每一個小單位資料塊僅包含幾個資料“塊”,然後取每個小單位資料塊再次進行雜湊,重複同樣的過程,直至剩餘的雜湊總數僅變為1,也就
是根雜湊。

Merkle Tree具有以下特點:
1. 它是一種樹,可以是二叉樹,也可以多叉樹,無論是幾叉樹,它都具有樹結構的所有特點;
2. Merkle樹的葉子節點上的value自主設定,Merkle Hash Tree會將資料的Hash值作為葉子節點的值;
3 非葉子節點的value是根據它下面所有的葉子節點值,然後按照一定的演算法計算而得出的。如Merkle Hash Tree的非葉子節點value的計算方法是將該節點的所有子節點進行組合,然後對組合結果進行hash計算所得出的hash value。

比特幣錢包服務用 Merkle Tree 的機制來作”百分百準備金證明“ 。證明主要過程是構建Merkle Tree,當構建完該樹,且根節點的餘額與公佈的儲蓄地址餘額相同,即可100%儲備。(如圖)
這裡寫圖片描述
這裡寫圖片描述
參考:
http://blog.bifubao.com/2014/03/16/proof-of-reserves/