用語集 / マイニングとコンセンサス
ブロック高
別名はブロックの高さです。
- ブロック高とは?
- ブロック高とは、あるブロックより前にチェーン上にあるブロックの数であり、ジェネシスブロックの高さは0、その次にマイニングされたブロックの高さは1となります。
BIP-34で規定されています。
高さは、ビットコインが「いつ」を表すための独自の方法です。ブロック1つにつき正確に1ずつ増える整数であり、誰かの時計にも依存せず、スケジュールを必要とするコンセンサスルールは日付ではなくこの高さを基準に書かれています。半減期のカウントダウン、確認回数、有効化の告知は、いずれも同じカウンターを読んでいます。
仕組み
ブロック高は名前ではなく、シーケンス内の位置です。この違いは、聞こえる以上に重要です。
マイナーがほぼ同時にブロックを解いた場合、2つのブロックが一時的に同じ高さを主張することがあります。また、再編成(リオーガニゼーション)の後には、ある高さが1時間前とは別のブロックを指すことがあります。恒久的な識別子はブロックハッシュです。高さはチェーン上でどれだけ進んでいるかを示すものにすぎず、どのチェーンを指しているかを明示して初めて曖昧さがなくなります。実際には、累積作業量が最も多いチェーンがそのチェーンです。
確認回数は算術から直接導かれます。チェーンの先端が900,005にあるとき、高さ900,000のブロックに含まれるトランザクションの確認回数は6です。カウントにはそのトランザクションが含まれるブロック自身が含まれるからです。先端の高さからブロック高を引き、1を足すというこの1つの式が、これまで目にしてきた「6回中5回の確認」という進捗バーすべての背後にあります。
コンセンサスは、スケジュールに関わるあらゆることについて、タイムスタンプよりも高さを優先します。タイムスタンプはマイナーが供給するもので、厳密には監視されておらず、一方で高さは作業を行わなければ捏造できないからです。locktimeは、この原則を裏づける例外です。500,000,000未満のlocktimeはブロック高として解釈され、その数値以上のものはUnixタイムスタンプとして読まれます。そのため、トランザクションを特定の高さで有効になるよう指定できるのです。
高さは常にブロックの内側にあったわけではありません。BIP34により、高さをコインベーストランザクションに書き込むことが必須となり、そのルールは2013年3月のブロック227,835で拘束力を持つようになりました。理由は具体的でした。2010年11月に、先行するものと完全に同一の内容を複製した2つのコインベーストランザクションが、高さ91,842と91,880で作成されました。その内容が異なることを強制するものが何もなかったからです。高さをコミットすることで、すべてのコインベーストランザクションが一意になることが保証されます。
ビットコインを購入する際に重要な理由
ブロック高は、取引所やウォレットが伝えていることを、誰にも尋ねずに自分で確認できるようにする数値です。
出金すると、トランザクションIDが発行されます。ブロックエクスプローラーは、そのトランザクションを含むブロックの高さと、現在の先端の高さを表示します。その差に1を足したものが確認回数です。サポート担当者が「1時間前に送金した」と言っているのに、エクスプローラーにそれを含むブロックが表示されない場合、口座ページに何が書かれていようと、ビットコインは動いていません。
高さを知ることで、取引所のポリシーを正確に読み解くこともできます。プラットフォームは設定された確認回数の後に入金を計上しますが、これは分ではなく高さに関する記述です。ブロックはスケジュール通りではなく平均して到着するため、同じ3回確認のポリシーでも、ある日は20分、別の日は1時間かかることがあり、どちらも不具合ではありません。
次にマーケティングがあります。半減期のカウントダウンはすべて予測です。イベントは高さによって定義されており、それに付される日付は想定されるブロック時間に基づく推測です。「半減期が来る」という特定の日付を理由に製品を勧める人は、予測を売っています。支払いが「高さ〇〇で確認された」と示すスクリーンショットも同様です。高さやトランザクションIDは画像の中では簡単に偽造できますが、自分で確認するチェーン上では偽造できません。これが、当サイトのセキュリティガイドで繰り返し述べている習慣です。
ルールを変えた高さ
いくつかの高さは、その前後でビットコインの挙動が変わるため、知っておく価値があります。
高さ0はジェネシスブロックであり、2009年1月3日にマイニングされ、そのコインは決して使えません。高さ210,000は、2012年11月28日に到達した最初の半減期です。高さ227,835は、2013年3月にBIP34を拘束力のあるものにしました。高さ481,824は、2017年8月24日にあたり、SegWitが有効になってブロックがウィットネスデータを運び始めた地点です。高さ709,632は、2021年11月14日にTaprootを有効化しました。高さ840,000は、2024年4月20日で、4回目の半減期でした。高さ1,050,000は5回目の半減期となり、実際にブロックがどれだけ速く到着するかによって、2028年のどこかと予測されています。
ブロック高vs確認回数
ブロック高は絶対的な位置であり、確認回数は相対的な距離です。ブロックの高さはチェーン上にある限り変わりませんが、確認回数はおよそ10分ごとに1ずつ増えます。ウォレットが確認回数を表示するのは、あなたが気にするのが深さだからであり、取引所がしきい値を確認回数で示すのも同じ理由です。「自分のトランザクションは高さ900,000にある」と言っても、まだ安全かどうかは何も分かりません。
ブロック高vsコインベースブロック高
ブロック高はブロックの属性であり、コインベースブロック高はその数値をブロックの最初のトランザクションの内部に書き込んだコピーです。両者は常に一致すべきであり、一致しない場合、ノードはそのブロックを拒否します。この区別が重要なのは、コインベースのコピーがマイナーが含めることを選ぶデータであり、チェーンが既に示している高さと照合される点にあり、コインベーストランザクションの重複を完全に終わらせた仕組みだからです。