I am attracted to the DHT idea, and P2P systems in general, for several reasons. One is that I see that there are many applications which have high value/high demand by users, such as social networking applications or instant messaging applications, but which have low market potential. For example, most users love instant messaging, but they are either not willing to pay anything or only a nominal amount. The amount they are willing to pay is not enough to sustain the high capital costs it takes to build out a huge network for such applications, which means that the apps either disappear and go out of business or they converge into a monopoly or oligopoly that can sustain themselves with low profit margins. Both are undesirable in my opinion. My interest in P2P applications are that they can co-create the network they need without investing any capital costs.

Most distributed applications come down to naming: how do I resolve a friendly human name, such as a web address like "www.cnn.com ", an email address like "bradneuberg@yahoo.com", or a phone number like "510-938-2341", into some other kind of unfriendly identifer or resource to get the job done, such as an IP address "" or a 128-bit public key. Traditionally we have depended either on centralized naming systems, such as LDAP, or semi-decentralized systems, such as the DNS. I am interested in the research question of how we can build a generic, mostly peer-to-peer naming system that uses human-friendly names in a secure way.

I believe that some of the social and political issues that the current DNS suffers from are due to its technological underpinnings. Because there is a set of root servers that are both very expensive to maintain and which also can give undue influence to one entity, we have to create a set of governing institutions to balance them out. While these governing institutions also exist for other purposes, what would happen if we could reduce the capital and transactions costs of such a network to close to zero? This would mean that we wouldn't need businesses to maintain these networks, since the networks would be automatically co-created by P2P applications. For example, take a look at Skype, which is a P2P VoIP application, which is trying to do something very similar. If you don't need to maintain a giant, expensive white pages server then you can significantly reduce the cost you offer your end-users. Further, the naming mesh should be able to scope itself into seperate namespaces, which means that seperate applications could experiment with different naming schemes without stepping on each others toes. No longer would application programmers have to go through committees to gain permission to experiment with new ideas.