前のセクションでは、ビットコインのブロックは決まった時間どおりに生成されるわけではないことを見ました。
しかし、ここで興味深い疑問が浮かびます。新しいブロックが見つかったとき、それを知らせる中央サーバーがないのに、ビットコインに参加している他のコンピューターはどうやってそのことを知るのでしょうか?
これを理解するには、ビットコインのアーキテクチャにおける基本的な特徴を知る必要があります。ビットコインはP2Pネットワークを通じて機能します。
P2PはPeer-to-Peerの略で、英語の表現を訳すと「対等な者同士のネットワーク」という意味です。
でも、実際には何なのでしょうか?
まず、従来型のシステムについて考えてみましょう。特定のデジタルサービスを利用するとき、私たちのコンピューターは企業が管理するサーバーと通信します。これらのサーバーは特定の機能を一元管理し、サービスの提供に欠かせない仲介役として機能することがあります。
ビットコインは、これとは異なる通信モデルを採用しています。すべての情報を配信する単一の中央サーバーに依存するのではなく、ネットワークに参加するコンピューター同士が接続を確立し、ビットコインのプロトコルを使ってメッセージを交換できます。
そして、どんな情報を交換するのでしょうか?
主に、トランザクションやブロックに関する情報です。
たとえば、ある人がビットコインでトランザクションを行うと、その取引はネットワークに送られ、さまざまなコンピューターに広まり始めます。
新しいブロックが見つかったときも同様です。そのブロックが存在するという情報が広まり、ほかの参加者もそれを知ることができます。
ただし、重要な点があります。すべてのコンピューターが互いに直接接続されているわけではありません。
ネットワークは複数の接続を通じて機能し、情報はさまざまな経路を通って配信されます。
つまり、あるコンピューターは、直接接続したことのない別のコンピューターから送られた情報を受け取ることがあります。
また、すべての参加者に情報が瞬時に同時配信されるわけでもありません。
ネットワーク上の距離、利用可能な接続、混雑状況、通信にかかる時間などの要因により、メッセージを受け取るタイミングはコンピューターによって異なります。
そのため、ごく短い間、最新のトランザクションやブロックについて、コンピューターごとに異なる情報を持っていることがあります。
なぜこのアーキテクチャが重要なのでしょうか?
ビットコインの情報をすべて配信する役割を担う、単一の中央サーバーが不要になるからです。
あるコンピューターが停止したり、接続が切断されたりしても、ほかの接続を通じてメッセージの流通を続けることができます。
これにより、ビットコインは分散型ネットワークとして機能できます。ただし、中断や接続の問題が起きないという意味ではありません。
そして、ここで本質的な違いを理解する必要があります。
情報が何千台ものコンピューターに行き渡るからといって、すべてのコンピューターがその情報を正しいものとして受け入れる必要があるわけではありません。
情報を伝達することと、その情報がシステムのルールに従っているかを判断することは、まったく別のことです。
そこで、重要な疑問が浮かびます。
ビットコインがすべての取引を管理する中央機関に依存していないとすれば、受け取った情報が有効であることを独立して検証するのは、どの仕組みなのでしょうか?
これに答えるには、ビットコインの仕組みを支える最も重要な要素の一つ、フルノードについて知る必要があります……
見てみましょう……
