wowana.me
website source; use git clone git://wowana.me/wowana.me.git to clone this repository.
decentralisation---lets-start-with-messaging.md (10966B)
1 # decentralisation - let's start with messaging 2 <!--[time 201712050619.04]--> 3 4 in lieu of the recent net neutrality talk, a mesh networking project 5 started out of 4chan /g/ in hopes of building a better, open internet. I 6 have always been interested in decentralisation, distribution, and 7 peer-to-peer mesh, so I set up [a wiki](https://mesh.gentoo.today/) to 8 aid in collaborationm, to showcase helpful documentation for new users, 9 and to connect ourselves with other meshnet projects around the globe 10 such as [sudomesh](https://sudoroom.org/wiki/Mesh) and 11 [/r/darknetplan](https://reddit.com/r/darknetplan). best of luck to /g/ 12 and to the other groups in achieving this goal for an improved internet. 13 14 I currently cannot contribute to the physical network itself, as I do 15 not have the appropriate hardware, nor am I in any close proximity to 16 anyone who would be interested in forming a local mesh with me. but I 17 can still think about what could be the best software and protocols to 18 use as replacements for current proprietary, trust-based systems. one of 19 those things is messaging. 20 21 currently we have instant messaging such as Facebook Messenger, XMPP, 22 and SMS; group messaging such as IRC, Slack, and Discord; voice chat 23 such as telephony, Mumble, TeamSpeak, Skype; forums, Reddit, 24 imageboards, NNTP; and E-mail. and of those, I personally want people to 25 contact me over XMPP, E-mail, IRC, or SMS. that means I have four 26 addresses I can offer someone and I have to rely on the assumption that 27 the other person uses at least one of those protocols. already, this is 28 a hassle, right? all these protocols and products offer certain 29 solutions to issues in other protocols, so we're spread thin, and either 30 we have to use them all or we have to cut ties with the people we want 31 to contact. on top of that, we have several contact lists to keep up 32 with, and overall it's just one big complication. 33 34 ## comparison 35 36 first off, why do we have so many protocols? what do they perform 37 differently? why do people stick with them? I'll try to explain what 38 sets each platform apart from the rest so we can gather an idea of what 39 people want. 40 41 for messaging: SMS, XMPP, social networks 42 (Facebook/Hangouts/AIM/Yahoo!), Discord, matrix.org, IRC, and other 43 services such as WhatsApp are prevalent. SMS has origins from the phone 44 network as a result of the rise of mobile phones, and now that many 45 people have a phone number, it's no surprise why SMS is also in common 46 use: everyone has it and it's practically free. social network and 47 proprietary IM services have been around for ages, and people might 48 stick with them because they've had accounts since the initial craze and 49 because with some of them they can maintain a relative level of 50 anonymity, since they don't have to use their phone number unlike SMS. 51 or, they might stick with them because almost everyone today has a 52 Facebook or Google account for social networking or mail, so as with 53 SMS, <q>everyone has it and it's practically free</q>. 54 55 with IRC we see the introduction of easy-to-join group chats, as well as 56 the idea of ephemeral identities. IRC is a simple yet robust protocol 57 that allowed anyone to join with very little barrier to entry, choose 58 whatever nick they want, and either join channels or talk in private 59 queries with friends. because of its simplicity, it has achieved 60 widespread adoption by the FOSS community, by governments and 61 businesses, and by hobby groups. it has also been used as the backbone 62 for several popular services such as Twitch and Pesterchum. 63 64 XMPP, Discord, and matrix.org all come about at different times, but 65 they all have a common theme: they allow easier use on multiple devices. 66 XMPP and Matrix also have protocols for end-to-end encryption, and 67 Discord has the added benefit of voice (and now video) chat. they are 68 essentially the <q>next level up</q> of IRC, although they all cause as 69 many issues as they try to fix. XMPP is poorly implemented, and because 70 it uses (nonconformant) XML for its stream protocol, we see few people 71 willing to actually create their own clients (as opposed to something 72 like IRC where I can make a rudimentary client in my sleep if I wanted). 73 there are so many XMPP extensions (see the <abbr title="XMPP Extension 74 Protocol">XEP</abbr>) and because of this, each client is more than 75 likely only going to support their own portion of the available XEPs, 76 creating a gradual divide between clients and essentially devolving the 77 entire protocol to its bare basics, removing any perceived benefit it 78 has over other simpler protocols such as IRC. Discord is proprietary, 79 there are no plans to allow for privately-hosted infrastructure, there 80 are no plans to open the Discord protocol, and apparently there are no 81 plans even to fix most of the bugs regarding usability as well (at 82 least, they haven't replied to my E-mails with anything hopeful yet). 83 and then there's the new player, Matrix, which aims to become a 84 federated (like XMPP) protocol with group chat (like IRC), message 85 history (like Slack), and encryption (with 86 [double-ratcheting](https://en.wikipedia.org/wiki/Double_Ratchet_Algorithm)). 87 too bad Matrix's implementations are slow and buggy, the specification 88 relies on HTTPS and JSON (arguably not the best choice if you're signing 89 and encrypting messages, or if you're sending any binary data because it 90 all gets base64-encoded), and the whole air of it has a hint of 91 unprofessionalism to me. they seem to value UX features such as in their 92 official client, Riot, over security and performance fixes. 93 94 ---- 95 96 for voice, the contenders are thinner: telephony, Skype, TeamSpeak, 97 Mumble, Google Voice, and Discord. like SMS, telephony should be obvious 98 -- it was the first real thing to come out that let people communicate 99 verbally over long distances. Skype is the most famous to offer voice 100 and video chat, albeit as a proprietary service, but since it pretty 101 much popularised this, it is still in wide use today. while Skype used 102 to be peer-to-peer, Microsoft bought it out and now the infrastructure 103 is centralised, which brings us to TeamSpeak: a client/server VoIP 104 application targeted to gamers. however, TeamSpeak is proprietary just 105 as Skype is, so up next is Mumble which is a libre, open standard for 106 VoIP that sadly has less exposure in the gaming community than the 107 alternatives. Google Voice is in use because, again, people have Google 108 accounts and it's essentially one-click to get a VoIP phone number 109 through them. I mentioned Discord's popularity for voice earlier; it 110 claims to be a direct competitor to Skype and TeamSpeak so its goal is 111 to keep on the competitive edge against those two. 112 113 ---- 114 115 for forums: NNTP/USENET, BBSes, software such as phpBB, imageboards, and 116 Reddit. this is pretty much laid out in chronological order, and for the 117 most part it's a natural progression (USENET was out first, before the 118 Internet, and everyone used it for communication and filesharing; BBSes 119 were an answer to dial-up modems since they were text-only with limited 120 graphics and filesharing capabilities; conventional forums from the rise 121 of the WWW, where everyone wanted their home on the Internet). 122 imageboards are set apart by their anonymity and ephemerality, while 123 Reddit pretty much replaces the need for forum communities by allowing 124 everyone to have a subreddit regarding their own topic or interest, with 125 the added bonus (or misfeature, you decide) of being able to vote on 126 submissions and comments. 127 128 ---- 129 130 and then of course, we have a need for electronic mail. so far E-mail is 131 the de-facto answer for this; most online services require one to have a 132 working address in order to register or perform any sort of transaction. 133 Bitmessage and I2P-Bote (among others) exist as well, but at this point 134 they're only used by enthusiasts, and they each have their own issues. 135 136 ## culture 137 138 all of these platforms have their own communities, and with these, 139 cultures were born. everyone has their own memes and inside jokes, 140 related either to members of the community or to the platforms 141 themselves. this creates a form of attachment and nostalgia around the 142 platforms, which is another reason people will stick with any given 143 medium even well after it has <q>died out</q>, decreased in popularity, 144 been obsoleted by another objectively better platform. 145 146 if we want progression, we're going to have to set the belief aside that 147 our community will die out with the medium. the two are realistically 148 disjointed and we should treat it as such. 149 150 ## so, what's the issue? 151 152 as I have mentioned, we have so many communication platforms, resulting 153 in so many addresses to manage, and each with their fair share of issues 154 (IRC and XMPP are growing less standard between clients as features are 155 added; Discord, Skype, Google, Facebook, et cetera are proprietary and 156 when they die, the whole platform dies -- they aren't sustainable; phone 157 and SMS are not secure at all and have severe limitations due to the 158 dependence on the phoneline (and increasingly cellular radio) networks. 159 most of these don't have decent standards for message signing, 160 encryption, and secure transport. some of these have spam issues, or 161 compatibility issues, or UX issues, or scalability issues, or moderation 162 issues; the list goes on, really. 163 164 ## what's the fix? 165 166 I've been thinking for a while that we would probably best benefit from 167 a protocol which is conceptually sound: required baseline of security, 168 required open standard, required decentralisation so there is no single 169 point of failure, forward compatibility with future advancements in 170 crypto and transport, et cetera. right now I think I've written enough 171 about this, but I will surely update when I solidify some of my ideas 172 toward an ideal communication platform that will aim to fix the issues I 173 see with existing platforms. right now I believe in a 174 <q>registration-but-not-registration</q> system where anyone can join, 175 automatically have a keypair generated for them that will be used as 176 their handle, so they can chat without worrying too much about coming up 177 with passwords or verifying E-mail addresses or whatever. I want to keep 178 mobile devices in mind; I personally want something I can bring up once 179 on all my devices and have the same message history, same chatrooms and 180 queries, same state overall. I don't want to tell people that I'm 181 unavailable on one platform because I'm on my phone or whatever; this 182 shouldn't be something I need to worry about. I shouldn't need to tack a 183 PGP or OTR key or a TLS certificate on top of everything else; the chat 184 should be secured and verifiable out of the box. 185 186 for a forum platform, I'm not entirely sure yet; I have been focused on 187 IM, conference, voice, and mail for now. I want those four things 188 together, all using one address, all using similar high-grade open 189 encryption schematics, all using reliable redundant decentralised 190 infrastructure. I want a mix of all the good from the other platforms, 191 and I want it to be easy to use and adopt.