Clearing Up Misconceptions About Full Nodes

提供: tezos-wiki
移動先: 案内検索

この記事は2016年3月に書かれ、当時のビットコインコミュニティでよく見られる誤解を解消しました。

=神話:世界全体で約5500個[フルノード|フルノード]

この番号は[1]から得られ、開いているポート上のすべてのノードに接続しようとすることで測定されます。

問題は、すべてのノードが実際にプローブできるオープンポートを持っているわけではないことです。ファイアウォールの背後にあるか、またはユーザーが接続をリッスンしないように構成しているためです。

多くの人がファイアウォールの背後にポートを転送する方法を知らず、帯域幅が高価になる可能性があるので、フルノードがいくつあるかは誰も知っていません。ポートが閉じているノードの数は少なくともさらに数千人。

オープンポートを持つノードは、ブロックを新しいフルノードにアップロードできます。他のすべての点で、それらは閉じたポートを持つノードと同じです。しかし、オープンポートノードが測定可能であり、クローズされているため、ポートノードはクローズドポートノードがフルカウントを表していると誤解しています。

総ノード数を非常に大まかに見積もる[編集]

(2016年6月6日のザイモスによるオリジナル調査、18:30 UTC。)

getaddr.bitnodes.ioによると、5834個のリッスンするフルノードがあります。彼らがすべてデフォルトのBitcoin Core設定を使用していると仮定すると、ネット上のネットワークに117の接続スロットを提供します(提供された125から消費された8を差し引いたもの)。 SPVノードは通常4つの接続スロットを使用し、フルノードは通常8を使用します。したがって、ネットワークは最大で約170,644個のSPVノードまたは85,322個の非リスニングフルノードを一度にサポートできます。これは、Bitcoinネットワークにいつでもオンラインで接続されているウォレットの数の上限です。 (それよりも多くの人がすぐにオンラインになった場合、人々はさまざまな問題を見ていきます。)これにはBitcoinネットワークに実際には接続していないウォレットは含まれません。

私が長時間走っているリスニング・フル・ノードを見ると、現在、インターネット経由で40個のフル・ノードと10個のSPVノードからの着信接続と、Tor非表示サービスによる11個のフル・ノードがあります。だから私が隠れたサービス接続を無視すると、それはやや珍しく、私のノードが普通ではないと仮定します。この時点(40 * 5834)/ 8 = 29,170の完全ノード(5834リッスン)および(10 * 5834)/ 4 = 14,585の軽量ノードをネットワークに接続します。

Luke-jrには、すべての完全ノードをカウントするスクリプトがあります。http://luke.dashjr.org/programs/bitcoin/files/charts/software.html

神話:これらのノードの数は重要であり、かつ/または少なすぎる[編集]

