暗号資産ノードとは?
暗号資産ノードとは、ブロックチェーンネットワークに接続し、ブロックチェーンデータの受信、検証、保存、共有などを行うコンピューターまたはソフトウェアプロセスです。ノードは、単一の中央サーバーにブロックチェーンの維持を依存するのではなく、P2Pネットワークを通じて相互に通信します。設定によって、ノードはトランザクションの検証、ブロックの確認、ブロックチェーンの履歴保存、情報の中継、アプリケーションへのデータ提供、コンセンサスへの参加などを行う場合があります。ノードは、ブロックチェーンクライアントソフトウェアに実装されたルールに従います。ノードはブロックやトランザクションを受信すると、そのデータをルールに照らして確認し、受け入れるか、拒否するか、保存するか、中継するかを判断します。ブロックチェーンネットワークによってノードの設計は異なるため、具体的な役割、ハードウェア要件、インセンティブは大きく異なる場合があります。暗号資産ノードが自動的にウォレット、マイナー、バリデーター、ステーキングサービスになるわけではありません。ただし、1台のマシンがこれらの機能の複数を同時に担うことはあります。暗号資産ノードの仕組み
暗号資産ノードは、特定のブロックチェーンネットワークに対応するクライアントソフトウェアを実行して起動します。クライアントは他のノード(一般にピアと呼ばれます)に接続し、現在のブロックチェーンの状態を把握するために必要な情報を要求し始めます。新しいノードは、ブロックチェーンの最初からブロックをダウンロードすることも、より新しい状態から開始する承認済みの同期方法を使うこともできます。ノードは、プロトコルのコンセンサスルールと検証ルールに従って受信データを確認します。無効なブロックやトランザクションは、ノードが受け入れたブロックチェーンの表示に追加せず、拒否します。有効な情報はローカルに保存され、接続中の他のピアに通知される場合があります。同期が完了すると、ノードは新しいトランザクション、ブロック、投票、アテステーション、その他のプロトコルメッセージを継続して受信します。ノードは、ウォレット、アプリケーション、研究者、自動化システムがブロックチェーンデータを照会したり、署名済みトランザクションを送信したりできるインターフェースを提供する場合もあります。暗号資産ノードの役割
トランザクションを検証する
検証ノードは、トランザクションを受け入れる前に、ブロックチェーンのルールに従っているか確認します。確認項目には、デジタル署名、利用可能残高、トランザクション形式、支出条件、シーケンスルール、ネットワーク手数料、同じ資産の二重使用を防ぐ仕組みなどが含まれる場合があります。具体的な確認内容は、ブロックチェーンがUTXOモデル、アカウントモデル、または別の会計設計を採用しているかによって異なります。ブロックを検証する
フルノードは、受信した各ブロックがネットワークのコンセンサスルールに従っているか確認します。ノードは、ブロックの構造、トランザクションの有効性、ブロックサイズまたはリソース上限、暗号学的コミットメント、タイムスタンプ、コンセンサス証明、ブロックチェーンの状態変化などを検証する場合があります。マイナーやバリデーターが生成したブロックであっても、ネットワークに送信されたというだけで自動的に信頼されるわけではありません。他の検証ノードが、そのブロックを受け入れられるか独立して判断します。ネットワークデータを中継する
ノードは、P2Pネットワーク全体にトランザクション、ブロック、その他のプロトコルメッセージを配信します。通常、1つのノードがすべての情報をすべての参加者に直接送信するわけではありません。代わりに、データは接続中のピア間で伝播し、ネットワークの広い範囲に届きます。公式のBitcoin P2Pネットワークのドキュメントでは、フルノードがピアとトランザクション、ブロック、アドレス、インベントリ通知を交換する方法が説明されています。
ブロックチェーンデータを保存する
ノードは、最近のブロックチェーンデータ、すべてのブロック履歴、現在の状態、トランザクションインデックス、またはこれらの組み合わせを保存する場合があります。ストレージ要件は、ブロックチェーン、ノードの種類、クライアント設定、インデックス設定、同期方法によって異なります。アーカイブノードは一般に、通常のフルノードより多くの履歴情報を保存します。アプリケーションにデータを提供する
ウォレット、ブロックチェーンエクスプローラー、分散型アプリケーション、取引システム、分析ツールは、ノードからブロックチェーン情報を取得することがよくあります。ノードは、残高、トランザクション、ブロック、スマートコントラクト、ネットワーク状況、手数料の条件に関する問い合わせに応答する場合があります。アプリケーションは通常、リモートプロシージャコール(RPC)インターフェースを通じてノードと通信します。トランザクションを送信する
ウォレットは、署名済みトランザクションをノードに送って検証と中継を依頼できます。ノードはトランザクションを確認し、適用される中継ルールを満たす場合、他のピアに配信することがあります。ウォレットがトランザクションに安全に署名済みであれば、ノードがユーザーの秘密鍵を必要とすることはありません。コンセンサスに参加する
一部のノードは、ブロックチェーンのコンセンサスプロセスに直接参加する追加の役割を担います。Proof of Workのマイニングノードは、候補ブロックを構築し、マイニング機器と連携して有効なProofを探索する場合があります。Proof of Stakeのバリデーターノードは、ブロックの提案、投票、アテステーションの作成、その他割り当てられた役割を担う場合があります。多くのフルノードは、マイニング、ステーキング、ブロック提案、プロトコル報酬の獲得を行わずにブロックチェーンを検証します。暗号資産ノードとブロックチェーンクライアントの違い
ブロックチェーンクライアントとは、ブロックチェーンプロトコルのルールとネットワーク機能を実装するソフトウェアです。暗号資産ノードとは、そのクライアントを実行し、ネットワークに接続したインスタンスです。アプリケーションと、そのアプリケーションを実際に実行しているコンピューターの違いに似ています。同じプロトコル仕様に準拠するクライアントを、複数の独立したチームが開発する場合があります。クライアントの多様性は、単一のソフトウェア実装への依存を減らせます。1つのクライアントに不具合があっても、必ずしもすべてのノードに影響するとは限らないためです。最新のEthereumのクライアント多様性に関するドキュメントでは、複数の本番用クライアントが共通のプロトコル仕様に従いながら、別々のチームによって開発されていることが説明されています。
暗号資産ノードと暗号資産ウォレットの違い
暗号資産ウォレットは、ブロックチェーントランザクションを承認するために必要な鍵と署名プロセスを管理します。ノードはブロックチェーン情報を検証し、通信します。ノードアプリケーションにウォレット機能が含まれる場合もありますが、ウォレットがフルノードを運用する必要はありません。多くのウォレットは、第三者が運用するリモートノードに接続します。個人用ノードを使うと、外部のデータプロバイダーに全面的に依存せずに、ウォレットでブロックチェーン情報を検証できる場合があります。秘密鍵はウォレットまたは署名デバイスで保護し、公開ノードのインターフェースに開示する必要はありません。暗号資産ノードとマイナーの違い
マイナーは、有効なブロックの生成を試みてProof of Workの計算を行います。フルノードは、マイナーのブロックがネットワークルールに従っているか検証します。マイニング機器は、トランザクション情報、候補ブロックの構築、ブロックチェーンの更新にノードソフトウェアを利用する場合があります。マイニングを行わずにフルノードを運用することもできます。マイナーが作成したブロックがコンセンサスルールに違反し、検証ノードに拒否された場合、期待した報酬を得られないことがあります。暗号資産ノードとバリデーターの違い
バリデーターとは、Proof of Stakeのプロトコルによって認められ、特定のコンセンサス上の役割を担う参加者です。通常のフルノードは、バリデーターとして登録しなくてもチェーンを検証できます。バリデーターは、ブロックチェーンの最新データをもとに正しくブロックを提案または投票する必要があるため、通常はノードのインフラを必要とします。Ethereumでは、標準的なノードは実行クライアントとコンセンサスクライアントを使用します。運用者がステーキングの役割を担う場合は、任意でバリデーターソフトウェアを追加します。公式のEthereumノードアーキテクチャのドキュメントでは、実行、コンセンサス、バリデーター各クライアントの役割が説明されています。
暗号資産ノードとRPCサーバーの違い
RPCサーバーは、他のアプリケーションがノードとやり取りするためのプログラム用インターフェースを提供します。ノードがRPCサーバーを公開する場合もありますが、ノードはP2P通信、同期、検証、保存の機能も担います。RPCエンドポイントは、公開、非公開、ローカル、または承認済みシステムだけが利用できる形で提供できます。アプリケーションはこのエンドポイントを使って、ブロックチェーン情報の取得、手数料の推定、スマートコントラクト呼び出しのシミュレーション、署名済みトランザクションの送信などを行う場合があります。RPCエンドポイントを運用していても、ノードが自動的にコンセンサスへ参加するわけではありません。暗号資産ノードの種類
フルノード
フルノードは、ブロックチェーンのコンセンサスルールに従い、ブロックとトランザクションを独立して検証します。ブロックチェーンデータが有効だという他のノードの主張だけに全面的に依存しません。Bitcoinのフルノードに関するドキュメントでは、フルノードをトランザクションとブロックを完全に検証するプログラムと定義しています。
フルノードは、有効なトランザクションやブロックを他のピアに中継する場合があります。フルノードを運用すると、自身のシステムで適用するルールに基づいて、支払いとブロックチェーンの状態を検証できます。プルーニングノード
プルーニングノードは、受信した古いブロックデータを検証後に削除するフル検証ノードです。プルーニングによって長期的なストレージ要件を減らしながら、新しいブロックチェーン上の活動を検証する責任を維持できます。ノードは現在の運用に必要なデータを保持し、他のフルノードと同じコンセンサスルールに従います。ただし、古いブロックをピアやアプリケーションに提供したり、ウォレットを再スキャンしたりできない場合があります。Bitcoin開発者向けドキュメントでは、ブロックチェーンの全履歴を保存しなくても、プルーニングノードはフルノードであると説明されています。
アーカイブノード
アーカイブノードは、現在の検証に必要な情報に加えて、広範なブロックチェーンの履歴状態を保存します。通常のフルノードでは取得できない、または取得に時間がかかる過去の情報を照会できます。研究者、分析システム、ブロックチェーンエクスプローラー、監査担当者、高度なアプリケーションでは、アーカイブデータが必要となる場合があります。アーカイブノードは通常、標準的なフルノードより大幅に多くのストレージと保守作業を必要とします。公式のEthereumアーカイブノードのドキュメントでは、アーカイブノードをすべての過去の状態を保持する設定のクライアントインスタンスと説明しています。
ライトノード
ライトノードは、フルノードよりはるかに少ない情報を保存、処理します。暗号学的証明、ブロックヘッダー、委員会、またはフルノードへの問い合わせを使って、選択した情報を検証します。ストレージ、帯域幅、処理能力が限られたデバイスにライトノードは適しています。通常、フルノードと同等の独立した履歴検証やデータ可用性は提供できません。セキュリティモデルは、ブロックチェーンのライトクライアントプロトコルと、補足データを取得する際の前提に左右されます。Ethereumのライトクライアントに関するドキュメントでは、すべてのデータをローカルに完全保存せずにライトノードがブロックチェーンにアクセスする方法を説明しています。
バリデーターノード
バリデーターノードは、ブロックチェーンを追跡するソフトウェアを維持するとともに、Proof of Stakeのコンセンサス上の役割を果たします。役割には、ブロック提案、チェーン履歴への投票、アテステーションへの署名、プロトコル委員会への参加などが含まれる場合があります。バリデーターの運用には、ロックされたステーク、継続的な稼働、安全な署名鍵、適切なソフトウェア設定が必要となる場合があります。役割を果たせなかった場合は報酬が減ることがあり、重大なメッセージや矛盾するメッセージを送信した場合はプロトコル上のペナルティを受ける可能性があります。マイニングノード
マイニングノードは、Proof of Workによるブロック生成を支援します。有効なトランザクションを集め、候補ブロックを構築し、専用のマイニング機器に計算処理を提供する場合があります。有効なProofが見つかると、ノードは提案されたブロックをネットワークに送信します。他のフルノードは、ブロックを受け入れる前に引き続き独立して検証します。RPCノード
RPCノードは、ウォレット、アプリケーション、分析システム、その他のソフトウェアからのリクエストに応答するよう最適化されています。ブロックチェーンや設定に応じて、フルノード、アーカイブノード、バリデーター、投票を行わないノードの場合があります。大量のリクエストを処理するRPCインフラには、負荷分散、キャッシュ、監視、レート制限、複数の同期済みノードインスタンスが必要となることがよくあります。RPCノードは、ブロックを直接生成せずにアプリケーションへアクセスを提供できます。ブートノード
ブートノードは、新しく起動したノードが他のピアを見つけるのを支援します。ブートノードは初期の接続先として機能し、ブロックチェーンの正当性を永続的に保証する情報源ではありません。ピアを見つけた後、新しいノードは他のネットワーク参加者にも直接接続できます。Ethereumのブートノードに関するドキュメントでは、ブートノードがピアを発見するための入口となり、静的ピア接続とは異なることが説明されています。
マスターノード
マスターノードは、一部のブロックチェーンネットワークで使われる、プロジェクト固有のノード区分です。ガバナンス、支払い、プライバシー、トランザクションのロック、データ提供などの特殊なサービスを担う場合があります。運用には、ネットワークの暗号資産を所定の数量保有またはロックする必要がある場合があります。この用語に普遍的な技術上の定義はないため、運用者は対象プロジェクトの具体的なプロトコルルールを確認する必要があります。フルノードの運用モード
リスニングノード
リスニングノードは、外向きの接続を作成するだけでなく、ピアからの接続も受け入れます。他の参加者に接続先の選択肢を増やすことで、ネットワーク接続性の向上に役立ちます。運用者は通常、ファイアウォール、ルーター、クラウドのセキュリティルール、ネットワークアドレス変換の設定を適切に行う必要があります。非リスニングノード
非リスニングノードは外向きの接続を作成しますが、一般的なピアからの受信接続は受け入れません。それでもブロックチェーンデータを検証し、既存のピアを通じて情報を中継できます。ネットワーク機器に制限のある環境では、この設定のほうが容易な場合があります。ブロックのみのノード
ブロックのみのノードは、主にブロックに重点を置き、トランザクション中継の通信量を抑えます。未承認トランザクションの帯域幅使用量を減らしながら、ブロックチェーンを検証できます。この設定ではトランザクションの伝播支援が限定され、ノードのトランザクションプールに依存するウォレットの動作に影響する場合があります。インデックス付きノード
インデックス付きノードは、特定のブロックチェーン照会を高速化する追加データベースを作成します。トランザクション検索、アドレス分析、スマートコントラクトのイベント、アプリケーション固有のデータなどを支えるインデックスを作成できます。インデックスによって、ストレージ使用量、同期時間、データベース保守の要件が増加します。ノードが同じブロックチェーンの状態に到達する仕組み
ノードはコンセンサスルールに基づき、有効なトランザクションとブロックを判断します。また、フォーク選択ルールを使って、どの有効なチェーンまたは分岐を現在の正規の履歴とみなすか判断します。Proof of Workネットワークでは、累積作業量がチェーン選択で重要な役割を果たすことが一般的です。Proof of Stakeネットワークでは、バリデーターの投票、チェックポイント、正当化、ファイナリティ、プロトコル固有のルールによって採用されるチェーンが決まる場合があります。ノードは、中央管理者の身元を信頼することで合意に至るわけではありません。互換性のあるクライアントソフトウェアに実装された共通ルールに従って、ネットワークメッセージを処理します。異なるコンセンサスルールを実行するノードは、他の参加者が受け入れたブロックを拒否し、別のブロックチェーン分岐を追跡する場合があります。ノードコンセンサスとは?
ノードコンセンサスとは、プロトコルのルールに従い、分散した参加者が有効なブロックチェーン履歴に収束するプロセスです。コンセンサスは、すべてのノードがすべてのトランザクションに直接投票することを意味しません。どの参加者がブロックを生成するか、どのメッセージがファイナリティに影響するか、競合する履歴をノードがどう扱うかはプロトコルによって決まります。その後、フルノードは、選択したルールに従って結果のデータを独立して検証します。互換性のないルールを実行するノードの数が多くても、ブロックチェーンのコンセンサスメカニズムが自動的に覆されるわけではありません。暗号資産ノードによるトランザクション検証
ノードはまず、トランザクションがネットワークに適した形式か確認します。必要な署名と承認条件を検証します。支出対象の資産が、現在受け入れている状態に存在するか確認します。その資産がすでに使用されていないか、または送信者に十分な利用可能残高があるかを確認します。手数料、スクリプト、スマートコントラクトの実行、ガス、シーケンス値、トランザクションサイズなどに関するプロトコル固有の上限を適用します。有効な未承認トランザクションは、ノードのメモリプールに入り、ピアに中継される場合があります。1つのノードによる検証は、トランザクションがブロックに含まれたことやファイナリティに達したことを意味しません。ノードのメモリプールとは?
メモリプールとは、受け入れられたブロックにまだ含まれていない有効なトランザクションを、各ノードがローカルに集めたものです。各ノードは、設定、トランザクション履歴、中継方針に基づいて独自のメモリプールを管理します。そのため、2つのノードで未承認トランザクションの集合が異なる場合があります。あるノードのメモリプールに存在しないトランザクションが、他のピアを通じて利用できることもあります。トランザクションがブロックに記録されると、ノードはそのエントリーと、競合するエントリーをメモリプールから削除します。メモリプールは、永続的なブロックチェーン記録の一部ではありません。暗号資産ノード間でブロックが伝播する仕組み
マイナーまたはバリデーターが新しいブロックを提案すると、接続中のピアに送信します。受信したノードはブロックを確認し、必要なデータをまだ保有していない場合は、そのデータを要求することがあります。ブロックを検証した後、ノードはさらに多くのピアへ中継できます。このP2Pでの伝播がネットワーク全体に広がります。ネットワークの遅延により、ノードによって競合するブロックの受信順序が異なることがあります。その後、新たな情報が届くにつれて、コンセンサスルールとフォーク選択ルールがノードの追跡する有効な履歴を決定します。ノードの同期とは?
ノードの同期とは、現在のネットワーク状態を追跡するために必要なブロックチェーンデータを取得し、検証するプロセスです。初回同期には、かなりの時間、帯域幅、処理能力、ストレージが必要になる場合があります。最新ブロックまで追いつく前に、ノードがオンラインに見える場合があります。アプリケーションは、ノードのデータを最新情報として扱う前に、同期状況を確認してください。同期方法はブロックチェーンクライアントごとに異なり、プロトコル技術の発展に伴って変わる場合があります。初期ブロックダウンロード
初期ブロックダウンロードとは、新しいフルノードが最初に行う主要な同期プロセスです。ノードは過去のブロックチェーンデータを取得し、クライアントのルールに従ってチェーンを検証します。検証では、何年分ものブロック、トランザクション、署名、状態遷移を確認する場合があります。初回同期の速度は、コンピューター、ストレージデバイス、インターネット接続、ピアの品質、クライアント設定によって異なります。通常、処理を中断すると完了が遅れますが、クライアントのデータベースが正常であれば、最初からやり直す必要はありません。フル同期、スナップショット同期、チェックポイント同期
フル同期方式では、過去のブロックチェーンデータを処理して現在の状態を構築します。スナップショット方式では、最近の状態を表すデータから開始し、クライアントの設計に応じて追加の履歴や状態データを検証できます。チェックポイント方式では、通常の検証を続ける前に、受け入れ済みの比較的新しい参照点に依存します。これらの方式は起動時間を短縮できますが、信頼、ストレージ、可用性に関する前提はそれぞれ異なります。同期方式の名称はネットワークごとに意味が同じとは限らないため、利用するブロックチェーンクライアントの公式ドキュメントに従ってください。プルーニングノードとアーカイブノードの違い
プルーニングノードは、検証後に古いデータを削除してストレージ使用量を抑えます。アーカイブノードは過去の状態に関する照会に直接応答できるよう、広範な履歴データを保持します。どちらも、同じコンセンサスルールの下で新しいブロックを完全に検証できます。主な違いは、現在のブロックを確認するかどうかではなく、保持するデータと照会機能にあります。個人で検証する場合はプルーニングノードが適していることがありますが、過去の分析やアプリケーションインフラにはアーカイブノードが必要な場合があります。暗号資産ノードを運用する理由
独立した検証
ノードを運用すると、ローカルで適用するルールに基づいてブロックチェーンデータを確認できます。残高、承認回数、トランザクションの有効性について、検証せずにリモートサービス提供者の説明を受け入れる必要がありません。プライバシーの向上
第三者のノードに接続するウォレットは、アドレス、取引への関心、IP情報、照会パターンをそのサービス提供者に知られる場合があります。個人用ノードを使えば、リモートからの照会を通じて明らかになるブロックチェーン上の活動を減らせる場合があります。ただし、ピアやインターネットプロバイダーが接続情報を確認できる場合があるため、ネットワークレベルのプライバシーには引き続き慎重な設定が必要です。信頼性の高いアプリケーションアクセス
開発者は個人用ノードを使って、自身のアプリケーションにブロックチェーンデータを提供できます。これにより、外部サービスの利用制限、価格変更、停止、フィルタリング方針への依存を減らせます。ネットワークの耐障害性
独立して運用されるノードは、有効なトランザクションやブロックが移動する経路を増やします。地理、ネットワーク、ソフトウェア、運用者の多様性により、少数のインフラ提供者への依存を減らせる場合があります。ルールの適用
フルノードは、クライアントに実装されたコンセンサスルールに違反するブロックを拒否します。これにより、他の参加者が無効なブロックチェーンデータを送信しても、運用者がそれを受け入れることを防ぎます。バリデーターまたはマイナーの運用
コンセンサスに参加するユーザーは通常、チェーンを追跡し、役割を正しく果たすためのノードインフラが必要です。そのため、信頼性の高いノード運用は、ステーキングやマイニングに不可欠な要素となることがあります。暗号資産ノードを運用すると報酬を得られますか?
通常のフルノードを運用しても、暗号資産の報酬が必ず得られるわけではありません。Bitcoinのフルノードは、ブロックを検証して中継するだけではプロトコル報酬を受け取りません。Proof of Stakeの報酬を得るには、一般に、報酬の対象となるバリデーターの役割を有効にし、必要なステークをリスクにさらす必要があります。Proof of Workの報酬を得るには、マイニングによってブロック生成に成功する必要があります。ノードに特別な役割を与えて報酬を支払うネットワークもありますが、支払いルールはプロトコルごとに異なります。ノードソフトウェアをインストールするだけで、どのコンピューターでも保証された不労所得を得られると主張するサービスには注意してください。暗号資産ノードのハードウェア要件
ハードウェア要件は、ブロックチェーン、ノードの種類、クライアント、データベース設定、想定するアプリケーションの通信量によって異なります。重要なリソースには、プロセッサ性能、メモリ、ストレージ容量、ストレージ速度、帯域幅、ネットワークの信頼性があります。ブロックチェーンの検証ではデータベースの読み書きが頻繁に発生するため、高速なSSDが重要となる場合があります。アーカイブノードや大量のリクエストを処理するRPCノードは、個人用のプルーニングノードよりはるかに多くのストレージとメモリを必要とする場合があります。バリデーターには、継続的な稼働と追加の署名鍵保護が必要となる場合があります。ブロックチェーンの成長に伴ってハードウェアの推奨要件は変わるため、機器を購入する前に各クライアントの最新の公式ドキュメントを確認してください。暗号資産ノードの帯域幅要件
ノードは、ブロック、トランザクション、状態データ、ピアのメッセージをダウンロードします。リスニングノードは、他のピアに大量のデータをアップロードする場合もあります。通常、初回同期では通常運用時より多くの帯域幅を使用します。アーカイブサービスや公開RPCエンドポイントは、P2P同期とは別に追加のデータ通信を発生させることがあります。データ通信量に制限がある運用者は、ノードを起動する前にアップロードとダウンロードの制御を確認してください。暗号資産ノードの稼働時間
個人用のフルノードは、停止後に再起動して、停止中に生成されたブロックと同期できます。バリデーターノードは、コンセンサス上の役割を果たせないと報酬が減ったりペナルティが発生したりするため、より高い稼働率が必要となる場合があります。ビジネスアプリケーションを支えるRPCノードにも、冗長性と迅速なフェイルオーバーが必要となる場合があります。稼働率の要件は一律ではなく、ノードの機能に合わせて設定してください。暗号資産ノードの運用方法
1. ブロックチェーンを選ぶ
本番ネットワークや公式テストネットワークなど、対象のブロックチェーンと環境を正確に特定します。2. クライアントソフトウェアを選ぶ
独立して確認した公式情報源から、互換性のあるクライアントソフトウェアをダウンロードします。署名、ハッシュ値、パッケージの確認手順が提供されている場合は、それらも確認してください。3. 要件を確認する
ハードウェア、ストレージ、帯域幅、OS、ネットワークの最新要件を確認します。4. ストレージを準備する
ブロックチェーンの増加分、データベースのオーバーヘッド、ログ、今後の更新に十分な容量がある、信頼性の高いストレージを使います。5. ネットワークを設定する
ノードがピアからの着信接続を受け入れるか、どのポートを利用可能にする必要があるかを決めます。必要なP2Pポートのみを公開し、管理インターフェースへのアクセスは制限してください。6. 同期を開始する
クライアントを起動し、現在のネットワーク状態に追いつくまで進捗を確認します。7. ノードの状態を確認する
ピア数、最新ブロック、同期状態、ネットワーク識別情報、ディスク使用量、ソフトウェアログを確認します。8. アプリケーションアクセスを設定する
信頼できるアプリケーションに必要なRPCメソッドと接続方法だけを有効にします。9. 監視体制を整える
稼働状況、ピア接続、同期遅延、ストレージ、メモリ、プロセッサ使用率、エラーログを監視します。10. ノードを保守する
検証済みのクライアント更新を適用し、プロトコルのアップグレードを確認し、OSのセキュリティを維持し、バックアップを定期的に検証します。暗号資産ノードのRPC
RPCはremote procedure call(リモートプロシージャコール)の略で、ソフトウェアがノードにデータや処理を要求するためのインターフェースを指します。ウォレットは、現在のブロック番号の照会、残高の取得、手数料の推定、署名済みトランザクションの送信などを要求できます。分散型アプリケーションは、独自のブロックチェーンインターフェースを運用せずにスマートコントラクトを呼び出せます。Ethereum JSON-RPCのドキュメントでは、ノード情報の照会、ブロックチェーン状態の読み取り、トランザクションの送信に使う標準化されたメソッドが説明されています。
RPCアクセスとP2P通信は役割とセキュリティリスクが異なるため、分けて管理してください。公開RPCノードと非公開RPCノード
公開RPCノードは、インターネットユーザーやアプリケーションの顧客からのリクエストを受け付けます。通常、認証、レート制限、通信のフィルタリング、負荷分散、サービス拒否攻撃への対策が必要です。非公開RPCノードは、承認済みのデバイス、アプリケーション、社内ネットワークからのリクエストのみを受け付けます。アクセスを非公開にするとリスクへの露出を減らせますが、認証情報や社内システムの侵害リスクをなくせるわけではありません。公開RPCデータは便利ですが、ユーザーはサービス提供者の稼働率、正確性、プライバシー方針、ネットワーク設定を信頼する必要があります。暗号資産ノードのセキュリティ
RPCアクセスを制限する
公開サービス向けに特別に設計され、保護されている場合を除き、RPCインターフェースを信頼できないインターネットユーザーに公開しないでください。公式のGethセキュリティドキュメントでは、明示的に信頼したマシンを除き、JSON-RPC通信を遮断することが推奨されています。
管理、デバッグ、アカウント管理、署名の各メソッドには、特に厳格なアクセス制御が必要です。ノードとウォレットの鍵を分離する
ブロックチェーンデータの検証や中継だけを目的とする公開ノードに、価値のあるウォレットの秘密鍵を保存する必要はありません。署名システムを公開インフラから分離すると、ノードが侵害された場合の被害を抑えられます。バリデーター鍵を保護する
バリデーターの署名鍵は、盗難、複製、不正利用、誤った同時稼働から保護してください。Proof of Stakeのプロトコルによっては、矛盾するメッセージに署名したバリデーターにペナルティが科されることがあります。Ethereumではバリデーター鍵と出金鍵が分かれており、最新のProof of Stakeの鍵に関するドキュメントで説明されています。
ファイアウォールを使用する
ファイアウォールは、必要なP2P通信を許可しながら、不要な管理用ポートやデータベースポートを遮断する必要があります。クラウドのセキュリティルール、ルーター設定、OSのファイアウォール、コンテナのネットワーク設定をまとめて確認してください。更新プログラムを慎重にインストールする
ノード運用者は、セキュリティ修正や必須のプロトコルアップグレードについて、クライアントの公式発表を確認してください。更新は確認済みの経路から入手し、ノードが重要システムを支える場合は事前にテストしてください。リモート管理を保護する
リモートアクセスには、強力な認証、暗号化された接続、権限を限定したアカウント、承認済みの接続元ネットワークを使用してください。インターネットに公開されたパスワード方式の管理アクセスは、自動化された攻撃に対して脆弱な場合があります。ログを監視する
ログからは、接続の失敗の繰り返し、同期の問題、無効なメッセージ、リソース不足、不正なリクエストを確認できる場合があります。ログにはIPアドレス、パス、運用情報が含まれることもあるため、適切に保護してください。バックアップを保護する
設定ファイル、ウォレットのバックアップ、バリデーター関連データ、リカバリーデータは、機密性に応じて暗号化し、保管してください。ブロックチェーンデータベースは再ダウンロードできることが多い一方、秘密鍵や署名認証情報は安全に置き換えられない場合があります。暗号資産ノードを狙う一般的な攻撃
サービス拒否攻撃
サービス拒否攻撃は、ノードの帯域幅、メモリ、プロセッサ能力、接続数、RPCリソースを枯渇させようとします。レート制限、ファイアウォール、ピア制御、冗長インフラによって、攻撃の影響を軽減できる場合があります。エクリプス攻撃
エクリプス攻撃は、ノードのピア接続の大半を制御または操作し、そのノードをネットワークから隔離しようとします。攻撃者は、そのノードが受信するブロック、トランザクション、ネットワークメッセージを制限する可能性があります。ピアの多様性とクライアント側の保護策により、隔離を困難にできる場合があります。Sybil攻撃
Sybil攻撃は、多数のネットワーク上の身元を作り、ピアの発見、ルーティング、評判システムに影響を与えようとします。攻撃の影響は、プロトコルが各ノードの識別情報を独立した権威ある情報源として扱うかどうかによって異なります。認証されていないネットワーク接続の数だけに、コンセンサスのセキュリティを依存させるべきではありません。RPCの悪用
公開されたRPCエンドポイントは、リソースの消費、機密データの照会、不要なトランザクションの送信、危険な管理用メソッドの実行に利用される場合があります。認証情報が弱い、漏えいしている、または広く共有されている場合、認証だけでは不十分なことがあります。ソフトウェアサプライチェーン攻撃
攻撃者は、改ざんされたノードソフトウェア、悪意のあるパッケージ、偽の更新プログラム、侵害された依存関係を配布する場合があります。運用者はダウンロードを検証し、依頼していないメッセージに記載されたインストールリンクを避けてください。バリデーター鍵の盗難
盗まれたバリデーター鍵を使うと、攻撃者がそのバリデーターになりすましてメッセージに署名できる場合があります。報酬の喪失、ペナルティ、スラッシング、運用の中断、評判の低下につながる可能性があります。暗号資産ノードの監視
ノード運用者は、ソフトウェアが稼働し、正しいブロックチェーンネットワークを追跡しているか監視してください。最後に受け入れたブロックまたはスロットが、ネットワーク全体の状況から大きく遅れないようにします。ピア数が想定範囲内にあるか確認します。データベースの増加や一時ファイルに備えて、ストレージに十分な空き容量を確保します。同期遅延を引き起こす水準に達しないよう、プロセッサ、メモリ、ディスク遅延、帯域幅を監視します。バリデーターの運用者は、担当する役割、実行できなかった処理、鍵の状態、報酬、ペナルティ、時刻同期も監視してください。小さな問題が長時間の停止に発展する前に、アラートが権限のある運用者に届くようにします。暗号資産ノードのバックアップと復旧
ブロックチェーンデータベースは通常、ネットワークのピアから再同期することで再構築できます。設定、アクセス認証情報、ウォレットデータ、バリデーター鍵、運用記録は、それぞれ別にバックアップが必要となる場合があります。バックアップは機能すると決めつけず、実際に復元をテストしてください。対応したスナップショット手順を使わずに稼働中のデータベースをコピーすると、整合性のないバックアップが作成される場合があります。プロトコルが競合する動作を罰する場合、バリデーターの復旧手順では、同じ署名鍵が2つのシステムで同時に稼働しないようにする必要があります。復旧計画には、ソフトウェアの入手先、ネットワーク設定、ピア構成、鍵の保管場所、監視方法、起動順序を記載してください。暗号資産ノードと分散化
多くの独立した運用者がブロックチェーンデータを検証、配信できるようにすることで、ノードは分散化を支えます。分散化は、確認できるノードの総数だけで決まるものではありません。重要な要素には、地理的な分散、ホスティングの集中度、クライアントの多様性、ネットワークプロバイダー、経済的支配、バリデーターの分布、ハードウェアへのアクセスなどがあります。1つのインフラプロバイダーでホスティングされる多数のノードが、共通の障害点を抱える場合があります。1つの組織が多くのノードを管理していても、相互に関係のない参加者が運用するノードと同等の独立性は得られません。ハードウェアや帯域幅の要件を下げることで、独立したノード運用への参加が容易になります。ノードが増えるほどブロックチェーンの安全性も高まりますか?
独立して運用される検証ノードが増えると、耐障害性、データ可用性、ピア接続性、特定の支配に対する耐性が向上する場合があります。ただし、ノード数だけでコンセンサスの安全性が決まるわけではありません。Proof of Workのブロックチェーンでは、マイニング能力とインセンティブ設計も重要です。Proof of Stakeのブロックチェーンでは、ステークの分布、バリデーターの行動、ペナルティ、ファイナリティのルール、クライアントの多様性も重要です。検証を行わないノードや複製されたノードを、独立したフルノードと同じセキュリティ特性を提供するものとして数えるべきではありません。リモートノードとノードのサービス提供
リモートノードは他者または組織が運用し、APIまたはネットワーク接続を通じて利用します。マネージドノードサービスを利用すると、セットアップ、同期、保守、インフラコストを抑えられる場合があります。スケーラブルなRPC処理能力やアーカイブデータへのアクセスを提供することもあります。ユーザーは、サービス提供者の稼働率、データ完全性、プライバシー、アクセス制御、チェーン選択を信頼する必要があります。公式のEthereumのノードサービスに関するドキュメントによると、マネージドサービスではAPIを通じてフルノードやアーカイブノードへのアクセスを提供することが一般的です。
ブロックチェーンデータを提供するだけであれば、サービス提供者がユーザーの秘密鍵を要求する必要はありません。暗号資産ノードを運用するメリット
個人用ノードを使うと、ブロックチェーンのルールとトランザクション履歴を独立して検証できます。第三者のデータプロバイダーへの依存を減らせます。アドレス照会を自分で管理することで、ウォレットのプライバシーを向上できる場合があります。開発者はブロックチェーンデータとトランザクション送信に直接アクセスできます。P2Pネットワークの接続性とデータ配信を支援できます。運用者は、利用するクライアントソフトウェアとプロトコルルールを選択できます。暗号資産ノードを運用するデメリット
ノードの運用には、ハードウェア、ストレージ、帯域幅、電力、セットアップ時間、継続的な保守が必要です。初回同期にかなりの時間がかかる場合があります。ソフトウェアの更新やプロトコルのアップグレードに対応する必要があります。公開インターフェースを誤って設定すると、サイバーセキュリティ上のリスクが生じる場合があります。アーカイブノードや大容量のRPCノードには、高額なインフラ費用がかかることがあります。バリデーターの運用では、ステーク、役割の未達、プロトコル上のペナルティに関する金銭的リスクが加わります。通常のフルノードを運用しても、直接的な金銭報酬が得られない場合があります。暗号資産ノードに関するよくある誤解
よくある誤解の1つは、すべての暗号資産ノードがブロックを生成するというものです。ほとんどのフルノードは、マイニングやステーキングによる検証を行わず、データを確認して中継します。別の誤解は、プルーニングノードはライトクライアントにすぎないというものです。プルーニングされたフルノードは、古いブロックファイルを検証後に削除しながら、ブロックチェーンを完全に検証できます。フルノードは過去のすべての状態を永久に保存する必要があると考える人もいます。このような履歴の保存は、通常、すべてのフルノードではなくアーカイブノードの設定に該当します。ブロックチェーンは1つの中央ノードに保存され、それが他の全員にコピーされるという誤解もあります。P2Pノードは、プロトコルルールに従って複数の参加者からデータを取得し、検証します。ノードにウォレットのリカバリーフレーズが必要だと思い込む人もいます。ノードは、署名済みトランザクションを承認した秘密鍵を受け取らなくても、トランザクションを検証し、中継できます。どのノードを運用しても自動的に不労所得が得られるという誤解もあります。通常、報酬を得るには、一般的な検証だけではなく、マイニング、ステーキング、またはプロトコル固有の別のサービスが必要です。よくある質問
暗号資産ノードを簡単に説明すると何ですか?
暗号資産ノードとは、ブロックチェーンネットワークに接続し、ブロックチェーンデータを受信、検証、保存、または中継するコンピューターまたはソフトウェアプロセスです。暗号資産ノードは何をしますか?
暗号資産ノードは、トランザクションやブロックの検証、ブロックチェーンデータの保存、ピアとの通信、RPCアクセスの提供、コンセンサスへの参加などを行う場合があります。暗号資産ノードはウォレットと同じですか?
いいえ。ウォレットは鍵とトランザクション署名を管理し、ノードはブロックチェーン情報を検証して通信します。暗号資産ノードはマイナーと同じですか?
いいえ。マイナーはProof of Workのブロック生成を試み、フルノードはそのブロックが有効か独立して検証します。暗号資産ノードはバリデーターと同じですか?
いいえ。バリデーターはProof of Stakeのコンセンサス上の役割を果たしますが、通常のフルノードはステーキングやブロック提案をせずにブロックチェーンを検証できます。暗号資産のフルノードとは何ですか?
暗号資産のフルノードとは、ブロックチェーンのコンセンサスルールに従ってブロックとトランザクションを独立して検証するノードです。プルーニングされた暗号資産ノードとは何ですか?
プルーニングノードはブロックチェーンデータを完全に検証した後、選択した古い記録を削除してストレージ要件を抑えます。アーカイブノードとは何ですか?
アーカイブノードは過去のブロックチェーン状態を広範に保持し、以前のネットワーク状況について詳細な照会に対応します。ライトノードとは何ですか?
ライトノードは限られたブロックチェーンデータを保存し、Proofまたはフルノードから取得した情報を使って、選択した結果を検証します。RPCノードとは何ですか?
RPCノードは、ウォレット、アプリケーション、ソフトウェアがブロックチェーン情報を照会したり、トランザクションを送信したりするためのインターフェースを提供します。バリデーターノードとは何ですか?
バリデーターノードは、Proof of Stakeのコンセンサス上の役割を果たすために必要なソフトウェアと鍵を実行します。ブートノードとは何ですか?
ブートノードは、新しく起動したノードがブロックチェーンネットワークに接続済みのピアを見つけるのを支援します。マスターノードとは何ですか?
マスターノードは、ブロックチェーンプロトコルで定められたルールに従って特殊なサービスを行う、プロジェクト固有のノードです。暗号資産ノードを運用すると収益を得られますか?
通常のフルノードではプロトコル報酬が得られない場合がありますが、マイニング、検証、特殊なノードの役割にはプロジェクト固有の報酬が支払われることがあります。ノードの運用に暗号資産は必要ですか?
多くのフルノードではトークン残高は不要ですが、バリデーターや特殊なノードにはステーク、担保、手数料、その他の金銭的負担が必要な場合があります。暗号資産ノードにはどのくらいのストレージが必要ですか?
ストレージ要件は、ブロックチェーン、クライアント、ノードの種類、プルーニング設定、インデックス、現在のブロックチェーンの規模によって異なります。一般的なコンピューターで暗号資産ノードを運用できますか?
一般向けのハードウェアで運用できるノードもありますが、アーカイブ、バリデーター、大量のRPC処理を行うノードには高性能な機器が必要となる場合があります。暗号資産ノードは常時稼働させる必要がありますか?
個人用のフルノードは停止後に再同期できますが、バリデーターや本番環境のRPCノードには通常、より高い可用性が必要です。暗号資産ノードはハッキングされる可能性がありますか?
はい。ノードソフトウェア、OS、RPCインターフェース、認証情報、依存関係、リモート管理サービスが攻撃を受ける可能性があります。ノードに秘密鍵は必要ですか?
検証ノードやRPCノードは、安全な別の場所で署名されたトランザクションを受け取る場合、ユーザーの秘密鍵を必要としません。ノードは暗号資産を保管しますか?
ノードが保存するのはブロックチェーンデータです。暗号資産を管理できるかどうかは、ノードのデータベースだけでなく秘密鍵によって決まります。ノードはブロックチェーン全体を保存しますか?
ブロック履歴全体を保存するノードもあれば、プルーニングノードやライトノードは保存データが少なく、アーカイブノードは追加の履歴状態を保持します。プルーニングノードはトランザクションを検証できますか?
はい。プルーニングされたフルノードは、古いブロックデータを削除する前にトランザクションとブロックを検証します。ライトノードはコンセンサスに参加できますか?
参加できるかはプロトコルによりますが、一般にライトクライアントはフルコンセンサスノードと同等の完全な検証やバリデーターの役割を担いません。ノードの同期とは何ですか?
ノードの同期とは、現在のネットワーク状態を追跡するために必要なブロックチェーンデータを取得し、検証するプロセスです。初期ブロックダウンロードとは何ですか?
初期ブロックダウンロードとは、新しいノードが過去のブロックチェーンデータを取得し、検証する最初の主要な同期プロセスです。ノードのメモリプールとは何ですか?
メモリプールとは、受け入れられたブロックでまだ承認されていない有効なトランザクションを、各ノードがローカルに集めたものです。2つのノードでメモリプールが異なることはありますか?
はい。ノードは異なるトランザクションを受信し、中継方針も異なる場合があるため、未承認トランザクションの集合が異なることがあります。自分でノードを運用する理由は何ですか?
個人用ノードは、独立した検証、プライバシーの向上、アプリケーションへの直接アクセス、第三者インフラへの依存軽減に役立つ場合があります。ノードが増えればブロックチェーンは分散化しますか?
ノードを独立して運用することは分散化を支えますが、ホスティング、クライアント、バリデーター、ステーク、マイニング、地理的な集中度も考慮する必要があります。エクリプス攻撃とは何ですか?
エクリプス攻撃とは、ノードのピア接続の大半を制御または操作して、ノードを隔離しようとする攻撃です。暗号資産ノードのRPCを一般公開すべきですか?
通常、公開利用を想定した認証、フィルタリング、レート制限、インフラが用意されていない限り、RPCアクセスは制限すべきです。公開RPCノードと非公開RPCノードの違いは何ですか?
公開RPCノードは外部ユーザーにサービスを提供し、非公開RPCノードは承認済みのシステムまたはネットワークにアクセスを限定します。自分でノードを運用せず、リモートノードを利用できますか?
はい。ただし、リモートノードを利用するには、サービス提供者の稼働率、プライバシー方針、データの正確性、ネットワーク設定を信頼する必要があります。暗号資産ノードでは何を監視すべきですか?
同期状態、ピア接続、最新ブロック、ストレージ、メモリ、プロセッサ使用率、ネットワーク通信、ソフトウェアログ、該当する場合はバリデーターの役割を監視してください。暗号資産ノードを保護するにはどうすればよいですか?
検証済みソフトウェア、最新の更新、制限されたRPCアクセス、ファイアウォール、強固な管理者制御、監視、安全なバックアップ、分離された署名鍵を利用してください。まとめ
暗号資産ノードとは、ブロックチェーンネットワークに接続し、ブロックチェーンデータの受信、検証、保存、中継、アクセス提供を支援するコンピューターまたはソフトウェアプロセスです。フルノードはプロトコルルールを独立して適用します。一方、プルーニングノード、アーカイブノード、ライトノード、バリデーターノード、マイニングノード、RPCノード、ブートノードは、保存、通信、アプリケーション、コンセンサスに関する異なる機能を担います。ノードが自動的にウォレット、マイナー、バリデーターになるわけではありませんが、設定によって1つのシステムが複数の役割を果たすことはあります。個人用ノードの運用は、独立した検証、プライバシー、アプリケーションの信頼性、ブロックチェーンへのアクセス管理を向上させる場合があります。ノードの運用には、適切なハードウェア、帯域幅、保守、監視、安全なネットワーク設定、RPCやバリデーターの認証情報の慎重な管理も必要です。ストレージ要件、同期方法、ソフトウェアのバージョン、プロトコル上の役割は変化し続けるため、運用者は各クライアントの最新の公式ドキュメントを参照してください。安全かつ独立して運用されるノードは、1つの中央情報源を信頼するのではなく、ユーザー自身がネットワーク上の活動を検証できるというブロックチェーンの基本原則を支えます。関連コンテンツ
Peter Todd
Peter McCormack
パフォーマンスボンド(履行保証金)
ホット
現在、市場で大きな注目を集めているトレンドの暗号資産
トップ取引高
取引高が最も多い暗号資産

