本文へスキップ
buybitcoinsmart

用語集 / マイニングとコンセンサス

ブロックヘッダー

別名はヘッダーです。

ブロックヘッダーとは?
ブロックヘッダーとは、ブロックの80バイトの要約であり、バージョン、直前のヘッダーハッシュ、マークルルート、タイムスタンプ、nBits、ナンスで構成され、マイナーが実際にハッシュ計算する部分です。

マイナーは支払いそのものをハッシュ化することはありません。ハッシュ化するのはこの固定長のレコードで、これがマークルルートを通じてトランザクション一覧を、直前のヘッダーハッシュを通じて過去のすべてのブロックを確定させます。1ブロックあたり80バイトは、2009年1月以降の完全なヘッダーチェーンがスマートフォンに余裕で収まるほど小さく、軽量な検証を可能にしているのはまさにこの事実です。

仕組み

ブロックヘッダーは固定の順序に並んだ6つのフィールドで構成され、そのバイト位置は決して変わりません。

バージョンはバイト0から3を占めます。直前のブロックヘッダーハッシュはバイト4から35を占めます。マークルルートはバイト36から67を占めます。Unixエポックからの秒数で表されるタイムスタンプは、バイト68から71にあります。エンコードされた難易度ターゲットであるnBitsは、バイト72から75にあります。nonceはバイト76から79を満たします。すべてのフィールドはリトルエンディアンで格納されているため、ブロックエクスプローラーで目にする16進数は、生のブロックダンプの16進数と比べてバイトが逆順に見えます。

ブロックハッシュはこれらのフィールドの1つではありません。80バイトに対してSHA-256を2回実行して計算され、ノードはそれを信頼するのではなく導出します。まさにそのため、ブロックは自身の身元について嘘をつくことができません。プルーフ・オブ・ワークは同じ演算に比較を加えたもので、得られた数値はnBitsがエンコードするターゲット以下でなければなりません。

このうち2つのフィールドには、人々を驚かせるルールがあります。タイムスタンプは正確である必要はありません。直前11ブロックのタイムスタンプの中央値を上回り、受信ノード自身の時計から2時間以内に収まっていればよいだけなので、時刻が多少前後したヘッダーも普通に有効です。バージョンフィールドももはや単純なカウンターではありません。BIP9によるソフトフォークのシグナリングとBIP320によるバージョンロールもこのビットを借用するため、現代のヘッダーにおけるバージョン番号はリリース番号ではなくビットフィールドです。

目にする場所

ブロックヘッダーは、新しいノードが最初にダウンロードするものであり、多くのウォレットが保持する唯一のものでもあります。

Bitcoin Coreは2015年2月にリリースされたバージョン0.10以降、ヘッダーを先に同期する方式を採用しています。ノードはヘッダーチェーンを取得して検証し、実際のプルーフ・オブ・ワークを伴っていることを確認したうえで初めてブロック本体を要求します。すでに何を探しているかを把握しているため、これは複数のピアから並行して行えます。軽量クライアントはその最初の段階で止まります。SPVウォレットやNeutrinoウォレットはヘッダーを保持し、トランザクションのマークルブランチがそのいずれかにつながることを確認します。900,000個のヘッダーのチェーンは72MBになり、モバイルデータ通信でもこれが機能する理由がそこにあります。

ジェネシスヘッダーは、調べるべき代表的な例です。バージョンは1、直前のヘッダーハッシュはすべてゼロ、マークルルートは4a5e1e4bなどとなり、タイムスタンプは1231006505で、これは2009年1月3日にあたり、nBitsの値は0x1d00ffff、nonceは2083236893です。この80バイトをご自身でハッシュ化すれば、10個のゼロで始まるおなじみのブロックハッシュが得られます。他のヘッダーを見たい場合は、Bitcoin CoreのRPC getblockheaderがまさにこれらのフィールドだけを返します。

混同しやすい用語

よくある質問

ブロックハッシュはブロックヘッダーに保存されていますか?

いいえ。ブロックハッシュは80バイトのヘッダーをSHA-256で2回ハッシュ計算して算出されるため、すべてのノードが独立して導出します。ブロック内のどこにも自身のハッシュは記述されていません。

ブロックヘッダーのチェーン全体はどのくらいの大きさですか?

ブロック高900,000で約72MBです。各ヘッダーが正確に80バイトだからです。そのためスマートフォンのウォレットは、数百ギガバイトのトランザクションデータをダウンロードせずにチェーンの構造を検証できます。

次に読む

関連用語

マイニングとコンセンサスのその他の用語

このページを英語で読む