目次

    全ての目次を見る
  1. ビットコイン(bitcoin)のノードには種類がある
  2. ビットコイン(bitcoin)のノードとは
  3. ビットコイン(bitcoin)の4種類のノードとは
  4. ビットコインのノードが行う取引検証とは
  5. どのノードとして参加するのがおすすめか
  6. ビットコインのノードの種類まとめ
  7. 参考情報まとめ
Large woman in glasses reading book comes up with idea 506245774 1257x838

最近話題のビットコインが気になって調べていると「ノード」という言葉を見かけることがありますが、辞書で調べてみるとノード(node)とは「つなぎ目」という意味があります。

この耳慣れない言葉でもある、ノードとはビットコインでは何を意味しているのでしょうか。

この記事にたどり着いた方は

「ビットコインのノードとは」
「ビットコインのノードの種類と、それぞれの特徴が知りたい」

など、さまざまな疑問をお持ちの方がいらっしゃるかと尾見ます。

そこで、この記事では「ビットコインのノードの概要」と「ビットコインのノードの種類」を紹介し、「種類ごとのノードの詳細」を解説します。

ビットコインのノードとは、ビットコインのネットワークに接続されている、不特定多数のコンピュータ端末のことです。

ノード(node)とは「つなぎ目」という意味があり、ビットコインでは、ビットコインネットワーク(オンライン)とオフラインの人間をつなぐ、携帯やPCなどの端末のことを指します。

そして、ノードには以下4つの機能・データを搭載しています。

  1. ルーティング
    →データの送信先までの経路を割り出す機能
  2. ブロックチェーンデータベース
    →ビットコインのトランザクション(取引データ)を管理する取引台帳であるブロックチェーンのデータのこと(以降ブロックチェ―ン)
  3. マイニング
    →ビットコインのトランザクションをブロックにまとめて、ブロックチェーンに追加するための機能
  4. ウォレット
    →ビットコインの送受信などのやりとりをするのに必要な機能

ノードは、これらの機能・データをすべて搭載している訳ではありません。

ルーティングはほとんどのノードが搭載していますが、マイニングやウォレットの機能は搭載していないノードが存在します。

また、ブロックチェーンデータといっても、データのダウンロード量によってノードを種類分けすることが可能です。

次の段落では、ダウンロードするブロックチェーンデータベース量と、機能面で種類別しています。

ビットコインのノードを下記のように種類分けできます。

データのダウンロード量による分類

  1. フルノード
  2. 軽量(SPV)ノード

機能面の分類

  1. マイナー
  2. ウォレット

では種類ごとの詳細を理解していきましょう。

フルノードとは、過去から現在まで、すべてのブロックチェーンをダウンロードし、取引の検証(後述)を行うノードのことで、剪定(せんてい)ノード(Pruning Node)とアーカイブノードという種類があります。

剪定ノードとは、過去から現在まで、すべてのブロックチェーンをダウンロード後、過去の不要なデータは削除します。

剪定ノードは、最初にすべてのデータをダウンロードするので、一応フルノードに種類分けされます。

一方、アーカイブノードとは、過去から現在までの、すべてのブロックチェーンデータを管理しています。

ブロックチェーンには、トランザクションも管理されているため、例えば昔トランザクション内容を確認する際、自分のブロックチェーンを参照すれば、単体で確認することが可能です。

ちなみに、フルノードとして、ビットコインネットワークに参加するには、すべてのブロックチェーンをダウンロードするのに、必要な容量(65GB以上)と、数十時間以上もの時間が必要です。

ビットコインのフルノードにはBitcoin Coreがあります。

軽量ノードとは、SPVノードともいわれており、ブロックチェーンの一部のデータ(取引データは含まない)をダウンロードするノードのことです。

SPVノードは、フルノードとは異なり、必要な情報のみダウンロードするので、ダウンロードに必要な容量は約1/1000程度で、時間もそれほどかかりません

フルノードと異なり、SPVノードがダウンロードするデータには、取引データが含まれていないので、「過去の取引データがどのブロックに格納されているのか』や、「過去の取引データの内容』をSPVノードのみで確認することができないです。

SPVノードが過去の取引データを確認したい場合、ビットコインネットワークで繋がっているフルノードなどの他のノードのブロックチェーンデータが必要になります。

ちなみに、SPVとは『Simplified Payment Verification』の略で、『簡単な取引検証』という意味があります。

次の段落で、「取引検証とはなにか」「フルノードとSPVノードの取引検証方法の違い」を明らかにしていきます。

取引検証とは、ノードが行う(行える)以下の作業のことです。

トランザクションが二重支払いかどうかの確認
トランザクションが格納されているブロックを探す

二重支払いとは、同じビットコイン(UTXO)を別々の決済や送金に使用することです。

UTXOとは、未使用のビットコイン(トランザクション)のことで、UTXOはブロックチェーンで確認することができます。

同じ500円や1000円札を別々の支払いに使用することはできませんが、ビットコインは電子データですので複数の人に送信することが可能です。

この二重支払いが起きては、システムに混乱が生じてしまいます。

ですからブロックチェーンで管理しているUTXOを確認して、実行されたトランザクションが二重支払いではないということを確認しなくてはなりません。

このトランザクションに二重支払いがないか確認する方法が、フルノードとSPVノードでは異なるのです。

フルノードの二重支払いの検証方法

取引データがビットコインネットワーク上から自分のもとへ流れてきたとき、フルノードではどのようにして二重支払いかどうか確認しているのか図解していきます。

