コンテンツへスキップ
uencoder

Hash Tree

ハッシュツリー(Hash Tree、Merkle ツリー)はデータブロックのハッシュを二分木に編成する。葉はデータブロックのハッシュ、内部ノードは子ハッシュの連結のハッシュで、根が全体のダイジェストである。

目的

大規模データの完全性を効率的に検証する——任意の葉の検証に O(log n) 個の兄弟ハッシュだけでよく、ツリー全体を再計算しない。

メカニズム

葉 h_i=H(data_i)、内部ノード h=H(h_left || h_right)、根 h_root が全体のダイジェストである。葉 i の検証には、葉から根への経路上の各レベルの兄弟ハッシュ(認証パス)が必要である。

ユースケース

  • Git のコミットツリー
  • ブロックチェーンのトランザクション検証
  • P2P ファイル完全性(BitTorrent)

関連ツール

References