マークルツリー (Merkle Tree)
要約: マークルツリーとは、保存または送信されたデータの完全性を検証するために、コンピューターサイエンスや暗号技術で使われるデータ構造です。
マークルツリーとは、保存または送信されたデータの完全性を検証するために、コンピューターサイエンスや暗号技術で使われるデータ構造です。多数のデータのハッシュを2つずつ組み合わせていき、マークルルートと呼ばれる1つのハッシュにまとめます。
重要な理由
ビットコインなどのブロックチェーンは、すべてのトランザクションのマークルルートを各ブロックヘッダーに格納しています。各ハッシュはその下にあるデータに依存しているため、トランザクションを1つ変更しただけでもルートが変わり、改ざんを簡単に検出できます。また、マークルツリーを使えば、ライトウォレットはブロック全体をダウンロードしなくても、数個のハッシュからなる短い証明で、トランザクションがブロックに含まれていることを確認できます。一部の取引所は、ユーザーが自分の残高が含まれていることを確認できるよう、プルーフ・オブ・リザーブ(準備金証明)のレポートにマークルツリーを使っています。
具体例
A、B、C、Dという4つのトランザクションがあるとします。それぞれがハッシュ化されます。AとBのハッシュを結合して再びハッシュ化し、CとDのハッシュも同様に処理します。最後に、その2つの結果をまとめてハッシュ化し、ルートを作ります。Cが含まれていることを証明するには、Dのハッシュ、AとBを結合したハッシュ、そしてルートがあれば十分です。