> We could really > do with some local and semi-local stuff e.g. instant messaging (as an > extra incentive for people to add their friends, for example).
The more I've thought about f2f networks the more important local communication has seemed. Global search and routing are problems from "light" networks that are not only harder to implement in "dark" networks, but make less sense there. Rather than taking the internet or traditional p2p networks as our model, I think we should be looking at im, irc, livejournal and myspace. "Friend management" and communication with friends are a significant part of these systems; browsing and searching are relatively unimportant. Friend management seems to have at least three aspects: presence, visibility, and introductions. Presence means being able to see when your friends are online; fproxy already offers that. Visibility means being able to see who your friends are friends with, and to choose which friends are visible to which others. At the moment freenet takes the most secure but least social approach: friends are invisible to one another. But in order to encourage the third aspect of friend management, introductions, it might be useful to allow people to make selected friends visible to selected other friends. Introductions are important for a friend-to-friend network because they allow people to make new connections without out-of-band communication. The introducer must be trusted not to perform a man-in-the-middle attack, but by definition the introducer is someone the other two parties already trust. (For extra security, the new friends should be encouraged to confirm one another's keys out-of-band at the earliest opportunity.) How do we make introductions as painless as possible? 1) Allow users to make selected friends visible to selected other friends, and make it easy to browse your friends' friends, possibly by hosting myspace-style profile pages for your friends. 2) Provide a link on the profile page for requesting an introduction to a friend's friend - the friend's friend will be sent a request, and if the request is approved, the introducer will give each friend the other friend's ref (including the public key). 3) Automatically confirm your friends' public keys through other mutual friends, to make MITM attacks more difficult. For example if Bob introduces Alice to Carol, and Alice and Carol subsequently discover that they both know Dave, they should automatically exchange refs through Dave as well, making it harder for Bob to perform a MITM attack. 4) Provide a "web of trust" page showing whose ref was obtained or confirmed through whom, and which refs have been verified face-to-face. 5) Allow users to host local blogs and chatrooms that are only accessible to their friends. Again, provide an easy interface for friends to request and approve introductions. Anyway I'm sorry if this sounds like a long list of feature requests. This is the sort of interface I've been planning for my own vapourware f2f network and I thought some of the ideas might also apply to freenet. Any thoughts? Michael
