Remix.run Logo
▲ fwn an hour ago

Discovery is important and a hard problem, worth making some trade-offs for. Signal published a good blog post about this, including this passage:

> In order to turn the address book on a device into a social graph for Signal, the Signal client needs to be able to determine which of the device’s contacts are Signal users. [...] The obvious problem with this method is that the hash of a user identifier can almost always be inverted. [...] This method of contact discovery isn’t ideal because of these shortcomings, but at the very least the Signal service’s design does not depend on knowledge of a user’s social graph in order to function.

Src.: https://signal.org/blog/private-contact-discovery/

edit: Also, Signal is not peer-to-peer. It is a centralized, client-server architecture.

▲mmooss 12 minutes ago | parent [-]

When they say "social graph for Signal", afaik they don't mean 'on Signal servers' but 'social graph on your phone'. It's a personal social graph that exists on the end-user device.

I don't remember how the hash issue is dealt with, however.

> Signal is not peer-to-peer. It is a centralized, client-server architecture.

It's not a P2P mesh, but Signal's servers are involved only for certain functions. I think communication tx is P2P - to send a message via server (used to hide sender IP address from onlookers and the recipient), you need to enable relaying. Possibly finding the recipient still relies on the server - to what IP address to I send my message for Abel?