Bitcoin Faucet の変更
Bitcoin Faucet(https://freebitcoins.appspot.com/)から (https://freebitcoins.appspot.com/%EF%BC%89%E3%81%8B%E3%82%89) 5 Bitcoin を無料で受け取った人々の IP アドレスを観察していた。
すると……いくつか興味深いパターンが見えてきた。例えばこのようなコイン取得リクエスト:
79.117.152.158 - - [21/Jun/2010:12:17:02 -0700] "POST / HTTP/1.1" 200 1234
79.117.159.197 - - [21/Jun/2010:12:16:24 -0700] "POST / HTTP/1.1" 200 1234
79.117.135.236 - - [21/Jun/2010:12:10:23 -0700] "POST / HTTP/1.1" 200 1234
79.117.163.238 - - [21/Jun/2010:12:08:50 -0700] "POST / HTTP/1.1" 200 1234
79.117.155.23 - - [21/Jun/2010:12:08:07 -0700] "POST / HTTP/1.1" 200 1234
79.117 の範囲の IP アドレスを使っている新しい Bitcoin ユーザーが実際にたくさんいるなら申し訳ないが……おそらく誰かがそこから自分の分以上の無料 Bitcoin を得ていると推測している。
192.38.95.*のアドレスブロックからの怪しいリクエストもいくつかある。
そこで Faucet にいくつかの変更を加えた。不正行為をしようとしない限り気づかないだろうが、不正行為をしようとすると、コインを得るために CAPTCHA を解く必要がある。
それでも不正行為が収まらない場合は、不正行為の疑いがある場合に CAPTCHA を要求し、ビットニッケル(0.05 Bitcoin)しか配布しないようにコードを修正する……
ギャビン、配布する Bitcoin アドレスを全部ブロックすればいいんじゃないか? 自動生成は簡単だろうか?
ギャビン、配布する Bitcoin アドレスを全部ブロックすればいいんじゃないか? 自動生成は簡単だろうか?
自動生成は簡単だ(Bitcoin プログラムに新しいアドレスを生成して返すよう要求するコードを書くのは簡単だ)。
おもしろいことに、このフォーラムでは同じ人たちが両方の立場でプレーしている――一方では完全な匿名性を維持する方法を考え出そうとしていて(例えばヘロインストアのスレッド)、そしてここでは BTC Faucet を保護するためにある意味正反対のことをしようとしている。
最高だ 😄
多くの大手 ISP は接続するたびに新しい IP を付与するが、通常は同じクラス B(a.b.?.?)内だ。クラス B ごとの支払い最小間隔を設けるべきかもしれない。
問題が解決できない場合は、管理可能になるまで付与するビットコインの量を下げ続け、常に CAPTCHA を要求することもできる。
全員に対して CAPTCHA を有効にしたことで、Faucet から流出するコインの量は十分に管理可能な細い流れにまで減速した。
それから、匿名性と非匿名性の話だが、Bitcoin Faucet を実装する際、IP アドレスとビットコインアドレスを結びつけないように注意した。だから、IP アドレス 96.240.216.119 の誰かが今日の 12時30分にビットコインを受け取った、ということは記録に残っている。そしてビットコインアドレス 1P3rpbSybuGgeL1bRwCJFWbn4yBjRNQrbY を持つ誰かが