Seeding and Anonymization in Peer-to-Peer Systems


Peer-to-peer file sharing systems are most effective when every piece of the shared file is replicated generously. In traditional peer-to-peer systems such as BitTorrent, users are therefore encouraged to help in file sharing as long as possible, even if the peer has already downloaded the entire file. In BitTorrent parlance: the peer should not just leech (i.e. download) the file, but seed it as long as possible. However, in many cases the user is reluctant to do so: such seeding consumes bandwidth, energy, and disk space, among other problems. If the file is not replicated sufficiently, downloading the file will become slower, or may even become impossible.

These problems can be reduced with a more sophisticated reward system for sharing data. Traditionally, peers are rewarded in tit-for-tat fashion for sharing a file: giving out pieces of a file to a peer is rewarded with a higher priority for getting pieces from that peer, but has no other rewards. In tit-for-tat, seeding can not be rewarded, and is therefore inherently an altruistic act. In a more refined system giving out pieces of a file builds some form of credit for the peer node, and this credit can be spent to get pieces from any peer and for any file. This motivates peers to keep participating in sharing a file as long as possible, since it allows the peer to collect more credit to spend on future downloads.

The credit system encourages peers to keep as many pieces as possible available for downloading. In fact, a peer may participate in sharing a file purely to gain credit. Of course there are limits to this: at a certain point the available disk space and bandwidth will be exceeded, and the peer will be forced to reject download requests and remove data from disk. The peer then essentially is a cache of the pieces.

An other interesting consequence of this peer-as-cache approach is that both seeders and leechers (peers that are downloading a file) can disguise themselves as caching peers. Seeders, even initial seeders, can simply pretend that they own only part of the available pieces. By changing the advertised set of pieces over time or between peers, they can still provide the swarm with all the necessary pieces. Nevertheless, their observable behavior is very similar to that of a caching peer. Similarly, by distributing its downloading over different peers, and by selectively announcing availability of pieces to each of its peers, a leecher can collect all the pieces of a file without making this observable to any of its peers.

In this paper we investigate what impact there is on the performance of the system when a credit-based file-sharing system instead of a tit-for-tat file-sharing system. We first evaluate the performance of such a system in a swarm where all peers start with zero credit (as peers do in tit-for-tat swarms), and we then investigate the consequences of participating in such a swarm with a significant negative credit and a significant positive credit. We also investigate methods to earn credit as a caching peer (i.e. a peer that does not help to share a file so that it can download it, but only to gain credit). Finally we investigate the performance impact on a peer if it hides the full extent of its available pieces from the swarm.

In this paper we assume that a sufficiently robust credit administration system is available. This is arguably an unrealistic assumption, since the development of such systems is still an active research area, but even an imperfect administration system is viable in real life. In fact, even the self-reporting credit system we use in our experiments is justifiable in a sufficiently trusting environment. Since in this paper we focus on the impact that such a system has, we simply assume that a robust credit administration system is available.

Future work

The credit system we used in this paper gives an equal reward for every piece of a file at every moment in time. A further refinement of the mechanism would be to give higher rewards for more important pieces. For example, in a video-on-demand system a peer could give a higher reward for pieces that are urgently needed for displaying. Similarly, rare pieces or rare files may earn a higher reward when they are downloaded. Similarly, mere participation in the file sharing could be rewarded to encourage redundancy.

An other refinement is to make the earned credit transferable to another peer. This allows users of the system to help their friends, but it also allows more traditional trading: some peers could earn credit in the system so that they can sell it for real-world money. Some of the caching peers in the system could then be provided by a commercial company.

Finally, it is desirable that the original seeder of a shared file is rewarded. Interestingly, this requires a different manner of accounting, since the standard system only rewards the peer that provides the data, not the originator of that data.