【まーくるつりー】

マークルツリー とは?

💡 全ページを読まなくても改ざんがバレる、データの家系図
📌 このページのポイント
マークルツリー ― ハッシュの木構造 ルートハッシュ ab3f...c8d1 Hash(H1+H2) 7e2a...f190 Hash(H3+H4) d41c...a523 H1: 5a1b... H2: c3d4... H3: 8f2e... H4: b7a9... データA データB データC データD 末端データが1つでも変わるとルートハッシュが変化する
マークルツリーのイメージ
ひよこ ひよこ

マークルツリーって普通のツリーと何が違うの?

ペンギン先生 ペンギン先生

各ノードが「子ノードのハッシュ値」を持っているのが特徴だよ。末端にデータがあって、それをペアにしてハッシュ化、さらにそのハッシュ同士をハッシュ化して、最終的に1つのルートハッシュにまとめるんだ

ひよこ ひよこ

それの何がうれしいの?

ペンギン先生 ペンギン先生

たとえば1万件のデータがあったとして、1件でも改ざんされるとルートハッシュが変わるんだ。しかも、どの枝が変わったかツリーをたどれば素早く特定できるよ

ひよこ ひよこ

ブロックチェーンで使われてるって聞いたけど?

ペンギン先生 ペンギン先生

そうだよ。ビットコインのブロックにはトランザクションのマークルルートが入っていて、全トランザクションをダウンロードしなくても特定の取引が含まれているか検証できるんだ。これをSPV(簡易支払い検証)と呼ぶよ

ひよこ ひよこ

ブロックチェーン以外でも使われてるの?

ペンギン先生 ペンギン先生

Gitのコミットハッシュも似た仕組みだし、AWSDynamoDBApache Cassandraではデータの同期確認に使われているよ。ファイル転送プロトコルでも破損検知に活躍しているんだ

ひよこ ひよこ

ハッシュを何回も計算するのって遅くならないの?

ペンギン先生 ペンギン先生

ハッシュの計算自体はとても高速だから問題ないよ。むしろ検証が効率的になるのがメリットで、N件のデータに対してlog(N)回の比較で検証できるんだ。100万件でも20回程度のハッシュ比較で済むから圧倒的に速いんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「マークルツリー」って出てきたら「ハッシュを積み上げてデータの改ざんを効率的に検知するツリー構造」と思えればだいたいOK!
📖 おまけ:英語の意味
「Merkle Tree」 = マークルの木
💬 1979年にラルフ・マークル(Ralph Merkle)が特許を取得した技術で、発明者の名前がそのまま付いているよ。ハッシュツリーとも呼ばれるんだ
← 用語集にもどる