ビットコインは、インターネット上のpeer-to-peerネットワークアーキテクチャとして構成されています。
peer-to-peerまたはP2Pという用語は、ネットワークに参加しているコンピュータ(=ノード)がそれぞれ同等の立場を持ち、平等で特別なノードがなく、すべてのノードがネットワークサービスを提供する負荷を分担していることを意味します。
実はノードにはいくつか種類があります。
まず、ノードは以下の4つの機能が組み合わさってできています。
ルーティング:ネットワークに参加するためにすべてのノードが持っている機能で、トランザクションとブロックを検証して伝搬し、その他のピアを発見して接続を常に保っています。
ブロックチェーンデータベース:これまでの取引記録(ブロックチェーン)を全て持っています。
マイニング:新しいブロックを作り出す競争をしており、proof-of-workアルゴリズムアルゴリズムを解くための特別なハードウェアを稼働させています。
ウォレット:その名の通り、財布の機能を持っています。
これらの機能を全て持つノードのことをフルノードといいます。
いくつかの本で紹介されているBitcoin Coreもフルノードです。
他にも組み合わせによって様々なノードが存在します。
例えば、ブロックチェーンデータベースとルーティングを持っていて、ネットワークの末端で外部と接続するエッジルータとして機能しており、交換所や決済システムなどのサービスを構築できるノードなどもあります。
私たちに一番身近なノードは恐らくウォレットとルーティングを持っているSPV(軽量)ノードになると思います。
これはスマートフォンなどで動作することができるように、ブロックヘッダのみをダウンロードしており、トランザクションは必要に応じてダウンロードするようになっています。
ルーティングはメインのネットワークに参加するための機能ですが、特殊なプロトコルすなわち拡張されたネットワークで動作するノードの場合は、ルーティングの代わりに、そのネットワークに参加するための機能を持っています。
ノードの種類は大体以上のようになっており、モバイルウォレットとかはSPVノードになっています。
また、少し気になったかもしれませんが、今の一般的な取引所の場合、取引所の大元は暗号通貨のメインのネットワークとつながっていますが、私たちが暗号通貨を購入しても、それ単体ではブロックチェーンには書き込まれず、書き込まれることがあっても取引所全体として書き込まれます。
要するに、取引所が持っている暗号通貨を何人かの人で分け合ってて、取引が行われたときは、取引所のデータを書き換えている感じです。
だから、取引所の暗号通貨が奪われると、そこに預けていた人たちのお金が無くなるということになります。
ブロックチェーンは画期的な発明かもしれませんが、個人個人の理解が非常に重要にもなっています。