フルノードは過去から現在まで、すべてのブロックチェーンと取引データをダウンロードしており、ブロックチェーンではUTXOを確認することができるのでしたね。

フルノードは自信が持つ、すべてのデータを参照して、『二重支払いがないかどうか』の確認を単体で行うのです。

二重支払いがないことが確認された取引データは、後述するマイニングという作業を通じてブロックに格納されます。

SPVノードの検証方法

ブロックチェーンの一部(取引データを含まない)のみダウンロードしているSPVノードではどのようにして二重支払いかどうか確認するのでしょうか。

ビットコインネットワークを通じてトランザクションが流れてきても、トランザクションデータを持っていないSPVノードでは、フルノードのように単体で取引データを検証することができません。

そこで、SPVノードでは下の図のようにしてトランザクションに二重支払いがないかどうか確認します。

なぜ、トランザクションを格納したブロックの後ろに6個以上のブロックが接続されたなら、トランザクションに二重支払いではないことが確認できるのか疑問に思う方もいるかもしれませんね。

理由は、ブロックに後ろに6個以上のブロックが格納されると、トランザクションを格納したブロックの改ざんや二重支払いができないとされているからです。

検証方法の詳細は、ビットコインのノードの話とは少々ずれてしまうので、ここでは解説しません。

気になる方は、「ビットコインの二重支払いとは」の記事で詳しく解説しているので、ご覧ください。

ここまでで、フルノードとSPVノードの概要を確認しましたが、フルノードとは、『すべてのブロックチェーンのデータをダウンロードするノード』で、SPVノードとは、『ブロックチェーンの一部のみダウンロードするノード』でしたね。

次の段落からは、ノードを機能面で種類分けした場合の『マイニングを主体とするノード』と『ウォレット機能を主体とするノード』について解説していきます。

それぞれ確認していきましょう。

マイニングを主体とするノードとは、フルノード型・SPV型のうち、マイニング機能をもち、マイニングを行うノードのことで、マイナーといいます。

マイニングとは、ビットコインを新規発行するための作業のことで、具体的にはビットコインのトランザクションを承認(ブロックチェーンに追加)するために、複雑な計算を解く作業のことです。

マイニングが行われなければ、ビットコインの送金や支払いなどの情報を記録したトランザクションが、ブロックチェーンに格納されないので、送金や決済ができないといった問題が生じてしまいます。

ですから、マイナーとはビットコインの仕組みを支える上では、欠かせない存在といえます。

マイニングについて気になる方は、「ビットコインを支えるマイニングとは」の記事をご覧ください。

ウォレットを主体とするノードとは、フルノード型・SPV型のうち、ウォレット機能を持つノードのことです。

主に、ビットコインを決済や投機目的に使用する利用者のための、利便性があるノードと考えられます。

ビットコインを管理するにはウォレットが必要なのですが、ウォレットはノードに該当します。

そもそも、ウォレットとは、ビットコインを使用するために必要な、ビットコインアドレス(銀行口座のようなもの)秘密鍵(口座の暗証番号)を管理するためのものです。

ウォレットとはどういうものか知りたいという方は「ビットコインのウォレットとは」の記事をご覧ください。

ビットコインネットワークにどのノードとして参加するか迷われている方は、以下の情報を参考までにご覧ください。

  • フルノード
    →ビットコインネットワークに貢献するためにトランザクション検証を行いたい方や仕組みを理解したい方

  • SPVノード
    →取引の検証は行わなくてよく、データ容量を抑えたてビットコインネットワーク参加したい方

  • マイナー
    →ビットコインネットワークに参加してマイニング作業を行いたい方

  • ウォレット
    →普段の支払いや、投資ができればよいという方

ビットコインには、『フルノード』と『SPVノード』、『マイナー』と『ウォレット』の4種類のノードがありそれぞれの特徴をまとめると以下の通りです。

  • フルノード
    →すべてのブロックチェーンを管理、二重支払いの検証が単体で行える
  • 軽量(SPV)ノード
    →一部のブロックチェーンを管理し、二重支払いの検証方法がフルノードとは違う
  • マイナー
    →マイニング作業を行うノード
  • ウォレット
    →ビットコインを使用する際に必要な情報を管理する機能を持つ

フルノードとして参加する場合、すべてのブロックチェーンをダウンロードするので、時間と容量が必要です。

一方、SPVノードとして参加する場合、一部のブロックチェーンのデータをダウンロードするだけなので、時間や容量はそれほど必要ありません

フルノード、SPVノードのどちらでも、マイニングやウォレット機能を備えているノードは存在するので、ビットコインネットワークに参加するうえで、自分の目的に合ったノードで参加するのがおすすめです。

フルノードとして参加する場合、すべてのブロックチェーンをダウンロードするので、時間と容量が必要です。

一方、SPVノードでは、一部のブロックチェーンのデータをダウンロードするだけなので、時間や容量はそれほど必要ありません

フルノード、SPVノードのどちらでも、マイニングやウォレット機能を備えているノードは存在するので、ビットコインを使用するうえで、自分の目的に合ったノードで参加するのがおすすめです。

この記事は以下の2つの書籍を参考にして執筆しています。

参考元①:Arvind Narayanan, 仮想通貨の教科書, 日経BP社
参考元②:アンドレアス・M. アントノプロスMastering Bitcoin:ビットコインとブロックチェーン:暗号通貨を支える技術,O'Reilly Media

Mastering Bitcoinは日本語の無料pdfがあります。

デジタルでもよければMastering Bitcoin日本語訳からダウンロード可能です。