BitThief is based on the mainline client and Azureus, and is written in Java. The client uses some simple alterations that make it possible to download torrents without uploading. It constantly pretends to be a newly arrived peer that doesn’t have anything to offer itself.
Additionally, the client re-announces itself many times during the start of the download, and it ignores the 30 minute announce interval. The goal is to establish as much connections with other peers as possible. BitThief then exploits other peers, and opens up a lot of simultaneous connections, 500, compared to 80 on default by the mainline client. One of the downfalls of this aggressive approach is that it will instantly crash a lot of routers. It took less than 4 seconds before my router gave up when I attempted to download a popular Ubuntu release.
BitThief is an extremely aggressive client that disobeys all BitTorrent rules. Other clients generally look for the rarest piece that’s available among the peers in the swarm, this ensures that the swarm stays healthy. BitThief doesn’t, it just takes every bit it can get.
The developers tested the effectiveness of BitThief by downloading seven ‘real life’ torrents from mininova. According to their data, BitThief outperformed the mainline client in 3 out of the 7 test, 2 times it was slightly slower, and in the other 2 tests it took almost 4 times longer to download the torrent with BitThief. The developers conclude in their research report that swarms with a lot of peers and a high percentage of seeders give the best results for BitThief. They further report that the client didn’t get banned by any tracker while running these tests.
The “selfish” BitTorrent client, BitTyrant suddenly looks very social compared to BitThief. It is remarkable what people can get away with in the name of science. Of course, it is needless to say that this client will seriously hurt the performance of BitTorrent transfers, and I seriously hope that it will be banned and blocked wherever possible.