ノードの種類とは何ですか?一般的にイメージされる「あるチェーンには1種類のノードしかない」こととはどう違いますか?
多くの人はブロックチェーンネットワーク内のノードはすべて同じことをしており、ハードウェアの仕様が異なるだけだと考えがちだが、実際には異なるノードの種類は機能面で本質的に異なっており、単なる仕様の高低の問題ではない。最も核心的な違いは、そのノードがすべての取引とすべてのブロックを独立してダウンロード・検証するか(他のノードの主張を一切信頼しない)、それとも他のノードが提供する情報に依存し、部分的な検証だけを行うかにある。
この違いが、あるノードが実際に提供できる安全保証のレベルを決定する——すべてを独立して検証するノードは、たとえ世界中で自分だけが誠実なノードになったとしても、依然としてチェーン上で何が起きたかを正しく判断できる。他のノードの情報に依存するノードは、その安全性がある程度、信頼しているノードが実際に誠実かどうかに結びついている。
ノードの種類はなぜ分化したのですか?どんな問題を解決していますか?
「すべてを独立して検証する」ことは最も安全な方法に聞こえるが、そのコストは極めて高い:すべての履歴データを完全にダウンロードして検証するノードを運用するには、膨大なストレージ(ビットコインは数百GBで増加し続けており、Ethereumの実行クライアントは設定によって通常約1〜2TBが必要)、安定した帯域幅、そして継続的にオンラインで動作し続ける能力が必要であり、これらの条件はブロックチェーンを使いたいが専門的なハードウェアや技術力を持たない大多数の一般ユーザーを排除してしまう。
ノードの種類の分化は、本質的には「安全性」と「リソースの閾値」の間でさまざまな組み合わせの選択肢を提供することであり、異なるリソース条件、異なる信頼のニーズを持つユーザーそれぞれが自分に適した参加方法を見つけられるようにするものだ——すべての人にフルノードの運用に全力を注ぐか、独立検証を完全に放棄して他人の提供する情報を盲目的に信頼するかのどちらかを強制するのではない。
ノードの種類は具体的にどう分類されますか?それぞれの役割は何ですか?
主にいくつかに分けられる:
これらの役割は互いに排他的ではない——あるノードはフルノードであると同時に外部にRPCサービスを提供することもでき、バリデーターノードも通常、コンセンサスに参加するためにはフルノードの機能を同時に実行する必要がある。
ノードの種類は私にとってどんな意味がありますか?何に注意すべきですか?
もしあなたが一般的なウォレットアプリを使っているなら、あなたは実際には集中型サービスプロバイダーが提供するRPCノードを通じてデータを照会していることになり、これはこのプロバイダーが報告する情報に問題がないことを信頼していることを意味する——これはまた、「ライトクライアント」という技術的方向性が重要である理由でもある:それはフルノードを運用するリソースの閾値を必要とせず、特定のサービスプロバイダーを完全に信頼する必要もなく、暗号学的検証を通じて中間のバランスを取ることを可能にする。
もしあなたが自分でノードを運用することを検討しているなら(プライバシー上の理由、自分のオンチェーンデータを直接照会したい、あるいはバリデーターとしてネットワークに参加したいなど)、まず自分がどの種類のノードを必要としているかを明確にすることだ——単に取引を独立して検証したいだけなら、通常フルノードで十分である。もし遠い過去の履歴データ(あるアドレスの3年前の完全な取引履歴など)を照会する必要があるなら、アーカイブノードを運用する追加のストレージコストが必要になる。コンセンサスに参加して報酬を得ることが目標であれば、対応するチェーンのバリデーター資格の閾値(ステーキング量の要件など)についてさらに理解する必要がある。
Ethereumの実行クライアントで標準的なフルノードを運用するには通常、約1〜2TBのストレージが必要(クライアントと設定によって異なる)であり、アーカイブノードはすべてのブロック高における完全な履歴状態を保持するため、ストレージ要件はそれよりもはるかに高くなる。これがアーカイブノードが主にブロックエクスプローラーやオンチェーン分析プラットフォームといった専門サービスによって運用され、一般ユーザーが自分で運用することはめったにない理由でもある。
フルノードの利点はすべてを独立して検証でき、いかなる第三者にも依存しないことだが、欠点はハードウェアと帯域幅の閾値が高く、一般ユーザーには負担が大きいことである。ライトクライアントの利点はリソース要件が極めて低くモバイルデバイスに適していることだが、欠点は安全性の一部がブロックヘッダーを提供する情報源が誠実かどうかに依存することである。アーカイブノードの利点は完全な履歴クエリをサポートできることだが、欠点はストレージコストが標準的なフルノードよりもはるかに高く、通常は専門サービスでなければ運用する理由がないことである。