默克爾樹(又叫哈希樹)是一種二叉樹,由一個(gè)根節(jié)點(diǎn)、一組中間節(jié)點(diǎn)和一組葉節(jié)點(diǎn)組成。 最下面的葉節(jié)點(diǎn)包含存儲(chǔ)數(shù)據(jù)或其哈希值倾贰,每個(gè)中間節(jié)點(diǎn)是它的兩個(gè)子節(jié)點(diǎn)內(nèi)容的哈希值,根節(jié)點(diǎn)也是由它的兩個(gè)子節(jié)點(diǎn)內(nèi)容的哈希值組成拦惋。
默克爾樹的特點(diǎn)是匆浙,底層數(shù)據(jù)的任何變動(dòng),都會(huì)傳遞到其父親節(jié)點(diǎn)厕妖,一直到樹根首尼。
默克爾樹的典型應(yīng)用場景包括:
快速比較大量數(shù)據(jù):當(dāng)兩個(gè)默克爾樹根相同時(shí),則意味著所代表的數(shù)據(jù)必然相同言秸。 快速定位修改:例如上例中软能,如果 D1 中數(shù)據(jù)被修改,會(huì)影響到 N1井仰,N4 和 Root埋嵌。因 此,沿著 Root --> N4 --> N1俱恶,可以快速定位到發(fā)生改變的 D1; 零知識證明:例如如何證明某個(gè)數(shù)據(jù)(D0……D3)中包括給定內(nèi)容 D0范舀,很簡單合是,構(gòu)造 一個(gè)默克爾樹,公布 N0锭环,N1聪全,N4,Root辅辩,D0 擁有者可以很容易檢測 D0 存在难礼,但不知 道其它內(nèi)容娃圆。
兩個(gè)相鄰的兩個(gè)子節(jié)點(diǎn),運(yùn)算后得出父節(jié)點(diǎn)
數(shù)據(jù)丟失后蛾茉,可以找相應(yīng)的節(jié)點(diǎn)下載讼呢,不需要全部下載。