【まーくるつりー】

マークルツリー とは?

公開:
💡 全ページを読まなくても改ざんがバレる、データの家系図
📌 このページのポイント
マークルツリー ― ハッシュの木構造 ルートハッシュ 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)が特許を取得した技術で、発明者の名前がそのまま付いているよ。ハッシュツリーとも呼ばれるんだ
← 用語集にもどる