What characteristics must a new protocol have to spread and survive?
Gemini has two key characteristics which have permitted its spread and long-term survival:
These traits are likely necessary but not sufficient. Please let me know of any others I've missed.
For any network protocol to be practically usable between strangers, it needs to be layered on top of some existing part of the network stack, such as TCP/IP, Ethernet, etc. For conventional protocols on top of TCP/IP, there is a further de facto constraint: the advent of firewalls and NAT entails traversing a bunch of "middleboxes" that try to inspect and impede general traffic.
The economics are such that a lot of consumers will buy some kind of cheap router off a company like Belkin who also may four-way power adapters and other dumb devices. Neither they nor their vendor initially cares too much about some yet-to-be-invented Internet protocol, and a lot of the middleboxes will inspect traffic and block anything they don't recognise.
The blocking is of course not truly arbitrary: basically some middleboxes will block any traffic they can't characterise. They can look at the port number, and the wire protocol, and work out what is going on and whether to permit it. How can they characterise encrypted traffic though? Well, there are a couple of ways, but it is in the nature of encryption that almost no information about the actual content of the traffic is going to be available, only size, timing, overall enveloping protocol, etc.
This partitions internet traffic thus:
It's easy for middleboxes just to block any unrecognised encrypted protocol, but the game theory of this doesn't work out well as they get pushback from customers and others. So a widespread practice in relation to unrecognised protocols is:
It follows that smolnet protocols cannot survive which fail to use TLS. TLS lets you go around the random Belkin middlebox. If your protocol isn't a "circumbelkinising" protocol, it won't spread and survive.
It further follows that unencrypted new protocols are a waste of time, new protocols that are encrypted other than TLS are largely a waste of time, and arguing that encryption is undesirable on grounds such as complexity or cost are also a waste of time.
There is a link below to a brutal speech by Jana Iyengar about new protocols, TLS and middleboxes.
Jana Iyengar on The death of an end-to-end internet (and a way forward) [PWL SF] 08/2019
Over the very long term, putting effort into an extensible protocol is just building something for free that will get captured and turned against you by Big Tech. Extensibility is in a trade-off with governance: if you want pluralistic governance of a protocol, beyond what a tiny number of huge organisations are prepared to permit, you have to make that protocol inextensible.
See, further, on my blog:
Extensibility and weekend projects
So extensibility (which is a kind of Darwinian adaptability in itself) is in tension with survival as a community-run project, which is interesting. A possible path is finding an evolutionary niche and then fossilising. Not necessarily a bad thing.