## 5 Attacks and Countermeasures
### P2P Countermeasures
#### 5.2.3 Countermeasures for Sybil Attacks  
[PERSON] [28] proposed three types of authentication schemes to prevent _Sybil_ attacks. Using a trusted entity (CA) to authenticate each node that wants to join the network is a centralized approach. Besides authenticating nodes centrally, each node may authenticate new nodes on its own. However, this approach does not scale to the network size. The last authentication scheme proposed by [PERSON] is based on trust relationships between authenticated nodes. This way, each node has to be authenticated only once by a single node when it joins the network. Other nodes accept this new node without further authentication. This approach is decentralized and scales to the network size. Yet, malicious nodes that do not show misbehavior until they are authenticated may misuse this scheme and allow other malicious nodes to join the network. Further, an open question is how to distinguish between benign nodes with a single identity and malicious nodes with multiple identities. To prove that one node does not have multiple identities, [PERSON] proposed that computationally expensive tasks have to be preformed by each node. By doing so, a Sybil node with \(n\) identities has to provide \(n\) times as much resources as a node with one identity, and the number of identities per node can be limited. Yet, as the resources available at a node can only be estimated, and due to the heterogeneity of devices in a P2P network, the tasks are designed for the weakest device assumed such that each node has to perform the same tasks to join the network. Due to this, malicious nodes may generate multiple virtual identities as long as they are able to perform the required tasks. Still, at least the number of identities is limited by this countermeasure for which [PERSON] proposes three tasks that demand (1) communication, (2) storage, or (3) computation resources from all identities simultaneously. An example for limiting the number of identities by computationally expensive tasks was proposed by [PERSON] [29]. Each node in the networkhas to solve _computational puzzles_ at regular intervals. This way, even nodes with high resources are limited in generating multiple identities. The puzzles require a large amount of computation to be solved but the solutions are simple to verify. Due to this, the neighbors of the challenged node can verify the solution without a high computational cost.  
[PERSON] _et al._[23] proposed to bind the virtual node to a real world identity. This way, users have to authenticate themselves instead of their node. Also paying real world resources (e.g. money) to enter the network would limit the number of identities. Yet, these approaches require a CA for reliable user authentication.  
Analyzing the relationship of nodes can also be used to avoid or at least to reduce the impact of _Sybil_ attacks. _SybilGuard_[30] is a prominent approach that analyzes graphs generated by using social networks in order to separate malicious nodes from honest ones. Besides social relationships, relationships between nodes during booting can also provide insights that can be harnessed to reduce the impact of _Sybil_ attacks. As an example, [PERSON] _et al._[31] proposed a modified routing metric to reduce the impact of malicious nodes in a DHT. [PERSON] _et al._ assume that _Sybil_ nodes join the network at a single point of the bootstrapping graph. Due to this, malicious nodes are mostly connected to other malicious nodes only and, therefore, can not affect the rest of the network. Thus, the routing algorithm can benefit when related nodes are preferred during routing.  
Further, several approaches were proposed to improve the robustness of trust-based metrics to Sybil attacks [32, 33]. While those trust-metrics were developed to limit the impact of free riders, the proposed solutions also prevent that _Sybil_ nodes improve their own reputation.