WinMXとかWinnyとか、日本ではろくな扱いを受けていないP2Pですが、海外ではけっこう真面目に議論されてるんですよというブログ。
昨日の記事に引き続いて、今問題になりそうなBitTorrentクライアントBitThiefを紹介するよ、というお話。名前のとおり、泥棒というかフリーライドクライアントであり、簡単に言えばダウンロードしてもアップロードはしないというクライアントである。昨日紹介したBitTyrantですら、利己的なPeerの選択を行うという点で、多少はマシと思えるくらいである。実際にはまともに使える代物ではなさそうであるけれど、かといってこのような実装が利用されるようになれば、BitTorrentの仕組み自体が崩壊しかねない。
原典:TorrentFreak
著者:Ernesto
参考記事:BitThief Downloads Torrents Without Uploading
BitThiefは、公式のクライアントとAzureusをベースにした、Javaベースのクライアントである。簡単に特徴を説明すると、アップロードせずにtorrentをダウンロードすることができるというフリーライドクライアントであるとのこと。どのようにして、そんなことが可能になっているかというと、アップロードするためのピースを持たない新規に接続されたpeerであることを常に偽装するらしい。BitTyrantのようにアンチョークPeerの選択戦略をいじっているというわけではないらしい。
TorrentFreakの記事から抜粋すると
より多くのpeerとのコネクションを確立するように設計されており、同時接続数の限界は、デフォルトのクライアントで80なのに対して、BitThiefでは500となっている。このような強引な設計ゆえに、多くのルータでその処理能力を上回る接続がなされてしまい、即座にハングしてしまうということがあるそうだ。
BitThiefはBitTorrentのルールにそむく、アグレッシブなクライアントである。他のクライアントは一般に、そのswarmのpeer間で利用可能な最もレアなピースを探し出してダウンロードする。これによってそのpeer全体がhealthyな状態でいることができる*1。しかし、BitThiefはそのように設計されておらず、ダウンロードできるありとあらゆるピースをダウンロードする。
開発者は、Mininovaから'real life'torrentを7回ダウンロードすることで、性能をテストした。彼らのデータによると、7回のテストのうち、3回は公式クライアントを上回るダウンロード速度を示したものの、2回はわずかに遅く、残りの2回は公式クライアントの4倍の時間がかかるという結果に終わった。開発者は、多くのpeerをもち、seederの割合が高いSwarmによって、BitThiefの性能が最大限に発揮できるとレポートしている。さらに彼らは、これらのテストを行っている間、クライアントが1つのとラッカーからもBANされなかったと報告する。
*1 簡単に言えば、Leecher間で最も不足しているピースを優先的にダウンロードし、それを配布することで、そのピースに対する全体の負担を減らすということ。それ以外の詳細については、リサーチペーパーがあるので、そちらを参照してほしい。概略は2ページ目(p86)に記載されている。
昨日の記事でふれたBitTyrantもそうであるけれど、このBitThiefも研究目的で作成されたクライアントであるようだ。ただ、だからといって一般に公開する必要はあるのかなとも思うけれど。
TorrentFreakでは、このようなクライアントの接続を拒否するようトラッカーに求めているけれども、私もそう思う。BitTyrantですらBitTorrentというシステムを徐々に崩壊させる可能性をはらんでいるわけで、BitThiefが利用され始めれば、確実にBitTorrentプロトコルは崩壊する。
わかりやすくWinnyと比較すると、Winnyはネットワーク全体、特に該当するクラスタでデータは保持される。つまり多少のフリーライダーが存在していても、間に入るノードが当該のデータを保持してくれることになる。では、BitTorrentプロトコルではどうなるだろうか。BitTorrentはSwarm単位でデータが保持されており、そこでデータを送信するのはごく少数のSeederであり大多数のLeecherである。しかし、全てのSwarmがユーザ数が多いというわけではない。そのようなSwarmにおいてアップロードせずにダウンロードできるクライアントが入りこめば、何ら貢献することの無い奴が可能なダウンロード枠を奪い取ってしまうということになり、貢献しないだけではなく、貢献しているユーザの枠まで奪ってしまうということが起こりうる。更に、ユーザが増えていけばそのTorrent自体を(アップロード可能なクライアントで)保持している人がいなくなってしまう。
もちろん、全ての人がこのクライアントを利用するとは思えないし、他のクライアントがこのルール無視の戦略を実装するわけでもないので、完全に崩壊するわけではないにしても、少なくともその利用者が増大することで、全体のパフォーマンスが低下するのは明らかである。低下するくらいならいいじゃないかと思う人もいるかもしれないけれど、まだ定着しきっていないBitTorrentプロトコルである。当然、使えないと思えばユーザは去っていくだろう。システムとして完全に崩壊しないとしても、それによって人心が動けば、それが最後の後押しとなって崩壊するということもありうる。
BitTyrantなども「自分だけ」速くなればいいと思って導入したとしても、そういう人が増えれば疑心暗鬼になってみんなが導入しはじめるかもしれない。そうなれば、「自分だけ」速かったダウンロード速度も徐々に低下し、最終的にはみんなが遅くなり、結局は「自分も」遅くなってしまう。そうなってからでは遅いのである。
Wired BlogのMonkey BitesもTorrentFreakの記事から、この問題を取り上げてこういっている。
他の人よりも早くLostのエピソードを手に入れられなければ、世界が終わってしまうとでも言うのだろうか?
私もErnesto(TorrentFreakの筆者)と同意見だ-全宇宙の全てのトラッカーがこれらのクライアントをBANすることを望む。
私もそれには非常に同意したい。ただ、個人的にBitThiefに関しては速いダウンロードだけを求めているわけではないだろう。少なくとも、スウェーデン以外の国ではダウンロードに関しては違法ファイル共有であったとしても、違法であるとは判断されてはいない。そう、アップロードしたくないというのは、何も資源を提供するというのが嫌だというわけではなく、法に触れるのを避けたいという人が多いのだろう。まぁリスクを負いたくは無いけれど、恩恵だけにはあやかりたいという人もいないわけではないだろうけれど、それが多すぎれば結局はネットワーク自体の崩壊に繋がりかねない。それはそれで構わないとは思うけどね。ある意味ではユーザの選択ということで。業界団体は大喜びすると思うよ。
この2つのクライアントに関しては、今後試してみたいと思います。伝聞だけで結論付けるのもなんだしね。
追記
ということで、実際にBitThiefを試してみた。簡単な使い方、レビューを書いたので、詳しくはこちらから。
コメント
承認待ちコメント
承認待ちコメント