Protocols are not handed down from on high. On the contrary, they start as a seed, which grows into a massive tree (if it’s worthy, and more importantly, if it’s nurtured). These seeds are no more than ideas, planted by individuals, perhaps in a Slack channel or, more formally, as an RFC.
I got started on this train of thought as I studied network security protocols, among others, on a lazy Sunday afternoon (as one does). I started by studying IPFS -- what allows this network to operate?
As it turns out, there’s a plethora of protocols supporting this fledgling network! They’ve done a great job of separating concerns and protocols here -- it’s very clear what each part does, at least from a high level, if I don’t understand the finer points.
This, of course, let me into protocols like DKIM, S/MIME, TLS 1.2 / 1.3 (aka SSL, although that’s a misnomer), and a host of other protocols (no pun intended). What these protocols have in common is that they had humble beginnings. They started as an inkling, a wisp of a will, an idea that something could be improved.
What this is leading me to is my central thesis: that protocols should not be designed by institutions or even necessarily designed by experts. After all, if you’re an expert in a field, you’re steeped in the assumptions of that field. By all means, protocols should be vetted by experts, absolutely, but they should be designed by amateurs.
Why amateurs? As I hinted at in the previous paragraph, amateurs live free of the burdens of assumption. They come at the problem with a fresh mind, a new perspective that should at least be considered in the quest for better, more secure, faster protocols.
Why am I thinking about this, on a weekend, of all things? Because I have a smorgasbord of protocols designed in my late teens and early twenties itching to get out, protocols that describe ways to communicate with trusted people in an untrustworthy world.
In particular, these protocols describe ways to publish content under pseudonyms, and attach reputation to those pseudonyms, such that spurious sources can be systematically disregarded and trusted sources can be boosted. Your closest compadres are naturally and by default the most trusted nodes in the network, and far-off, far-out folks are naturally untrusted until proven otherwise.
What I'm getting at is this: protocols are not meant to be handed down from on high by gurus, who happen to be on a different level than you entirely. Quite the opposite! We need protocols from amateurs who live free of the burden of assumption. And this means one thing: I should start implementing the protocols I've designed...