You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To improve privacy during kademlia lookups it was proposed to add double hashing support to kad. The following part of the notion describes the changes pretty well:
Now
Client sends Req(CID) to DHT server nodes
DHT server nodes lookup if one of their provider records matches CID and if yes, return it
If not
a. DHT server nodes compute Hash(CID)
b. DHT server nodes look for the closest peerIDs (according to the XOR distance) to Hash(CID) in their routing table and return them to the client
After
Client sends (Req(Hash("CR_DOUBLEHASH" || MH)) to DHT server nodes, where MH is the MultiHash included in the CID
DHT server nodes lookup if one of their provider records matches Hash("CR_DOUBLEHASH" || MH) and if yes return it
If not
a. DHT server nodes look for the closest peerIDs (according to the XOR distance) to Hash("CR_DOUBLEHASH" || MH) (without having to compute the hash of the CID themselves) in their routing table and return them to the client
This change would increase reader privacy, by making it harder to track what a reader is looking for. It's part of the ongoing effort to increase privacy in libp2p.
Open Questions
How do we want to transition?
Are you planning to do it yourself in a pull request?
Yes.
In the interest of making it easier, I would like to see #3130 to be resolved first.
The text was updated successfully, but these errors were encountered:
umgefahren
changed the title
feat(kad): Add double hasing for privacy to libp2p-kad
protocols/kad: Add double hasing for privacy to libp2p-kad
Nov 25, 2022
Description
To improve privacy during kademlia lookups it was proposed to add double hashing support to kad. The following part of the notion describes the changes pretty well:
Now
Req(CID)
to DHT server nodesCID
and if yes, return ita. DHT server nodes compute
Hash(CID)
b. DHT server nodes look for the closest
peerID
s (according to the XOR distance) toHash(CID)
in their routing table and return them to the clientAfter
(Req(Hash("CR_DOUBLEHASH" || MH))
to DHT server nodes, whereMH
is the MultiHash included in the CIDHash("CR_DOUBLEHASH" || MH)
and if yes return ita. DHT server nodes look for the closest
peerID
s (according to the XOR distance) toHash("CR_DOUBLEHASH" || MH)
(without having to compute the hash of the CID themselves) in their routing table and return them to the clientDue to this change in behavior, the change necessary will be minimal but breaking. We have to figure out how we want to transition here. Also look at the corresponding notion document: https://pl-strflt.notion.site/Double-Hashing-Migration-Notes-75d723deb0d44a19a95615c5ccda3165
It probably makes sense to introduce these changes with prefix lookup and record encryption (also discussed in Notion Page by PL).
Relevant documentation:
Related:
Motivation
This change would increase reader privacy, by making it harder to track what a reader is looking for. It's part of the ongoing effort to increase privacy in libp2p.
Open Questions
Are you planning to do it yourself in a pull request?
Yes.
In the interest of making it easier, I would like to see #3130 to be resolved first.
The text was updated successfully, but these errors were encountered: