マークルルートはどう作られる?
まず、ブロック内のすべての取引IDを並べます。各IDは、それ自体がSHA-256を二重に適用したハッシュです。コインベース取引を先頭にして順番に並べ、隣り合うものをペアにしてハッシュ化します。ハッシュの数は半分になります。1つになるまで繰り返すと、マークルルートが完成します。
段に並ぶハッシュの数が奇数なら、最後のハッシュは自分自身とペアになります。取引内容をたった1 satoshi分変えただけでも、その取引から最上段までのハッシュはすべて変わり、マークルルートも変わります。上のデモで試してみてください。
なぜ大きなハッシュ1つではなく、ツリーにするの?
証明。取引がブロックに含まれていることを示すには、ブロック全体ではなく、その取引から枝分かれする経路上のハッシュだけで十分です。取引が約4,000件あるブロックでも、必要なのはそのうち12個だけで、データ量は数百バイトです。サトシのホワイトペーパーでは、この方法で支払いを検証し、ブロックヘッダーだけを保存する軽量ウォレットが説明されています。
マイニングでも重要です。マイナーがコインベース取引の追加ノンスを変えると、マークルルートも変わり、ブロックヘッダーには新たに試すノンスの組み合わせが用意されます。
出典
- Bitcoin: ピアツーピアの電子キャッシュシステム · Satoshi Nakamoto, 2008
- ブロックチェーンの参考情報:ヘッダー、マークルツリー、ターゲット · Bitcoin開発者ドキュメント
- マークルツリー · Bitcoin Wiki
このページのライブ数値はCloudMineCrypto APIと公開されているチェーンデータをもとにしており、定期的に更新されます。各数値の表示箇所にはその旨を記載しています。教育目的のみであり、金融アドバイスではありません。