Peer-to-peer applications may well need the ability to hide a user’s identity without compromising authentication. In addition it may also be desired for data held within a peer-to-peer system to be kept in an anonymous state.
For hiding user’s identity, pseudonyms rather than IP addresses can be used to identify users. Furthermore, mapping data communications through disinterested and trusted third party proxies can also help.
Data can be hidden (using encryption technologies) from the node hosting it. This would disallow the node from knowing the contents of the hosted data. For example, data can be held on nodes using a standard filename (such as ‘data’), there should be no file extension that would allow the recognition of the type of file being hosted. Retrieval could still be efficiently performed by storing the files in directories that are named as the hash value of the file being contained.
In terms of network architecture, a semi-centralised model could arguably provide the most support for anonymity. Users can register their details with the index node, but ask that these be not made available to any other users. Yahoo uses such an approach. The advantage of the semi-centralised approach is that there exists one point where the details of each node exist, this can be important for certification and reputation tracking. With a decentralised architecture this information can be withheld entirely from the rest of the network.