Sponsor List
MUTE protects your privacy by avoiding direct connections with your sharing partners in the network. Most other file sharing programs use direct connections to download or upload, making your identity available to spies from the RIAA and other unscrupulous organizations.

Ants display collectively intelligent behavior when foraging for food or fighting off predators. Each ant in the colony acts in a rather simple way, but together they end up doing something clever, like discovering the shortest path between their ant hill and a food source. MUTE's routing mechanism is inspired by ant behavior.

MUTE is based on research, and experiments show that it works quite well. MUTE's ant-inspired routing is light-weight, robust, and adaptive. Results from experiments in real MUTE networks show that the collective behavior of MUTE nodes quickly finds the shortest (or fastest) routing path between two nodes on the network.

"The RIAA just started bullying Internet users, but they've been bullying musicians for decades. By refusing to pay for major label (RIAA) music, we can usher in a more fair music business and keep the Internet free (as in freedom)."
--Holmes Wilson
Read more at Downhill Battle...

MUTE Technical Details


Neighbor connections in the MUTE network are built on top of secure streams that use:
  • RSA public/private keys (size selected by user at runtime) to exchange secret keys
  • AES (Rijndael) 128-bit secret keys used in CFB mode with all-zero initialization vectors to encrypt stream data
  • Separate AES keys used for each stream direction
  • Fresh AES keys used each time a new stream is established
Routes in the MUTE network are not encrypted end-to-end. Because of person-in-the-middle attacks during a routed key-exchange, secure end-to-end encryption is impossible in an anonymous network. There are more details here.

Routing Tables

MUTE's ant-inspired backrouting algorithm uses routing tables to track which neighbor connections are associated with particular sender addresses. For example, we might receive a series of messages from Alice, and these messages might be sent to us through three out of our five neighbor connections. When we receive messages addressed to Alice, we should route them back through the neighbors associated with messages from Alice. Given that we might receive messages from Alice through more than one neighbor, various algorithms can be used to decide which neighbor to send a particular message through.

MUTE uses a probabilistic algorithm for backroute selection. For each recently seen sender address, MUTE keeps a queue of pointers to recent neighbor connections on which we have received messages from that sender. For example, we might track the last 100 neighbors that sent us messages from Alice. If we are tracking three sender addresses (Alice, Bob, and Eve), and we have five neighbors (numbered 1 to 5), our routing table might look like this:


Looking at the pattern in this table, we can see that most messages from Eve came to us through neighbor 4---our best bet when routing messages back to Eve would be to send them through neighbor 4. Briefly connecting this table with our ant motivation, the connection with neighbor 4 has the strongest "from Eve" pheromone scent.

If we receive a message addressed to Alice, we select Alice's column from the table, select one of the neighbor entries uniformly at random, and route the message through that neighbor. This scheme prefers to route messages through the most popular paths, but occasionally routes messages through less popular paths.


MUTE File Sharing uses distributed search based on controlled flooding to locate files by name based on free-form query strings. While many other P2P networks control flooding using a TTL scheme, MUTE introduces a more effective and scalable mechanism called utility counters.


MUTE uses a human-readable text-based protocol. The most recent protocol specification can be read online via CVS. The ".txt" files in the "doc" directories give specifications for the various protocol layers:
(1) Message routing protocol:
Note that some of the docs in this directory describe protocols that were never implemented for the final MUTE file sharing app. MUTE file sharing is built on top of the message routing layer only. The following three files describe the message routing protocol: secureStreamProtocol.txt, messageFormat.txt, routingAlgorithm.txt. Message routing is built on top of secure streams, which are used for neighbor-to-neighbor connections.

(2) File sharing protocol (built on top of message routing layer):

Their lips move, but no sound comes out.
Who really listens to the people on TV?
hosted by:
SourceForge Logo