BitTorrent is a Multiagent System
I am often asked for examples of deployed multiagent systems. My favorite is one that has been largely ignored by the multiagent research community: BitTorrent.
Yes, BitTorrent is a multiagent system. BitTorrent, in case you didn't know, is probably the second greatest consumer of Internet bandwidth, second only to the ole' web. Its purpose is to make it possible to distribute large files, think DVDs and TV shows, over the Internet without exceeding the host's upload bandwidth. It does this by enlisting the help of every single downloading agent as an uploader. Thus, the agents form multi-connected bucket brigade, passing parts of the file to other agents as they receive these parts (blocks).
These agents, also known as BitTorrent clients, are autonomous. Thus, one of them could decide to only download data from the others and never upload anything to anybody. We affectionately refer to these individuals as freeloaders! Luckily, there is an established way to deal with freeloaders: we punish them. In this case the best way to punish the freeloader is to cut of his downloads. That is what BitTorrent does. It implements the well known tit-for-tat strategy so that if you don't upload to me then I will not dowload to you.
Cohen's paper on BitTorrent gives more details on the operation of the protocol. I found it interesting that he claims that BitTorrent reaches a Pareto solution but he never provides a utility for the agents. His assumption seems to be that agents' only value getting the file, fast. This is a clearly reasonable assumption but does leave some room for improvement. Here are some ideas:
- What if the agents had utilities over upload/download bandwidth usage? For example, maybe I don't really care that the download takes 24 hours but I do care that my upload bandwidth doesn't get used up.
- BitTorrent is agnostic on the underlying network topology. That is, agents are given neighbors (who to up/download from) randomly by the tracker. If there are 5 agents in a subnet, say a University dorm with a fiber optic network, then it would be better if these 5 agents formed a coalition and acted as one.
- Can we entice outsiders to participate? Right now only the people downloading the file can help. With a proper incentive mechanism it might be possible to entices outside agents to participate in an active torrent. Perhaps the same tit-for-tat idea can be extended to possible future interactions? You upload this for me now and I will return the favor later.
- Continuing on that vein, can we add reputation to the protocol? For example, my agent could prefer to download only from other agents with whom we have had good experiences in the past.


Recent comments
38 weeks 3 days ago
1 year 1 week ago
1 year 2 weeks ago
1 year 6 weeks ago
1 year 7 weeks ago
1 year 9 weeks ago
1 year 10 weeks ago
1 year 12 weeks ago
1 year 14 weeks ago
1 year 18 weeks ago