Scott Weber

CSE 498


Review of Freenet paper


Freenet is a peer-to-peer system designed for anonymous storage and retrieval of data.  This paper describes the design and implementation of the system.  It also gives some insight into possible performance of the system based on controlled environment network simulation.  The Freenet system was designed to provide anonymous and decentralized distribution of files, but not to guarantee indefinite storage.  As long as a file continues to be requested, it will likely stay resident in the system.  When requests for a file stop or become sufficiently spaced, the file will be dropped from the system in favor of keeping more actively requested files resident.


The authors did not mention OceanStore when discussing related work.  While OceanStore serves a somewhat different end purpose in that it is a permanent file store and is not anonymous, several ideas are common between it and Freenet.  For example, both systems provide for distributed, global storage of data and both have a concept of bringing requested data closer to the requester.  While both papers were published in 2000, surely the projects have been around longer and the authors would have had the opportunity to learn about OceanStore prior to publishing this paper.


The basic architecture of Freenet is to provide a dynamically evolving network of interconnected nodes.  Each node knows only about its neighbors, helping to maintain anonymity in the system.  Data is labelled in the system using a hash that can be generated in one of many ways.  The hash is not guaranteed to be unique across the entire system, only across some portion of the system.  Since Freenet does not guarantee persistent storage of any data, this is not an issue as far as meeting requirements.


To further protect the principle of anonymity in the system, there are many opportunities for identifying information to be modified so as to obscure the actual sender and receiver of any given message.  Two examples of this modification are: any node can choose to modify information about what node a message comes from and the hops-to-live and depth information that are used to determine how many times a message has been passed between hosts are somewhat arbitrarily calculated.  The problem of actually finding the sender to deliver a return message is solved by simply re-tracing the route the original packet sent.  When the original sender receives the response, it silently drains the response off the network.  No other node can feasibly determine the actual destination of the message.  The hops-to-live/depth problem is not fully addressed in the paper.  In order to be sure that a response message gets back to the sender, the hops-to-live of the response must be set at least as high as the number of hops it took to get the original message to the responder.  This is the purpose of the depth field, however, since the depth is only incremented with a given probability less than 1, protecting information that might allow identification of the source, there is really no way to tell exactly how large the hops-to-live count must be to return the response to the sender.  Freenet seems to be an unreliable best-effort system, so this may not be a problem, but the consequence is not really addressed in the paper.


The biggest issue that is never even touched upon in the paper is: why would one want to be a part of the network?  This is similar to the free-riding issue seen in the Gnutella network.  In Freenet, it seems that free-riding would cause an even more problematic situation.  Freenet relies on participants to share space on their hard-drive to further the network.  The more hosts that connect, the more files can be stored and the larger the network grows.  As the network grows larger, the anonymity of users becomes easier to protect as it becomes practically impossible to determine where messages have come from and where they are going.  However, there seems to be no incentive to participate in the network.  The authors never address why one would be inclined to share space and bandwidth on his or her computer to be a part of the Freenet.  What utility does the end user gain for the storage space and bandwidth that he or she gives up to the network?


While the authors fail to address this major concern, it does not detract from the usefulness of the paper itself.  The paper presents many interesting ideas on how to protect the identity of participants in a peer-to-peer network, how to protect the individual participants in the network from responsibility for the content on their systems, and how to create and maintain a dynamic, interconnected network without loss in anonymity.  I would recommend this paper for reading to anyone interested in maintaining anonymity in interconnected networks.