ビットコイン・インスティテュート

IPトランザクション削除の主張

4件のメッセージ BitcoinTalk aceat64, bitcoinex, サトシ・ナカモト 2010年9月16日 — 2010年9月19日
aceat64 2010年9月16日02:57 UTC

IPアドレスへのトランザクション送信は削除するか、少なくともデフォルトで無効にすべきだ。

コミュニティの多くのメンバーが述べているように、これはまったく安全ではない。また、攻撃者がBitcoinノード運用者の身元を特定できる可能性もあると考えている。例えば、ネットワーク上の様々なIPに0.01 BTCを送信し、IPとBitcoinアドレス(Bitcoinアドレスは自動生成される)を記録する。Bitcoin取引所の情報にアクセスできるか、Bitcoinを受け付ける店舗やサービスを運営していれば、そのIPアドレスをそのサイト/サービスのユーザーと紐付けることができる。取引所の場合、そのIPをユーザーのPayPalや銀行口座と紐付けることが可能だ!

もう一つの攻撃手法は、ターゲットノードに接続してIPトランザクションを開始することだ。ターゲットは新しいアドレスを生成し、その時点で切断して再び始める。これはサービス拒否攻撃として使える可能性がある。

aceat64 2010年9月16日21:23 UTC

デフォルトでIP取引の受信を無効にするパッチを作成した。-allowiptransactionsオプションまたはbitcoin.confファイルのallowiptransactions=trueで有効にできる。

パッチはこちら:http://github.com/aceat64/bitcoin-patchwork/blob/svn/patches/disable_ip_transactions.patch

自分のカスタムクライアントにはすでにこのパッチを組み込んである:http://github.com/aceat64/bitcoin-patchwork

bitcoinex 2010年9月19日00:54 UTC

ただ、IP取引は一切削除しないでほしい、お願いだ! http://bitcointalk.org/index.php?topic=1042.msg13160

IP経由での受信は、特に使用する意図がない限り無効にするのがおそらく最善だ。これは誰も使っていない大きな攻撃対象領域であり、デフォルトで開いている必要はない。

店舗のケースでは、通常、特定の注文やアカウントに関連付けられたビットコインアドレスのみを発行する自動化システムを通じて顧客に支払いを送ってもらいたいだろう。サーバーのIPアドレスに対して自発的に送られるランダムな身元不明の支払いは役に立たない。

一般的に、IP経由での送信は有用なケースが限られている。プロキシを使わずに直接接続する場合、中間者攻撃のリスクは許容範囲かもしれないが、プライバシーはない。プライバシープロキシを使用する場合、中間者攻撃のリスクは受け入れがたいほど高くなる。SSLの実装にすべての労力を費やしたとしても、通常CA証明書を取得する手間をかけるのは大規模な店舗だけであり、それらのケースのほとんどでもビットコインアドレスを使用する方が良いだろう。

この変更をSVN rev 156にアップロードした。有効にするスイッチは -allowreceivebyipだ。

このバージョンの送信者は「Recipient is not accepting transactions sent by IP address」(受信者はIPアドレスによる送信トランザクションを受け付けていない)というエラーが表示される。古いバージョンの送信者は「Transfer was not accepted」(転送は受け付けられなかった)と表示される。

スイッチには別の名前を使った。-allowiptransactionsだと送信も含むように聞こえるためだ。スイッチのより良い名前があれば、再度変更できる。