After researching, I feel that NKN’s design is innovative overall. However, the privacy of the client cannot be guaranteed in reality. Anyone who knows the client’s public key can obtain the node address that the client is connected to through the “getwsaddr rpc” call. As a result, no matter how many nodes are there between two clients, the client’s privacy protection is ineffective. If the node that the client connects to is not honest,the IP of the client will be exposed.I’m not sure if my understanding is correct?
There are a few details how NKN protects client’s privacy:
Which nodes that the client connects to, is mostly not controllable by anyone. It is a randomized set according to the client’s public ID / public key, controlled only by the network algorithm. The client can only choose the nodes within this set.
Since neither client nor nodes can choose who can connect to who, it is not possible for dishonest node to find out IP address of particular client if dishonest node cannot force that client to connect to it in the first place.
There is no absolute privacy, but using NKN address instead of IP address while randomizing the relaying nodes can provide extra privacy protection compared to other solutions existing today.