前面に書かれている内容: ビットコインが3回目の「半減期」を迎えてから2か月が経ち、この適応期間はDeFiやFilecoinなどのホットスポットの発生の機会を提供しましたが、暗号通貨市場の真の主役は常にビットコインでした。伝統的な金融市場における投機の波が終息に向かうにつれ、ビットコインは再び世間の注目を集めると予想されます。では、ビットコインについてどのような知識を習得する必要があるのでしょうか? これは、ビットコイン ネットワーク内のさまざまなノード、ソフトウェア、および参加者を理解するのに役立つ、初心者向けのビットコイン「アトラス」です。 ビットコイン ネットワークは、ピアツーピア (P2P)、分散型、または非中央集権型として説明されることが多く、次のように誤って表現されることがよくあります。 実際には、次のようになるかもしれません: では、ノードとは何でしょうか。また、ノードは何をするものでしょうか。ノードはサーバーですか、クライアントですか、それとも両方ですか?ビットコイン ソフトウェアにはさまざまな種類がありますが、ノードとは何でしょうか?ビットコインのすべての参加者(ユーザー、マイナー、ノード、ウォレット)は、どのように相互にやり取りするのでしょうか? この記事では、これらの定義を明確化し、簡素化するビットコイン ネットワークの図を描きます。サーバー/クライアント機能に基づいてさまざまな種類のノードを分類し、それらの間で形成される P2P 接続について説明します。この記事では、ネットワーク全体の統計情報を提供するのではなく、ネットワーク内のさまざまな可能性を列挙することに重点を置いています。 短い答えまず、ビットコインのロゴ (฿) でマークされたドットは P2P ネットワーク内のノードであり、エッジはこれらのノード間の P2P 接続です。実際、ビットコイン ネットワークにはさまざまな種類のノードがあり、他のピアやクライアントにサービスを提供する能力に応じて分類できます。ノードは、任意の時点でサーバー、クライアント、またはその両方として機能できます。 ノード = Bitcoin P2P プロトコルを実装する P2P ネットワーク上の参加者。ノードがビットコイン プロトコルに従っている限り、特定のソフトウェアを実行する必要はありません。 P2P 接続 = Bitcoin P2P プロトコルを使用して通信する 2 つのノード間で直接確立されるネットワーク接続。 「ピア」は、特定のノードと P2P 接続している他のノードを指すためによく使用され、ピア ノードとも呼ばれます。 ノードタイプ大まかに言えば、ノードは維持する状態と提供できるサービスに基づいて 4 つのカテゴリに分類されます。 1.フルノード(フル検証ノードとも呼ばれる)=トランザクションとブロックを検証できるノード。フルノードは、毎回ブロックデータベースを検索する代わりに、何らかの状態を保持します。つまり、UTXO(未使用のトランザクション出力または「コイン」)を設定します。 したがって、ビットコインノードがブロックのメタデータと最新の UTXO セットを保持している限り、検証のためにブロックチェーンの完全なコピーが必ずしも必要というわけではありません。プルーニング ノードはまさにこの動作を実装します。つまり、ブロックをダウンロードして処理し、検証に必要なデータベースを構築してから、古いブロックを破棄してディスク領域を節約します。フルノードはすべての情報を保持し、すべての新しいブロックとトランザクションを検証できるため、フルノードでもあります。 2.アーカイブノード= ブロックチェーンの全履歴のコピーを持つノード。これらのノードは、受信したトランザクションとブロックを検証できるだけでなく、検証に関連しなくなったデータ (「アーカイブ」という名前が付けられている) を含む、履歴の任意の時点のブロックとトランザクション データを照会することもできます。新しいノードがフルノードになるためには、全体の履歴を保持する必要があるため、アーカイブ ノードの存在は非常に重要です。これを実現するには、アーカイブ ノードから履歴を 1 ブロックずつダウンロードするしかありません。 3.マイニングノード= 新しいブロックを生成するノード。これには、未確認トランザクションのストレージ プール (Mempool) の維持、新しいトランザクションの検証、およびブロックを構築するためのプルーフ オブ ワーク ハッシュ パズルの解決 (つまり、nonce の検索) が含まれます。マイニング ノードは通常、ハッシュ パズルの解決を支援したり、マイニング プールに参加したりするために追加のハードウェア (ASIC など) を使用します。技術的には、マイニング プールに参加し、プールを管理するフル ノードに接続し、検証を行わずに PoW パズルの解決を支援する非フル ノードもいくつかあります (そのため、一部のマイニング ノードは実際にはフル ノードではありません)。 4.ライト クライアント= このタイプのノードは、完全な検証に必要な完全な状態を保持しませんが、他のフル ノードがこれを行うことを信頼します。ライトクライアントは、自身のトランザクションを検証するために限られた量のデータを保持できますが、すべてのブロックを完全に検証することはできません。 Bitcoin Core では、「ライト クライアント」は多くの場合、簡易支払い検証 (SPV) ノードと同義ですが、プルーニングされたノードと混同しないでください。場合によっては、ライト クライアントは、フル ノードが通常実行する操作のほとんどを実行しないため、実際にはノードではないことがあります。 ノードのその他の概念ノードには、ネットワークへの参加に影響する他の特性もある場合がありますが、それらは互いに排他的ではなく、また上記の 4 つのカテゴリのいずれとも排他的ではありません。分散型の性質と、ビットコイン エコシステムにおけるアクセシビリティへの重点により、ノード オペレーターは、P2P プロトコルを実装し、コンセンサス ルールに従う限り、実装の詳細と機能を自由に決定できます。 初期ブロック ダウンロード (IBD) : これは、ノードが現在のブロックの高さにまだ到達しておらず、古いブロックをダウンロードする必要がある一時的な状態です。フルノードは、関連するブロックをダウンロードしていない場合、関連するトランザクションを通知できません。 ブロックのみモード: フルノードがブロックとその中のトランザクションのみを検証し、未確認のトランザクション(自身のトランザクションを除く)を検証せず、メモリプールを維持せず、ピアにトランザクションを中継しないように要求する非一時的なモードです。 Bitcoin Core : このオープンソースソフトウェアは元々 Satoshi Nakamoto によって書かれ、現在は多くの貢献者によってメンテナンスされています。関連するソフトウェアは bitcoincore.org で見つかります。 Bitcoin Core は Bitcoin P2P ネットワーク内の唯一のソフトウェアではないことに注意することが重要です。一部のノードは特定の動作を実装するカスタム パッチを実行しますが、一部のノードは新しいルールを組み込んでいない古いバージョンの Bitcoin Core を使用する場合があります。どの新機能が完全なネットワーク協力を必要とするかを認識し、ノードが正しく誠実に動作することを期待せず、ノード オペレーターがソフトウェアのアップグレードを躊躇したり、新しいソフトウェアの採用に時間がかかったりする可能性があることを考慮することが重要です。 悪意のある動作: ネットワークに危害を加えることを意図したあらゆる種類の動作 (脆弱性、ネットワークの複雑さ、その他の意図しない動作は含まれません)。ビットコインは、サービス拒否攻撃、二重支払いを目的としたシビル/エクリプス攻撃、アドレスの匿名化を解除しようとするスパイノード攻撃などの可能性を含む、非常に敵対的な環境を想定しています。 ノードをサーバーとしてそれぞれのノードは、必要な情報を送信するためにピアに依存していることがわかりました。さらに、ノードは通常、RPC、HTTP/REST、GUI などの非 P2P インターフェイスを通じて、多くのユーザーやクライアント ソフトウェアにサービスを提供します。 Node をサーバーとして使用できる非 Node クライアントの例をいくつか示します。
これらの接続は P2P ネットワーク上のノードのピアには見えませんが、それでも Bitcoin の機能の重要な部分を形成します。 Bitcoin Core の開発者は、新しい機能を開発するときや、サポートする機能を決定するときに、これらの参加者を慎重に考慮します。 ノードをサーバーとクライアントとして理解できたので、単一ノードのビューを次に示します。 ノードの簡略化されたビュー P2P接続タイプビットコインの P2P 接続はすべて P2P プロトコルを使用して通信するため、「同じ言語」を話しますが、会話の内容は異なります。 Bitcoin Core の実装では、ピアの検出を容易にし、接続を慎重に管理することで、安定性 (静的接続を優先) とアクセス可能性 (新しいノードからの接続の受け入れを促進) のバランスを取ろうとします。 Bitcoin Core は、接続の開始方法に基づいて、主に 3 種類の接続を区別します。 1.アウトバウンド= ピア検出を通じてノードによって開始された自動接続。ノード検出は、確立されたノードの IP アドレスのリストを取得することから始まり、その後、独自のアドレスをアドバタイズし、既知のアドレスに接続しようとする継続的な動的プロセスになります。ノードのニーズ(IBD など)に応じて、特定のサービス(過去のブロックやトランザクションの提供など)を提供できる接続を優先できます。 2.インバウンド= ピアによって開始された自動接続(ピア ノードへ)。セキュリティ上の理由から、受信トラフィックはデフォルトで無効になっており、有効にするにはネットワークとファイアウォールの設定を構成する必要があります。 3.手動= 手動で確立された接続 (例: CLI または RPC 経由)。たとえば、信頼できる人が運営するノードに接続する必要がある場合や、ソフトウェアをテストしていてこれらの接続を制御する必要がある場合は、手動接続を作成することがあります。 P2P接続のその他の概念1. 発信接続の多様性送信接続は、受信した情報と接続期間に基づいてさらにカテゴリに分類できます。 フルリレーの送信接続では、ブロック、トランザクション、アドレス (IP アドレスと同様にピアの検索に使用され、トランザクションで使用されるウォレット アドレスと混同しないでください) を含むすべての情報を伝達することが想定されています。 Block-Only-Relay送信接続では、ブロックの受信のみを想定します。これをブロックのみのモードと混同しないでください。フルノードが 1 ~ 2 個のピアに対してブロックリレーのみの接続を持ち、他のすべてのピアに対してはフルリレー接続を持つことはまったく正常です。 One-ShotとFeelers は、ノード検出に使用される一時的な送信接続です。ワンショット接続は、新しいピアを見つけるために使用できるアドレスのリストを要求するために使用されます。フィーラー接続は、アドレスが実際のノードに対応しているかどうかを確認するために使用されます。 2. 個人差これまで見てきたように、各ノードは異なるサービスを提供し、ピアから特定の情報を検索する場合があります。各接続はバージョン ハンドシェイクから始まり、ノードは自分自身に関する情報 (最適なブロックの高さなど) を送信し、何を話し合うかをネゴシエートします (ブロックのみに関心があるなど)。また、後続のメッセージ (手数料フィルター メッセージなど) を介して接続が変更され、手数料率が最も低いトランザクションの中継のみに関心があることを示す場合もあります。 3. 阻止、切断、禁止Bitcoin Core ノードは、悪意があるか欠陥のあるソフトウェアを実行している可能性があることを示すピアの動作を追跡します。このような動作に応じて、ノードはピアをブロック (不正動作としてフラグを立て、場合によっては新しいピアのために切断)、切断、または禁止することを選択できます。 4. 権限とホワイトリストノードは、各ピアが持つ権限のリスト(要求が許可されている特定のサービスや、通常はペナルティの対象となる不正行為の許容度など)を維持することもできます。許可された不正行為は、相互に信頼するユーザーによって操作されるカスタムの個人用ライト クライアントやノードに対して手動で追加されることがよくあります。関連ノードは特定の IP アドレスをホワイトリストに登録することもできます。 5. 非対称性の重要性個々の接続は双方向ですが、非対称であることに注意してください。開始ピアは、接続を [フル リレー] 送信、ブロック リレーのみ、フィーラー、またはワンショット接続として認識しますが、受信ピアは、特定の確立されたルールを持つ受信接続のみを認識します。これにより、あいまいさにより、ノードの動作がその内部メカニズムを明らかにするのか、それとも単にその接続の性質を反映しているだけなのかに関する情報が隠されます。 たとえば、ノードがピアがブロックのみモード(つまり、すべての着信トランザクション メッセージを拒否)であることを知っている場合、そのピアから送信されたすべてのトランザクションが自身のウォレット アドレスに対応していることは明らかです。代わりに、受信ノードはトランザクション リレーがオフになっている受信接続のみを認識します。 これは、blocksonly モード、ブロック リレーのみの接続、または接続の機能を意味する場合があります。単一ノードのより詳細なビューを以下に示します (矢印の方向は、通信が非双方向であることを示すのではなく、通信を開始したノードのみを示すことに注意してください)。 ノードのもう少し完全なビュー 「完全な」地図各ノードには、ネットワーク全体に関する限られた情報しかありません。ノードは実際には自身のピアノードのみを認識し、ピアノードは自身がどのタイプのノードであるかに関して嘘をつく可能性があります。 Eclipse 攻撃が発生した場合、すべてのピア ノードが同じ人物から提供される可能性もあります。これは相手側にも同様に適用されるため、プライバシーとセキュリティの面で有利です。情報が限られていると、標的型攻撃は困難になります。多数の一時接続を作成することで、ネットワーク内にいくつのノードがあるかを大まかに把握することは可能ですが、この情報は包括的なものではありません。 たとえば、ノードがマイニング プールに参加しているかどうかは、ネットワーク上ですぐにはわかりません。どのノードがマイニングプールの一部であるかを大まかに把握し、それらが「マイニング」するブロックの数を観察することで、一部の Web サイトでは、コンピューティング能力の割合の分析を生成できます。ただし、ノードのグループや複数のマイニング プールが単一のエンティティによって運用される可能性があるため、誤解を招く可能性があります。 まとめると、次のような簡略化されたネットワーク図を想像することができます。 簡略化されたビットコインネットワーク図 この図は、ネットワークのサイズ (非常に大きい) やトポロジ (動的で不明) を示さずに、さまざまな可能性を表しています。次のような可能性があることに注意してください:
結論はこの投稿が、「ノード」や「P2P ネットワーク」という言葉の意味を明確にし、ネットワーク内のすべての参加者がどのように相互にやり取りするかを理解するのに役立つことを願っています。また、Bitcoin Core がプライバシーを保護するためにピアツーピア接続を実装する方法や、新しいノードが参加できるようにする方法についても、何らかの洞察が得られることを願っています。読んでくれてありがとう! この情報の理解と文書化に協力してくれた John Newbery 氏と Amiti Uttarwar 氏に感謝します。 この記事へのリンク: https://www.8btc.com/article/622968 |
<<: SEC は ICO を「殺した」、DeFi が次のターゲットになるのか?
>>: CoinWise で独占初公開: Jinbei HS1 マイニングマシンのレビュー
1.ハッシュレート インデックス: 新しい Bonanza マイニングは、コンピューティング パワ...
Tech Insiderによると、DataDirectという名のハッカーが、The Real Dea...
制作 |白澤研究所2021年は暗号通貨市場にとって記録的な年となり、機関投資家と個人投資家の両方がさ...
これまで、ビットコインなどのデジタル通貨は多くの政府によって規制され、拒否されてきました。そして現在...
ガイド13,000 以上のビットコイン アドレスに 100 万ドル以上の価値のあるビットコインが保管...
Coinbase は、世間の注目が集まる中、本日 Nasdaq 取引所を通じて直接株式を公開し、米...
最近、スマートコントラクトに基づく Rootstock Bitcoin プライベート テスト ネット...
5月4日、SEGエレクトロニクスマーケットのマイニングマシンの売店に、マイニングマシンホスティング...
イーサリアムの共同創設者であるヴィタリック・ブテリン氏は、暗号通貨を使用して中央銀行のデジタル通貨を...
このような優れたデータ実績も、北能グループの株価の下落を止めることはできなかった。 2018年8月、...
ICO も事前マイニングも投資家も存在しない、ビットコイン 2.0 の愛称で呼ばれるグリンは、間違...
スターメインチェーンIPFSのローンチ時期が近づいており、投資家だけでなくマイナーも期待しています。...
FTX は、有名な米国株に連動したトークンをリリースしようとしており、大きなトラフィックの波を引き...
バークシャー・ハサウェイの年次株主総会は予定通り開催された。会議でバフェット氏はビットコインは生産的...
暗号通貨では、プロの投資家や大口投資家のウォレットをフォローすることで利益を得ることができます。なぜ...