Each person is linked to a lot of people through their social network. The social network is a network of friends, friends of friends (FoFs?), friends of friends of friends, etc. A social network has features that are useful to exploit creating an overlay network. If the social network is used as a bases for a P2P overlay network friends will be connected to friends. Users are less selfish in their behavior towards friends. They may even be altruistic. Friends also have friends. You trust your friends and your friends trust their friends. These FoFs? are therefore probably more trusted than random other peers. Suggested is that the trust of two peers is dependent on the distance of those peers in the social web. Therefore FoFs? are also more likely to behave well. The further the distant between two peers the lower the trust. If misbehaving peers are identified they will probably be removed as friends in the web and therefore move to the edges of the social network. The creation of the knowledge of the social network around a peer is not part of the scope of this report but is essential in a social P2P network. However the implicit trust in the system helps to keep content in the social network correct and keep malicious peers on the edge of a social network. Also people tend to be more willing to share resource towards friends because they expect the favor back or are altruistic in the future which can greatly increase availability. Social networks are also clustered. People tend to have a lot of friends in common . This clustering is useful because friends are clustered and therefore friends can be used to connect to other friends. Also people with the same interest tend to be connected to a lot of common friends. This clustering of interest can be used since useful content will probably be around users of the same interest . This enhances the chance of correct semantic routing. Peers can also expand the social network with peers with similar interests of taste in content and cluster with them in the same way. This would increase the reach of the social web. Throughout the social web most peers are within a relatively close to each other. Research has shown that two random people anywhere in the world are on average separated by only by a small number of intermediate social acquaintances. The average number of hops in the USA is six. On the Internet, the average number of hops is five to seven. This social nearness makes it possible to connect to almost any peer in the world using only a small number of hops around the social web. Each peer should know its surrounding social web with a number of layers of FoFs?. By using the route in the social network almost any peer can be connected. And the scalability of such a system can be very good.
In order to use a social network in a P2P system the system creates a virtual social network. The challenge is to find a person which is classified as a friend and be able to connect to that peer. This requires identifiable peers and peer must not be able to spoof their identity. So a way to authenticate a user is required. I introduced permanent identifiers (PermID) for each peer, a strong authentication scheme using a challenge response system. This PermID represents the identity of a peer on the network and peers can verify that identity. To build the social P2P network users are required to add people to build their social network. The current Tribler system allows users to copy their PermID and send it to their friends. These friends can manually add the friend to their list of friends. This process is too difficult and ineffective for most users and prohibits a quick adaption of the system by users. Upon first use of the system a user must be able to quickly build up a social network in the Tribler network. This is the bootstrap phase of the social network. Given that peers are identifiable by their PermID the question is how to find the PermID of a person. This enables us to find the PermIDs of friends so a social network can be build. Second we should be able to connect to a peer given the PermID. The Internet Protocol (IP) address and Port number at which a peer is connectable must be found. Our approache uses the social networks to find the IP of a PermID.