How is sybil attack stopped in NKN?

Taken from Discord


someone explain to me how sybil attack is stopped in NKN?


@Pzy Just to be clear: in any permissionless p2p system, sybil attack can never be stopped, but we can raise the cost of attack. There are quite a few things we did, e.g.:

  1. node id is effectively random (verifiable, unpredictable, uncontrollable)
  2. topology is effectively random (verifiable but uncontrollable) given random id
  3. relay path is verifiable and almost uncontrollable
  4. only one node allowed per public IP address
  5. we can control the admission cost by adjusting a parameter

Combining these we can get that, in order to perform sybil attack, the attacker needs to control quite a lot ip address and machines and generate lots of nodes to control a large portion of the network. In addition to that, for every id he generates, we can control how much he needs to pay (currently 0). This cost will be quite trivial for honest people, but for attackers the cost grows proportional to the network size.