Re: Bitcoin 0.3.1リリース

参加者: knightmb

Quote from: satoshi on July 16, 2010, 05:26:17 PM

良い指摘だ。8台以上のLANノードを1つのゲートウェイノードに接続するなら、ゲートウェイノードが受信接続を受けられるよう設定すべきだ。そうでないと、ゲートウェイノードが8つ以上の接続を持っている間、新しい外向き接続を試みない。接続していた外部ノードが入れ替わっても、代わりの外向き接続を作らない。受信接続を受け入れられるなら、他から十分な接続がある。

Windowsクライアントにはポート8333を開いた静的IPがあり、ゲートウェイデバイスから他のピアに接続し、他のピアも接続してくるのが見えた。しかし8を超えると、外向きのピア接続を止め、しばらくすると受信ピアも止まった。WAN上の外部よりもLAN上のピアだけを気にしているようだ。Linuxクライアントの動作は異なる。50人が接続していても、外向きの接続を求め続け、受信ピアも入ってくる。

これは自分のように何百台ものPCを使える人だけの問題だが、逆に言えば、1台のクライアントに8回以上接続するPCをセットアップすれば、しばらくするとかわいそうなWindowsクライアントは、ネットワーク上でブロックを解いているつもりが、実は過去に閉じ込められた独自のマトリックス世界に吸い込まれることになる。

もちろんこれは理論上の攻撃で、心配して眠れなくなるようなものではないが、将来のために提起しておく。これを無効化する最も簡単な方法は、IPの自己チェックコードを入れることだ。基本的に、デュアルノード/クライアントモードで実行している時に、LAN/同一IPアドレスなどからではない8つ以上の接続があることを確認する必要がある。