ノードは、ビットコインのネットワークに参加しているコンピュータのことで、取引の検証やブロックの作成などを行っているんだよ。
第5章
みんなの力を合わせるネットワーク
2. ノードが取引を集めてブロックにまとめる
それぞれのノードは、受け取った取引を集めて一つのブロックにまとめるんだ。
ブロックって?
ブロックは、複数の取引データをまとめたもので、これが鎖のようにつながって「ブロックチェーン」を形成するんだ。
3. プルーフ・オブ・ワークの計算を行う
次に、各ノードはそのブロックに対して「プルーフ・オブ・ワーク」という難しい計算を行うんだ。
4. プルーフ・オブ・ワークを見つけたノードがブロックを他のノードに送信
あるノードがこのプルーフ・オブ・ワークを見つけたら、そのブロックを他の全てのノードに送信するんだ。
5. 受け取ったノードがブロックを検証・受け入れる
受け取ったノードは、そのブロック内の取引が全て有効で、二重支払いがないか確認するんだ。問題がなければ、そのブロックを受け入れて、自分のブロックチェーンに追加するんだよ。
6. ブロックをチェーンに追加し、次のブロック作成を続ける
そして、その受け入れたブロックを次のブロックを作るための「前のブロック」として使って、新しいブロックの作成を続けていくんだ。こうして、ブロックチェーンがどんどん伸びていくんだよ。
7. 一番長いチェーンが正しいものとみなされる
ノードたちは常に「一番長いチェーンが正しいもの」とみなして、そのチェーンを伸ばしていくんだ。これにより、全てのノードが同じ取引履歴を共有できるんだ。
8. ブロックの競合と解決
もし、2つのノードが同時に異なるブロックを見つけて送信した場合、一部のノードは先に受け取ったブロックを基に作業を続けるんだ。でも、他のノードはもう一方のブロックで作業をすることもある。
こうして一時的にブロックチェーンが分岐することがあるけど、次にどちらかのチェーンが長くなった時点で、ネットワーク全体がその長いチェーンを「正しい」とみなすんだ。短い方のチェーンは破棄され、そのブロックに含まれていた取引は再び未承認の状態になるんだよ。
9. 取引やブロックの伝達に失敗しても問題ない
新しい取引やブロックが全てのノードにすぐに届かなくても大丈夫なんだ。多くのノードに届けば、その取引はブロックに組み込まれるし、ネットワーク全体で共有されるよ。
もし、ブロックの送信が途中で失敗しても、受け取らなかったノードは次に新しいブロックを受け取ったときに、見逃したブロックを要求して補完できるんだ。こうして、ネットワークは常に最新の情報を共有し、一貫性を保つことができるんだ。