Unique node identifiers



Summary:

The idea of creating an anonymous, opt-in, unique node identification mechanism has been proposed to help counter sybil attacks. The proposed mechanism would give every node the opportunity to create a node ‘address’/unique identifier that could even come in the form of a Bitcoin address. The node on first installation generates and backs up a private key. The corresponding public key becomes that node’s unique identifier. If the node switches to a new software version or a new IP, the identifier can remain constant if the node operator chooses.Asking a node for its identifier can be done by sending a message the command ‘identify’ and a challenge. The node can then respond with its unique identifier and a signature for the challenge to prove it. The node can also include what software it is running and sign this information so it can be verified as legitimate by third parties.This mechanism would add a small but useful piece of data when compiling lists of active nodes. Any register of active nodes can have a record of when a node identifier was “first seen,” and how many IPs the same identifier has broadcast from. Moreover, this information would make it easy to identify patterns. If a huge new group of nodes appeared on the network with no history for their identifier, they could likely be dismissed as sybil attacks. If a huge number of nodes that had been reporting as Bitcoin Core for an extended period of time started switching to a rival implementation, this would add credibility (but not certainty) that the shift was more organic.However, some people argue that anything that makes Bitcoin less private is a step backward, and absolute node count is pretty meaningless since only fully validating nodes that participate in economic activity really matter. Nodes are, by design, not supposed to be identifiable in any way, including persisting identities across IP changes or when connecting over different networks (e.g., clearnet/tor).


Updated on: 2023-06-11T22:02:29.194909+00:00