I've been sitting on these thoughts for some time, but after not progressing in my thoughts more for a week or two, I'd love to share them with you. You may recall Moxie's blog post about how the software ecosystem is constantly moving and what this means for decentralised services.
Signal, which is developed by Moxie and Open Whisper Systems, is a tool for secure messaging between mobile devices. It has faced criticism since Signal is built on a centralised platform. The criticism was fueled even further by an idea that LibreSignal, an independent build of Signal, would not be able to federate and talk to the Signal servers.
In a response to this critique, Moxie wrote about how he feels that innovation can not happen as quickly and easily as needs be with federated and decentralised structures. To prove his point, he argued that the premise that the internet could not have gotten to where it is without interoperable and federated protocols is false.
We got to the first production version of IP, and have been trying for the past 20 years to switch to a second production version of IP with limited success. We got to HTTP version 1.1 in 1997, and have been stuck there until now. Likewise, SMTP, IRC, DNS, XMPP, are all similarly frozen in time circa the late 1990s. That's how far the internet got. It got to the late 90s. - Moxie Marlinspike
I would postulate that Moxie is right in his reasoning, but that his reasoning misses the larger picture. If I'm right, we're a year or a bit away from a federated structure for secure messaging. And we'd have gotten there thanks to Moxie and his work.
It all has to do with infrastructures.
Infrastructures for communication depend on having a larger user base. The more users you have signing up, the more likely it will be that someone you meet and want to communicate with is using the same communications infrastructure. Once you get a significant portion -- I would estimate some 30-50% -- of a community to use your infrastructure, it will be very difficult for the remaining 50-70% of the community to stay away from using the same infrastructure. You'll automatically attract more users by sheer necessity of communication.
If you have the right users, you can get away with significantly less than 30-50%: you can benefit from the majority illusion, but even that will only take you so far. No one can reasonably expect to develop (and control!) clients which are suitable for everyone's use, and the user base is limited by it. Open Whisper Systems is nowhere near such a user base, and there's tremendous growth potential in Signal still, but it may soon start to be difficult to see the same growth as it has to date.
Facebook, to take another popular example, doesn't have the same limit. Not because they have more resources, but because they use a communication technology (the web) which is based on the 90s technology which Moxie finds so troublesome. It's the common denominator for pretty much everyone using the web today, which is what makes it powerful. Despite mobile phones, I'd argue that Facebook became what it is due to them using a communication protocol which was not theirs, but a common standard. Had they enforced control over the clients used to connect, they would probably not have scaled in the way they did.
For communication infrastructure which should scale, we need common standards which everyone can use. For other software, which does not depend on scale, the standards aren't as important: it could be perfectly fine to have just one client for your tax software, as long as that's open source.
But this is also a matter of maturity: when a field is being established, it helps to have control over everything. As it grows, open standards and decentralisation become more important and people start to expect it to scale and grow wider. Nothing is as irritating as having a client for encrypted SMS and not being able to communicate with your friend, just because she happens to use a different program.
When those expectations mount, the need for a proper response will grow, and that response will be a decentralised structure which does not depend on control over individual applications.
But where Moxie and Open Whisper Systems finds themselves today is very natural. They are where every new infrastructure starts: in the establishment phase, where several actors independently of each other work within their own communities to build similar infrastructures with limited or no need for interoperability or decentralisation.
Our train lines started out the same way, with multiple train companies establishing and building complete tracks with stations and trains. Electricity was locally sourced and under the control of the local electrical company. Telegraph lines were point to point and operated individually. As was telephone networks, where you had a massive amount of local telephone companies operating in different communities.
Until it wasn't any more. All of these infrastructures are now, to various degrees, federated. You may have multiple providers operating parts, but they are all interconnected, because the need for interoperability trumps the need for centralisation.
Moxie is right in his reasoning, and his conclusion is understandable based on where the field is today. And even if, as Moxies puts it:
... at this point it seems that it will have to do.
The ecosystem is moving, as is the environment in which it operates. Put a reminder in your calendar a year from now and revisit the situation then: at that point of time, the ecosystem will have moved, the environment around it will have moved, and I'd be greatly surprised if it hadn't inched closed to a federated structure.