- cross-posted to:
- technology@lemmy.world
- cross-posted to:
- technology@lemmy.world
We estimate that by 2025, Signal will require approximately $50 million dollars a year to operate—and this is very lean compared to other popular messaging apps that don’t respect your privacy.
I love Signal but this is one of many problems with centralized servers. Not only can they be disabled by the gov but they cost, as seen here, tens of millions of dollars to keep running at scale.
What is the advantage? Why are we not using P2P systems? If I can download a 30GB video problem-free over and over again, shouldn’t it be simple enough to do with a 1mb text file?
A huge part of their costs is just verifying phone numbers, which is something the service does not need and shouldn’t even have.
to do with a 1mb text file
God you must be like my wife and write fucking novels as text messages.
Lol I think they probably mean like an entire chat history (or page of one), but yeah that’s pretty big.
I was just rounding up
If you are curious, you should give XMPP a shot, it’s equivalent to Signal in terms of encryption, but anyone can host their own. Signal is ideologically opposed to anyone but themselves being in control of your account, and because of that I don’t want to trust them.
That’s great except barely anyone I know uses Signal, much less XMPP
And now here I am, nostalgic for the good old days of having one chat app that could connect you to everyone over XMPP/jabber.
Yeah you could even communicate between facebook and google easily. The world didn’t have to be full of walled gardens.
Pidgin exists
Please, don’t recommend pidgin, it’s a security hellhole, and a pretty terrible XMPP client at that. If you want something with a similar vibe, check-out https://dino.im/ or https://gajim.org/ if you are more on the “power-user” side of things :)
Indeed. Xmpp is lost as a general purpose chat app for everyone. I have many issues with matrix but it’s the best chance we have, particularly with bridges.
XMPP is the IETF Internet Standard while Matrix is just another custom IM protocol managed by a venture capital funded startup which keeps losing money.
I don’t disagree with that statement; however, that doesn’t make it something the general public will embrace. Its mess of extensions are top little too late. That ship has long sailed. And I say this as someone that prefers using XMPP for 1:1 chats
Edit: Sorry, I responded to the wrong parent.
I don’t believe Matrix is better positioned than XMPP to succeed. On a technical aspect, Matrix hasn’t managed to stabilize its protocol, and they’ve been a decade into it. This has resulted in only a single organization being in charge of the protocol, the client and the server implementations. This isn’t sound, this isn’t sustainable. And now, unsurprisingly, this organization is in a financial crisis, has lost important customers, has no budget secured to maintain its staff in the next years, and recently underwent a major licensing change that we can only interpret as a shift towards an opencore model at the detriment of the regular user.
The license change is to a GPL variant from the Apache license. How does that affect the regular user? Wouldn’t it be better?
I can’t pretend to know the future, but if you read between the lines and the justifications provided, this isn’t really about AGPL per se, but about Element brokering AGPL exceptions. Practically we can expect all kinds of forks with opencore options that might enshittify the user experience in different ways, and further solidification of Element’s single-handed control over Matrix (which had been a prime concern for many years). Matrix is by the day closer to the closed-source centralized silos it was first pretending to oppose.
And don’t forget the CLA!
I hear what youre saying, I don’t like the license exceptions. I just hope it doesnt go that route.
Neither XMPP nor Matrix will ever become “the next WhatsApp”: the current internet has seen too much consolidation for the tech majors to permit it (and open and federated protocols can’t compete, do not have the marketing budget nor the platforms to promote their software, but I salute the EU’s Market Act attempt to shake-up the status quo).
But that doesn’t really matter IMO. What (I believe) is important in the grand scheme of things is that such protocols remain alive, maintained and secure, so that:
-
small-scale instances can flourish and contribute to a more resilient/efficient internet (think of family-/district-level providers ; this is the kind of service I personally offer: family members and friends at large appreciate that the messages and data that we exchange aren’t shared over some cloud or facebook server for no good reason)
-
IM identities can persist over time: if you are a business or an individual, you may want to look into having a stable/lasting contact address, that will survive the inevitable collapse of facebook/whatsapp/instagram/… If you are old enough, your current email address probably existed before facebook. Why not your IM address?
And yes, I hear you, this is rather niche, but what got me there (and on XMPP in particular) is having been long-enough on the internet to become tired of the never-ending cycle of migrations from service to service. More and more people will have a similar experience as time goes, so this niche will only grow :)
the current internet has seen too much consolidation for the tech majors to permit it
While that may or may not be true, it’s really not important for several reasons.
-
All current XMPP clients I have seen are janky as fuck.
-
No one is going to spend the billions of dollars necessary to advertise XMPP clients to end users who aren’t actively looking for them.
-
The vast majority obviously doesn’t care about their privacy.
Just seems like a fruitless endeavour.
WhatsApp started is an XMPP client, but they use lots of proprietary extensions (doesn’t matter since they don’t federate). You can build very robust and scalable messengers with it if you want to.
The open source implementations are developed by like 1-2 guys in their spare time and they’re not far behind (and sometimes even ahead) other federated messengers which received tens of millions in venture capital funding.
You can build very robust and scalable messengers with it if you want to.
What about feature-rich and with a nice UI?
Nothing in the XMPP RFCs says you can’t do that. Go ahead.
Which xmpp clients have you used? Conversations and its forks seem far from janky. Movim is nice, Dino is looking good, Kaidan is looking pretty good. Prose could be interesting.
-
-
If you need to convince your friends to use some app it might as well be XMPP compatible instead of another walled garden. If you can get your friends on board, you win, even if nobody else uses it.
Ten years ago sure, the days I’d suggest matrix instead.
I assessed XMPP vs Matrix about 8 years ago, and strikingly, the basis on which it didn’t make the cut still applies today. Here’s what I responded to a sibling post: https://programming.dev/comment/5408356
In short, Matrix dug themselves into a complexity pit with an inadequate protocol, survived for a while on venture capital money (upscaling servers and marketing at all cost), all of it dried up, and now they are in financial trouble. Matrix won’t disappear overnight, but is definitely losing the means to run the managed instances and the client/server ecosystem.
They’re supporting development of MLS for managing encryption for groups
Yup, like pretty much everyone else :) https://nlnet.nl/project/XMPP-MLS/
Is Matrix’s problem just the large scale? I thought it worked relatively well if you’re just using it for personal needs like smaller servers and personal bridges.
Matrix problems become unmanageable at scale, but the effects of the underlying complexity can be felt long before: https://telegra.ph/why-not-matrix-08-07
It works great for me for personal use yes.
Isn’t that why they built matrix 2? Or am I thinking of element 2?
Edit: it’s matrix
And Element X as client.
They are kinda shooting themselves in the foot with all their big rewrites though. Like Vector, Riot, Element, Element X (and I think before vector/riot there was another official client). And Synapse/dendrite… It feels like they spread their development over too many fronts.
If you read between the lines, Matrix 2 is practically about handing the client state over to the server (what they refer to as “sliding sync”). Realistically, this is an admission that the protocol is too complex to be handled efficiently on the user’s devices. I’m not saying there are not clear benefits (and new trade-offs) to the approach, just that in the grand scheme of things the complexity is shifted elsewhere (and admins foot a larger bill).
It’s difficult to maintain privacy in a P2P environment. In naive implementations, your IP address will be visible to all the peers you connect to. This is the case in e.g. BitTorrent.
Signal has this issue with video/voice calls as well; by default they operate on a P2P basis for performance reasons, and they expose your IP address to the second party. Signal has an option in the settings to relay voice/video calls through their servers specifically to mitigate this.
There are some workarounds for anonymizing P2P, like routing through Tor or I2P. Tor, however, has known exploits and is probably not suitable if you need to hide your activity from advanced adversaries like world governments (e.g. political dissidents, journalists, etc.)
I2P sounds interesting but I’m not deeply familiar with it. I understand that I2P clients also act as relay nodes, which puts an additional bandwidth burden on users. I’m not sure if I2P is more resilient against government-level attacks than Tor. I’d be interested to hear from anyone who is more familiar with the protocol.
I am not concerned with the people I’m actively chatting with having my IP address.
If you’re using it for personal correspondence with people you know and trust, that’s probably fine. However, a secure and private communications platform should support more extreme use cases as well.
If you’re a journalist, for example, you might need to communicate with people you do not know or trust. You could realistically be talking to someone who wants to kill you, or who is being monitored by people who want to kill you, particularly if you are covering high-profile political issues or working with whistleblowers (or are yourself a whistleblower). Even revealing information as broad as what city you’re in (which would be revealed by your IP address) could be a risk to your physical safety.
Even though I do not personally face such high-level threats in my life, I feel better using services that allow for the possibility. Privacy is a habit, and who knows what tomorrow might bring?
A MitM sniffer would be able to see the source and destination IP addresses, not just the person you’re chatting with. Even if the data is encrypted, P2P is still vulnerable to a layer 3 attack.
Will the same apply if you’re in a lot of open group chats though?
Depends on who is in the group chats. Primarily I am concerned with keeping them out of the hands of corporations, eg: Google, Meta, MS, AWS, etc. to be added to giant databases and used to profile me or unjustly subpoenaed by the gov.
I‘m not an expert on this topic, so someone correct me if I’m wrong. Signal is only storing stuff temporarily to pass it on, so I’m assuming you’d have the exact same costs even if it weren’t centralized. Maybe even more as it’s probably cheaper to have it managed in one place. I’m assuming all this would do is distribute the cost, but otherwise be the same?
I’m assuming all this would do is distribute the cost, but otherwise be the same?
Exactly. I can locally process the 1-3 messages/day I send on my device rather than having billions of messages processed on a single server.
I can even host my own Matrix or XMPP encrypted server on a $100 machine consuming ~7W and host several hundred users easily.
XMPP maybe. Matrix is a bloated protocol which costs a lot more to host.
You’re not wrong. Federation would have higher costs but distributed over more people. Even with pure P2P a-la BitTorrent things might not be significantly cheaper because you’d likely still need to host authentication centrally or federally. You’d only eliminate the message bandwidth costs.
The thing is, we already have a way to distribute the costs - people subscribe to support Signal. Some pay more, others less. Whether I run a node that serves 100 people or subscribe for $10/month, it’s somewhat equivalent. So the practical takeaway should be - if you want for Signal to keep signalling - subscribe if you can afford it.
The difference is that there’s enough unused capacity on your personal device to handle all the traffic any typical user needs to handle in a day many times over, for simple messaging. Likely, that load is so little it won’t even affect your battery life.
Wouldn’t you still need a server in between to temporarily store the messages if the other person isn’t available?
No, P2P = Peer to peer, meaning no servers are required in between.
Wouldn’t that mean both have to have a connection at the same time? What if one is offline?
Wouldn’t that mean both have to have a connection at the same time?
Yes.
What if one is offline?
How do you think you’re going to receive messages offline?
How much time does your phone spend offline?
One device can send a receipt when received. If the other device doesn’t receive that receipt it can just keep pinging periodically until it receives it.
You can also just hook up any old phone or computer, install the app, and let it run as the server.
For more info on how this currently works you can check out Keet.io
You can also just hook up any old phone or computer, install the app, and let it run as the server.
If you have a static IP address, if you want to bother with securing and maintaining it, if you’re willing to deal with downtime when something inevitably breaks, if you’re willing to deal with lost data or also maintaining a backup solution, if… a dozen other things that most people don’t want to deal with.
Funnily enough their biggest expense (sending SMS during registration) is making the accounts less private.
I imagine not paying for it and being overloaded with spam bots would be more expensive (otherwise they wouldn’t be doing it this way!)
There are lots of reasons to want fewer spam bots and verified identities other than cost.
Privacy and anonymity are not the same thing.
Anonymity is a form of privacy. While for most people it’s not necessary to be anonymous to have privacy, it’s essential in some cases, like whistleblowers or people living under dictatorships (or even in some democracies where governments keeps trying to get their paws on all metadata).
They could save a lot on infrastructure costs if they decentralised their network and stopped using phone numbers as unique identifiers.
I’m all for decentralised networks, but they do have their flaws. I use Matrix every day, and there are a lot of times the keys need to be resent, messages don’t get sent or deleted on shaky internet, etc. Issues like this make it seem broken to normies. Signal Just Works™️
Absolutely, and I use Signal for a few things. It’s not a perfect solution, but it’s far better than most (looking at you, Facebook’s WhatsApp, with your previous Pegasus attack vector).
Signal Just Works™️
Until you drop your phone in the swimming pool, and every message/photo you’ve ever received is just… gone. Forever.
Sorry but I don’t buy any claim that Signal “just works”. It’s pretty clear they care about security more than anything else even when that means making decisions that are user hostile. And that’s fine - if you feel like you need that level of security I’m glad Signal exists. But it doesn’t really align with the general public and Signal is never going to be a mass market messaging service unless something changes (Signal or the general public).
What’s weird to me is an app that excludes itself from phone backups considers SMS a valid form of authentication when a user links a device to a phone number - especially when you can necessarily link a device to a number that is already tied to someone else’s device. Like how is that ever going to be secure? Spoiler: it’s not. It’d make a lot more sense to me if users simply crated a username and shared it with other people instead of a phone number… and if they forget their password… come up with new username.
Signal provides a backup option. The auto backup for SMS on android is provided by google and likely uses google drive. I don’t know for certain but I would guess the encryption options and security of that route would be impossible to guarantee and the public backlash of signal users knowing their data was being sent to Google’s servers would be massive.
I’ve setup my signal backups to a local folder on my phone. I then have SyncThing running on my phone and home computer so it automatically gets sent once it’s created.
You want SimpleX then. No number needed.
+1 for this. From my tests, SimpleX seems fast, reliable, secure, and private. I haven’t tried daily driving it, though.
Downside is minor bugs re inviting friends.
Downside is minor bugs re inviting friends:
Gets confused by invites from Facebook (can’t automatically strip the trailing tracking code from the URL).
Fails scan of QR invite with your maybe camera app. Must scan from app.
How?
Quote from the blog post:
Registration Fees
Signal incurs expenses when people download Signal and sign up for an account, or when they re-register on a new device. We use third-party services to send a registration code via SMS or voice call in order to verify that the person in possession of a given phone number actually intended to sign up for a Signal account. This is a critical step in helping to prevent spam accounts from signing up for the service and rendering it completely unusable—a non-trivial problem for any popular messaging app.
SMS verification is expensive.
Obviously, running the infrastructure to support the entire user base is also expensive. Decentralized protocols like Matrix sidestep this problem by allowing anyone to host their own infrastructure to use the network. Even if the largest Matrix server shuts down, the network will live on, and people can migrate to another server or host their own. This distributes the costs and allows for different business models to support those costs – commercial, non-profit, cooperative, whatever. Corporations can (and do) host their own Matrix servers for their employees, for instance. I wouldn’t be surprised to see universities do the same, like they frequently do with email.
There’s an IETF internet standard for federated messaging called XMPP. Just be compatible with the standard. It also allows for extensions if you offer more than the core spec.
There’s a few forks that have done it. You could also look to Matrix to see how they’ve done it.
November 9th, the verge: Signal tests usernames so you can avoid sharing your phone number
the phone number is still going to be required for making an account, you can just choose to not share it with others and give them your username instead.
Yes but you still need one and you still lose access to your account if you lose your number.
Removed by mod
When running a business, you need to budget 3x salary for actual TCO of a staff member:
1x covers their direct salary 2x covers retirement fund, electricity, office space, and infrastructure items unlike server and laptops for corporate use etc.
The 3x multiplier is for when you’re a services company, and that represents a possibly profit margin.
So for signal, your $380k becomes $190k which in my experience is average for a US tech sw dev at a mid to early senior level.
I donate to signal monthly and I have no problems with the costs they’re posting. I work in SV tech and I’ve seen 20x worse numbers.
I’m extremely curious where you get those numbers from, I operate businesses and that doesn’t pass the sniff test.
I’ve used the 3x multiplier for staff planning at services companies since the early 2000s.
Perhaps there are regional differences, but they’ve rung true for planning billable rates of return at every services company I’ve worked at in the last 20 years here in AU.
I realise that the services aspect isn’t relevant, but having the sum of indirect staff costs equivalent to staff salary cost when office space is involved isn’t a massive stretch in my experience. (Indirect costs would include office rent, utilities, infrastructure and a share of shared functions such as IT, HR, facilities etc…)
3x is too much tbh. It’s more like 2x in total, at least going by european points of view - I don’t know what would make the US more expensive though with even less welfare. And office space in these days is a diminishing cost of course with all the hybrid/remote options. Laptops cost is pretty negligible. I think Signal does have a lot of hosting costs though.
As an American dev, you should check out other silicon valley salaries. After hearing what some folks there make 190k doesn’t make me bat an eye.
Removed by mod
I wonder why FAANG companies don’t all do that.
Removed by mod
I don’t care if employees are well paid. I do care that Signal takes 50 employees to operate. What are they all doing? This is a genuine question
Removed by mod
I can’t speak for LINE - But Kakao does a heck of a lot more than messaging; it’s one of the top companies to work for and the defacto app of Korea. It’s used for taxis, webtoons, payments, music streaming, banking, social media, OAuth, etc (and that’s on top of all its failed ventures no one uses). So yeah, it makes sense to have a lot more employees. Getting into Kakao is like getting into Google or Apple in the West.
It also doesn’t explain why Signal has 50. Signal is open source, but openly hostile to forks which throttles its development. So I wonder, what are those 50 employees doing? I genuinely would like to see a breakdown
Oh so it’s basically the Facebook of Korea.
Yeah it’s the hostility to forks and federation I genuinely don’t like. Federation is important, and forks are important so I can use the service as I wish, not as they wish me to.
Of course it’s a market and I can vote with my feet and I have. I just linked it to Matrix for availability but I don’t actively use it from my end. And I have a grand total of 1 person regularly communicating with me through it :P Versus about 50 on whatsapp and another 50 on telegram (not to mention the countless telegram groups I’m in). But they all end up in one and the same matrix for me <3
Self-hosting all these bridges used to be a royal PITA but there’s some very kind people that made this amazing ansible playbook that takes care of it all now.
Worth mentioning, as someone has for Kakao below, the LINE app has a magnitude or two or three more features than Signal. Beyond chat, the app handles payments including retail via QR, effectively has Instagram and TikTok built in, has an entire news section, and much more.
Heck, LINE the company even has permanent and pop-up merchandise stores in downtown Tokyo (Harajuku) and their own MVNO mobile carrier called LINE Mobile.
Now that said, I loathe LINE, the app. The UX is poor and the app is bloated behind belief. Only use it effectively out of necessity as someone living in Japan. The only alternative communications channel even remotely close in usage is probably Instagram chat.
You didn’t read their question, did you? Because your quote does not answer it.
Removed by mod
When Whatsapp was sold to Facebook in 2014, they had 55 employees. Considering the app had considerably less features and did not focus so heavily on encryption and privacy, Signal can be considered even leaner than Whatsapp.
Now, for the actual breakdown, they have at least the following technical teams: desktop, android, iOS, server, calls (ringrtc), core (libsignal). If we assume a team has usually 5 people (manager, Sr SWE, Jr SWE, QA, maybe PM), that’s already 30 people. On top of that, they have an in house support team (don’t know the size but I wouldn’t be surprised if they have 10ppl on the payroll considering the number of signal users) and management (CEO, CTO, CSO, VP), which will quickly add up to around 50.
Purged by creator
That is indeed a lot. They must have most of these in Silicon Valley.
However it is their choice to do so. They don’t have to be in the most expensive place in the world for developers.
I prefer sponsoring matrix though as it’s really open. Signal is just a slightly nicer walled garden. Also, Matrix doesn’t need to be linked to my mobile number which is a godsend because I tend to change those once in a while and it’s a real nightmare bringing all whatsapp contacts over.
Is it just me or is $19 million per year for 50 full-time employees insane?
Even for US salary standards.
Not necessarily.
Signal has people who are experts in their field. They engineer solutions that don’t exist anywhere else in the market to ensure they have as little information on you as possible while keeping you secure [0]. This in turn means high compensation + benefits. You don’t want to be paying your key developers peanuts as that makes them liable to taking bribes from adversaries to “oops” a security vulnerability in the service. In addition, the higher compensation is a great way to mitigate losing talent to private organizations who can afford it.
[0] Signal has engineered the following technologies that all work to ensure your privacy and security:
At least the private contact discovery is not very private:
The client calculates the truncated SHA256 hash of each phone number in the device’s address book.
The client transmits those truncated hashes to the service.Phone numbers are so not-sparse that there even was a game to text your “number neighbor”. I can probably build a pretty effective rainbow table for this with my current hardware.
You’re right, but security and privacy is about layers, not always 100% effective mitigations, especially not when the mitigation is a function (contact discovery) that requires a private list (your contacts) be compared against another one. For anyone where this is an actual security risk, they don’t have to to share their contacts. They will not know which of their friends/family are on Signal, but they can still use the service.
This feature does protect users in that any legal court order for Signal to present who is friends with who (as almost every other messaging provider has actual access to your list of contacts) is not possible. They’ve been subpoenaed multiple times[0] and all they can show is when an account was created and the last day (not time) a client pinged their servers.
Lastly, I’m not sure if this is even a feature or not but it wouldn’t be too difficult to introduce rate-limiting to mitigate this issue even more. As an example, its very unlikely that most people have thousands (or even tens of thousands) of people in their contacts. Assuming we go just a step beyond the 99th percentile, you can effectively block anyone as soon as they start trying to crawl the entire phone number address space, preventing the issue you’re describing.
My guess: People who can be as competent with security as they need are very expensive.
For the current distribution I quote from the linked source :
Current Infrastructure Costs (as of November 2023): Approximately $14 million dollars per year.
- Storage: $1.3 million dollars per year.
- Servers: $2.9 million dollars per year.
- Registration Fees: $6 million dollars per year.
- Total Bandwidth: $2.8 million dollars per year.
- Additional Services: $700,000 dollars per year.
Yes, but I was talking about the salary part, which is separate from the costs you mentioned.
It’s 19 million just for people.
Yhea no worries, I was just trying to get all the budgets together. I agree it seems quite an high budget
Also from the source:
To sustain our ongoing development efforts, about half of Signal’s overall operating budget goes towards recruiting, compensating, and retaining the people who build and care for Signal. When benefits, HR services, taxes, recruiting, and salaries are included, this translates to around $19 million dollars per year.
Not at all. That’s $380K per person if everyone is making the same. Engineers with a few years of experience at Meta make $400K+.
Don’t forget the employer taxes, insurance, recruitment costs and so on. It wouldn’t surprise me if the employees are earning on average half that.
Exactly.
Role of thumb is an employee costs roughly twice their base salary, as the employee still needs to cover insurance, taxes, sick time, and other benefits.
That leaves an average salary of 190K for the 50 employees. That isn’t much for tech.
Would be interesting to see how this compares to XMPP or Matrix. Obviously the development costs something for each of those, but the hosting costs are spread out across each of those hosting an instance.
Yup, that’s a big reason why centralized protocols aren’t sustainable. XMPP is 25 years old (which is older than almost anything else on the contemporary internet) and thriving. Unfortunately, judging by the cycle of messengers coming and dying, and people still being eagerly part of that, this isn’t something that people value very much.
this isn’t something that people value very much.
More likely something people don’t even know about since no one is out there spending billions of dollars singing the song of XMPP.
Forgive the ignorance but does xmpp have the same features as signal, particularly around e2e encryption?
It’s possible to implement XMPP with E2E encryption, there are at least 2 ways to do it.
But of course it only works if both users use a client and server that support it.
Worth mentioning that most modern clients support omemo at this stage.
Are decentralised apps like element much less expensive ?
The costs are distributed as there is not one single instance. Just like with Lemmy.
Although there is one huge instance on matrix (matrix.org), a bit like lemmy.ml here. But it doesn’t have to be like that, they can close signups or discourage them similar to the way lemmy.ml is doing that now.
The load distributes across more shoulders automatically.
If you only host a server for yourself and 10 friends it costs next to nothing, if you have a big operation it can get just as expensive, it depends on what you are willing to do.
With centralized systems there is no choice but for the one centralized host to host everything.
Then is it better to use element over signal as decentralised apps may be more sustainable for long term use ?
Element has the same costs as Signal. So far, Element has been lucky in being able to raise money by selling support contracts to governments or companies using Matrix, but even that isn’t enough, which is why Element has been raising money for the Matrix Foundation for almost a year now (with little success).
No but they do have commercial clients, even some government departments.
They’re also trying to sell Element One directly to end users which involved a few bridges like connection to whatsapp, signal and telegram. Not a bad deal for 5 bucks a month IMO, though I run mine myself because I want to.
There’s also beeper which sells a service with (a lot) more bridges than Element One but costs twice the price. Their company sponsors most of the bridge development as they employ the main bridge developer.
They should do a charity stream event or something. Do Q&A stuff, get interest of more people, and raise money?
SimpleX Chat
Indeed. Same tech as Signal (minus the new quantum insurance thing) but without needing a phone number. Unfortunately it is buggy re invitations.