5 ms·
Is there a reason, when they have control of the client software and the protocol, that they don't introduce computational cost to establishing contact? Like, i
by Tistron 5y ago
Is there a reason, when they have control of the client software and the protocol, that they don't introduce computational cost to establishing contact?
Like, if I send a message to a particular number, and their client receives a message from me for the first time, it responds with "prove that it's worth it for you to message me: find an `n` character string that together with `random string` hashes to 5 leading zeroes", or something like that.
Somehow I imagine that doing a few seconds of computation per initiated first message is unproblematic, but doing it for thousands or millions of numbers starts to be a problem.
Why is this not done?
- tptacek 5y agoIf the server is mediating that proof-of-work system, then the server is building a list of contacts, and not doing that is the #2 goal for the whole Signal project. If the client is doing it, you need to come up with a system that is resilient to people using a bunch of different devices, getting new phones, etc. This is a theme about building Signal: they're doing everything on hard mode, because they start from the premise that they don't get to know everyone's contacts. Virtually every other mainstream messaging system, including the ground-up E2E encrypted ones, keep a complete plaintext contact database serverside.
- Tistron 5y agoThanks. What is the problem with "people using a bunch of different devices, getting new phones, etc" in what I suggested? If I make a fresh install, then next time a friend messages me, it costs them a few seconds of delay in sending their first message because my client asks them to prove themself. I don't see the problem, but I imagine there are problems since smarter people than me are not doing it this way. I'd like to understand what I am missing here. I guess tweaking the difficulty to be actually difficult for a server farm, yet possible for an old device would be the main problem.
- tptacek 5y agoI'm not saying it isn't potentially workable, just that it's deceptively hard to deploy across the whole Signal userbase. A company like Slack or Discourse could build something like this easily, because it'd be mostly managed from the servers, which they control, working from a single source of truth about who's talking to who. Signal doesn't have that luxury.
- kijiki 5y agoThe issue with these sorts of HashCash schemes is that legitimate users need to PoW their messages on a battery powered phone with a basic CPU and GPU. Spammers can use big, mains-powered GPUs, or better yet, botnets full of stolen CPU-time from mains-powered desktops/servers/etc.
- GekkePrutser 5y agoI think with the current climate crisis we should be wary of introducing more unnecessary computation. The internet already uses a substantial amount of the world's energy. We should try to bring this down, not up. And bitcoin showed how quickly the technology catches up with such requirements by using GPUs, ASICs etc.