開いているポートを持つノードは、履歴ブロックをアップロードして bootstrap new nodesを助けるため有用です[利用可能なブロックチェーンの冗長コピーの数の尺度ですと同期する。使用可能なノードからウォレットを単純に同期させるための帯域幅容量は不足していません。存在する場合は、クラウド・サーバーをレンタルすることによって帯域幅を追加することができます。

信頼、セキュリティ、プライバシーは今のところ重要です。 完全なノードは、すべてのビットコインのルールが追跡されていることを確認できます。 インフレーションのスケジュールに従うようなルール、同じコインを2回使うことなく、秘密鍵の所有者に属さないコインを使うことなく、ビットコイン仕事をするのに必要な他のルール(例:[難しさ])

bitcoinを信頼できないようにするには、完全なノードが必要です。もう銀行やペイパルのような金融機関を信用する必要はなく、単に自分のコンピュータでソフトウェアを実行することができます。単純に言えば、重要な唯一のノードはあなたが使っているノードです。

神話:ネットワークを利他主義に依存するようにノードを動かすインセンティブはありません[編集]

個々のビットコインのユーザーは、フル・ノードを実行し、それをウォレットとして使用することが、合理的な自己利益に大きく影響します。

信頼できない[編集]

[[File:Petertodd-screenshot-mit2016-talk-gullible-lite-clients.png | 500px | thumb | alt = Petertodd alt text |偽のトランザクションを喜んで受け入れる軽量クライアントの例。攻撃者が何らかのハッシュ・パワーを持っていた場合、このトランザクションに確認もあるようにすることができます。]]

あなたの財布として完全なノードを実行することは、ビットコインのルールが壊れていないことを確実に知る唯一の方法です。コインがないというルールは、所有者に属さない、コインが2回使われていない、スケジュールの外にインフレが起こらないこと、システムを動作させるのに必要なすべてのルールが守られていないこと(例:[[難易度]他の種類のウォレットには、サードパーティのサーバーを信頼することが含まれます。

ビットコインがデジタルゴールドである場合、フルノードの財布は、受け取った支払いが本物であることを確認するあなた自身の金細工職人です。あなたは、それが本物であることをチェックせずに現金銀行券または金貨を受け入れないでしょう、同じことがビットコインに適用されます。

セキュリティ[編集]

フルノードで行われるこれらのチェックはすべてセキュリティを向上させます。軽量ウォレットには、フル・ノード・ウォレットに影響を与えない多くの攻撃が可能です。

これは単に賢明なパラノイアではなく、フルノードのユーザーがビットコインの生態系の残りの混乱の影響を受けていない現実の例があります。 2015年7月4日の誤ったチェーンフォークは、多くの種類の財布に影響を与えました。このイベントのwikiページはこちらですJuly_2015_chain_forks#Wallet_Advice

数か月前に更新されたノードソフトウェアがフォークの影響を完全に受けなかったことに注目してください。他のすべての財布には確認が必要か、サードパーティ機関が正しいバージョンを実行していることを確認する必要がありました。交換、市場、オンラインストアなどのビットコインビジネスは、常にセキュリティのために完全なノードを使用する必要があります。

プライバシー[編集]

フルノード・ウォレットは現在、Bitcoinを使用する最もプライベートな方法です。誰にもあなたに属しているビットコインアドレスを知る人はいません。それ以外の軽量財布では、サードパーティのサーバーにクエリを実行する必要があるため、アドレスはあなたのものに関する情報を漏洩します。 Electrumサーバーはどのアドレスがあなたに属しているかを知り、一緒にリンクすることができます。 ブルームフィルタリングにもかかわらず、 BitcoinJに基づく軽量ウォレットは、財布や盗聴器に直接接続されたノードに対してプライバシーをあまり提供しません<ref> http://jonasnick.github.io/ブログ/ 2015/02/12 / privacy-in-bitcoinj / BitcoinJのプライバシー</ ref>

いくつかのユースケースでは、そのようなプライバシーは要求されないかもしれません。しかし、完全なノードを実行してウォレットとして使用する重要な理由は、完全なプライバシーの利点を得ることです。

神話:クラウドサーバーのインスタンスにノードを設定してそのまま残すことができます[編集]

完全ノードを実行する利点を得るには、それをウォレットとして、好ましくは自分が制御するハードウェア上で使用する必要があります。

これを行うほとんどの人は、完全なノードをウォレットとして使用しません。残念ながら、BitcoinはBittorrentと似た名前を持っているため、健全なネットワークにとってはアップロード容量が最も重要だと考えている人もいます。上で説明したように、帯域幅と接続は今日問題ではありません。信頼、セキュリティ、プライバシーがあります。

神話:完全なノードを実行することはお勧めできませんが、ほとんどの人は軽量クライアント[編集]

これは2012年の一般的なアドバイスでしたが、以来、完全なノードソフトウェアはユーザーエクスペリエンスの面で大幅に改善されました。

ブロックチェーンを格納するためのディスク領域を確保できない場合は、enable pruningを実行できます。全体として、これには900MB以下のハードディスク容量が必要です。

ブロックを他のノードにアップロードするために帯域幅を確保できない場合は、[2]に、帯域幅要件を削減または排除するオプションが多数あります。これには、接続の制限、帯域幅の設​​定、リスニングの無効化などが含まれます。オプション-blocksonlyもあります。ノードは未確認トランザクションをダウンロードせず、新しいブロックのみをダウンロードします。これにより、未確認のトランザクションが見られずに帯域幅の使用量が半分以上になります。

ブロックチェーンの同期は2012年以降も改善されています。 headers-firstやlibsecp256k1のような機能は、初期同期時間を大幅に改善しました。

UTXO setの多くをメモリに保存する-dbcache = 3000を設定すると、さらに改善できます。ディスクからの読み込み時間が短縮され、同期が高速化されます。テストでは、[[ブロックチェーン]全体を[** https://github.com/bitcoin/bitcoin/pull/6954#issuecomment-154993958 ** 3時間30分**未満で同期させることができました**これらのすべての効率改善を得るには、Bitcoin Core 0.12以降が必要です)2h 25m

完全ノードをウォレットとして実行する方法[編集]

私はビットコインのあらゆる適度なユーザーは、完全なノードを実行し、それをウォレットとして使用することで利益を得ると思う。これを行うにはいくつかの方法があります。

  • 完全なノード(例えば、ArmoryJoinMarketなど)によってバックアップされたウォレットソフトウェアを使用する
  • あなたのフルノードのみに接続する軽量ウォレットを使用してください(例:[Multibit]]自宅のノードに接続する、Electrum自分のElectrumサーバーに接続する)

何を求めている?メリットは多く、短所はそれほど悪くありません。より多くの人々がこれを行うほど、ビットコインの生態系はより強固で健康的です。

さらなる読書[編集]

- トゥルースコイン

Pieter Wuilleのフルノード信頼性の説明

bitcoin.orgの検証に関する記事

Reddit comments

参考文献[編集]

Category:技術 カテゴリ:教育