Skip to content

Remove "revoked" node ID -> node address mappings in NodeGraph #150

@joshuakarp

Description

@joshuakarp

The buckets database used to store node ID -> node address (host:port) mappings is a fixed-size structure, of n buckets containing k mappings each.

Because a public key can be revoked and refreshed, and the node ID is the public key fingerprint, there is the potential for a keynode to require a new node ID (and thus, new certificate/s as well).

This introduces a trade-off:

  • We introduce a redundant key-value pair in our buckets database, where two node IDs are mapping to the same host and port. After learning of the updated node ID, do we remove this node ID from the database altogether? Furthermore, we can have malicious actors that repeatedly perform this action, and congest the network's node databases, by introducing a multitude of keys that map to the same host and port.
  • But, other systems may require a legitimate earlier node ID -> node address mapping in order to connect (as they may not know about the newest node ID)
    • NOTE: do we actually want this node ID to be considered valid anymore though? That is, If the public key has been refreshed, would we not want to remove this node ID -> node address mapping entirely? Essentially, when a public key is refreshed, we would therefore consider it as a "new node" in the network, where all other nodes are unaware of it.
    • Perhaps we still do. While the node ID may be considered as compromised, the host and port that it maps to would likely remain unchanged?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions