This PR prevents a fingerprinting attack via GETADDR responses that allows correlating dual-homed nodes’ identities across different networks.
When a node is connected to multiple networks (e.g., clearnet and Tor), it keeps separate ADDR response caches for each network. These are refreshed about once per day (randomized between 21 and 27 hours). See → https://github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L3519. An attacker can collect ADDR responses from supposedly different nodes and compare the timestamps. By looking at overlaps in responses, they can correlate Tor and clearnet identities — effectively linking them back to the same node.
To prevent this, the PR removes timestamp-based correlation by assigning a fixed timestamp in the past (10.5 ± 2.5 days) to all entries within a given cache. Timestamps are uniform within each network-specific response, but differ across networks, preventing attackers from correlating identities via timestamp overlap.
More details on this attack here: https://delvingbitcoin.org/t/fingerprinting-nodes-via-addr-requests/1786
This is joint work with @danielabrozzoni