ブロックチェーン/レベル II · 仕組み/2.3 ブロックとチェーン/レッスン 3
ハッシュの連鎖
壊れないつながりと、歴史を書き換えるコスト
用意するもの詳細なヘッダー情報を表示できるブロックエクスプローラーSHA-256ハッシュを検証するための電卓またはスクリプトハッシュ値を記録するためのノート
問い
- デジタル記録の連なりは、物理的な台帳よりも、どのようにして効果的に改ざんに耐えるのでしょうか?
- なぜ新しいブロックを1つ追加するだけで、それ以前のすべてのトランザクションの改変がより困難になるのでしょうか?
- 過去のエントリーを変更しようとする攻撃者には、どれほどの計算コストがかかるのでしょうか?
探究
- 1991年、スチュアート・ハーバーとW・スコット・ストルネッタは「How to Time-Stamp a Digital Document」を発表しました。彼らは、新しい記録がそれぞれ直前の記録の暗号学的ハッシュを含むようにして、文書を連鎖的に結びつける方法を提案しました。この構造により改ざん不可能な履歴が生まれます。過去のどの文書を改変してもそのハッシュが変わり、それ以降のすべての記録とのリンクが断たれるからです。サトシ・ナカモトはビットコインのホワイトペーパーで、ブロックチェーンの構造的完全性の基礎となる着想源として、この1991年の論文を引用しました。
- ビットコインの各ブロックヘッダーには、「previous block hash」と呼ばれる32バイトのフィールドがあります。この値は、直前のブロックヘッダー全体のダブルSHA-256ハッシュです。このハッシュはハッシュ計算の対象となるデータの一部であるため、マイナーはマイニングを始める前に新しいヘッダーに書き込みます。その結果、すべてのブロックが暗号学的に親ブロックにコミットするチェーンが形成されます。このリンクがなければブロックは互いに独立した島にすぎませんが、このリンクがあることで、2009年1月3日のジェネシスブロックを起点とする連続したシーケンスになります。
- ヘッダー内のマークルルートは、そのブロック内のすべてのトランザクションをハッシュに結びつけます。攻撃者が過去のブロックのトランザクションを1つでも改変すると、マークルルートが変わります。その結果、ブロック自体のハッシュも変わります。次のブロックはこの改変されたブロックの古いハッシュを「previous block hash」として保持しているため、リンクが断たれます。その時点以降、チェーンは無効になります。修復するには、攻撃者はそのブロックのプルーフ・オブ・ワークをやり直さなければなりません。
- 1つのブロックを再マイニングするだけでは不十分です。後続のすべてのブロックにも、もはや一致しないハッシュが含まれているからです。有効なチェーンを作るには、攻撃者は改変したブロック以降のすべてのブロックについてプルーフ・オブ・ワークをやり直さなければなりません。これには膨大な計算能力が必要です。誠実なネットワークが新しいブロックを追加し続ける中、攻撃者はそれと競争することになります。攻撃者のハッシュレートがネットワークの残り全体の合計を上回れば、チェーンを追い越して履歴を置き換えることができます。
- ノードはブロック数で最も長いチェーンに従うのではなく、「チェーンワーク(chainwork)」と呼ばれる累積プルーフ・オブ・ワークが最も多いチェーンに従います。この指標には、後のブロックほどマイニングを難しくする難易度調整が反映されています。ブロック数が多くても総作業量が少ないブランチは、たとえそのブロックが有効であっても採用されません。トランザクションがチェーンの深くに埋もれているほど、攻撃者がそれを動かすために再現しなければならない作業量は大きくなります。承認が1つ増えるごとに、履歴を覆すのに必要な計算量が積み重なっていきます。
- 任意のブロックエクスプローラーを開き、最近のブロックを1つ選んでください。その「previous hash」フィールドを確認します。そのハッシュをクリックして親ブロックに移動し、親ブロック自身のヘッダーハッシュが子ブロックに格納された値と一致することを確かめてください。この手順を3回繰り返し、リンクをたどってチェーンをさかのぼります。この手作業による検証で、各ブロックが暗号学的に前のブロックにコミットしており、ジェネシスブロックまでさかのぼる、作業によって検証された途切れのない記録の連なりを形成していることが確認できます。
重要な事実
- スチュアート・ハーバーとW・スコット・ストルネッタによる1991年のリンク型タイムスタンプ方式は、ビットコインのホワイトペーパーで引用されています。
- 各ブロックヘッダーには前のブロックのヘッダーの32バイトのハッシュが含まれており、それによってブロックが順番に結びつけられています。
- 過去のトランザクションを変更すると、そのブロックのマークルルートとハッシュが変わり、それ以降のすべてのリンクが断たれます。
- ノードは、単にブロック数が最も多いチェーンではなく、累積プルーフ・オブ・ワーク(「チェーンワーク」)が最も多いチェーンに従います。
- 誠実なネットワークを追い越すには、攻撃者は改変したブロック以降のすべてのブロックについてプルーフ・オブ・ワークをやり直さなければなりません。
- 2009年1月3日にマイニングされたジェネシスブロックは、チェーンの変更不可能な基点として機能します。
演習 九・六・三・一
9集めるデジタル台帳や記録管理システムを9種類挙げてください。それぞれのシステムが過去のエントリーの改ざんをどのように防いでいるかも記録してください。
6まとめる不変性を実現する仕組みに基づいて、9つを6つのカテゴリーに分類してください:暗号学的リンク、コンセンサス投票、中央機関による監査、物理的冗長性、法的契約、その他。
3絞り込む6つのグループを、信頼できる第三者なしでは大半のシステムが改ざん検知可能な履歴を提供できない3つの根本的な理由に絞り込んでください。
1結晶化するプルーフ・オブ・ワークが、ハッシュの連結リストを経済的に保護された所有権のチェーンへとどのように変えるのかを説明する文を1つ書いてください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。