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.