ブロックヘッダーは、ブロックの基本情報が詰まった小さなデータで、前のブロックのハッシュ値やタイムスタンプなどが含まれているんだ。
第8章
簡単にできる!支払いの確認
1. ネットワーク全体を使わなくても支払いの確認が可能
ビットコインでは、取引が正しく行われたかを確認するために、ネットワーク全体のデータを使わなくても大丈夫なんだ。
2. ブロックヘッダーのコピーを取得する
ユーザーがやるべきことは、一番長い「プルーフ・オブ・ワーク」のチェーンのブロックヘッダーを持っておくことなんだ。
このブロックヘッダーは、ネットワーク上のノードに問い合わせれば手に入るよ。
3. チェーンの長さを確認し、マークルツリーの枝を取得
ユーザーは、このチェーンが一番長いかどうかを確認して、自分の取引が含まれていることを証明するために、「マークルツリー」の枝を取得するんだ。
4. チェーンに繋がっていることで取引が受け入れられたとわかる
ユーザー自身は、全ての取引データを持っていなくても、自分の取引がブロックチェーンに組み込まれていることを確認できるんだ。これで、その取引がネットワークにちゃんと受け入れられたとわかるんだよ。
5. 新しいブロックの追加で取引がさらに確認される
さらに、その後に追加されるブロックによって、取引の確認がどんどん強化されていくんだ。ブロックが追加されるたびに、取引の信頼性が高まるんだよ。
6. 正直なノードが多数派である限り信頼できるが、攻撃者がいると弱くなる
このような簡略化された方法(SPV:Simplified Payment Verification)は、正直なノードがネットワークの多数を占めている限り信頼できるんだ。でも、もし攻撃者がネットワークを支配してしまうと、偽の情報を送り込まれる可能性があるんだ。
7. ノードが不正なブロックを検出すると警告を送る仕組み
フルノード(全ての取引データを持っているノード)は、取引を自分で確認できるから、不正なブロックを検出できるんだ。もし不正が見つかったら、ネットワーク上に警告を送る仕組みがあるんだよ。
8. ユーザーのソフトがブロックと取引をダウンロードして確認
ユーザーのソフトがその警告を受け取ると、問題のあるブロックや取引をダウンロードして、詳しく確認することができるんだ。これで、不正な取引から自分を守ることができるよ。
9. ビジネスでは自分でノードを運営する方が安心
もし、支払いを頻繁に受け取るようなビジネスをしているなら、より強力なセキュリティと素早い取引確認が必要になるよね。その場合は、自分でフルノードを運営する方が安心かもしれないね。
フルノードを運営するメリット
- 高いセキュリティ:全ての取引を自分で検証できるから、不正な取引を確実に排除できるよ。
- 素早い取引確認:他のノードに頼らずに、自分で取引の確認ができるから、処理が速くなるんだ。
- ネットワークの貢献:自分のノードがネットワークの一部として機能し、ビットコインの安全性と分散性を高めることに貢献できるんだよ。