logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
commit: dc6eeb2288dd2f07b468dd7f694fa66ac309da43
parent b2b7fe286f5284d6197663bb4dc357fdb79d4755
Author: Drew DeVault <sir@cmpwn.com>
Date:   Wed,  7 Apr 2021 11:42:05 -0400

More typos

Diffstat:

Mcontent/blog/The-next-chat-app.gmi4++--
Mcontent/blog/The-next-chat-app.md2+-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/content/blog/The-next-chat-app.gmi b/content/blog/The-next-chat-app.gmi @@ -2,7 +2,7 @@ As you’re surely aware, Signal has officially jumped the shark with the introd Well, first, the next chat app should be a protocol, not just an app. A lush ecosystem of client and server implementations, along with bots and other integrations, adds a tremendous amount of value and longevity to a system. A chat app which has only one implementation and a private protocol can only ever meet the needs that its developers (1) foresee, (2) care about, and (3) have the capacity to address; thus, such a protocol cannot be ubiquitous. I would also recommend that this protocol is not needlessly stapled to the beached whale that is the web: maybe JSON can come, but if it’s served with HTTP polling to appease our Android overlords I will be very cross with you. JSON also offers convenient extensibility, and a protocol designer who limits extensibility is a wise one. -Crucially, that protocol must be federated. This is Signal’s largest failure. We simply cannot trust a single entity, even you, dear reader, to have such a large degree of influence over the ecosystem.1 I do not trust you not to add some crypto Ponzi scheme of your own 5 years from now. A federated system allows multiple independent server operators to stand up their own servers which can communicate with each other and exchange messages on behalf of their respective users, which distributes ownership, responsibility, and governance within the community at large, making the system less vulnerable to all kinds of issues. You need to be prepared to relinquish control to the community. Signal wasn’t, and has had problems ranging from 502 Server Gone errors and from 404 Ethics Not Found errors, both of which are solved by federation. +Crucially, that protocol must be federated. This is Signal’s largest failure. We simply cannot trust a single entity, even you, dear reader, to have such a large degree of influence over the ecosystem.1 I do not trust you not to add some crypto Ponzi scheme of your own 5 years from now. A federated system allows multiple independent server operators to stand up their own servers which can communicate with each other and exchange messages on behalf of their respective users, which distributes ownership, responsibility, and governance within the community at large, making the system less vulnerable to all kinds of issues. You need to be prepared to relinquish control to the community. Signal wasn’t, and has had problems ranging from 502 Server Gone errors to 404 Ethics Not Found errors, both of which are solved by federation. The next chat app also needs end-to-end encryption. This should be fairly obvious, but it’s worth re-iterating because this will occupy a majority of the design work that goes into the app. There are complex semantics involved in encrypting user-to-user chats, group chats (which could add or remove users at any time), perfect forward secrecy, or multiple devices under one account; many of these issues have implications for the user experience. This is complicated further by the concerns of a federated design, and if you want to support voice or video chat (please don’t), that’ll complicate things even more. You’ll spend the bulk of your time solving these problems. I would advise, however, that you let users dial down the privacy (after explaining to them the trade-offs) in exchange for convenience. For instance, to replace IRC you would need to support channels which anyone can join at any time and which might make chat logs available to the public. @@ -20,4 +20,4 @@ Let's quickly address the present state of the ecosystem. Matrix rates well in m It's a good attempt, but too complex and brittle. Also, their bridge is a major nuisance to IRC, which biases me against them. Please don't integrate your next chat app with IRC; just leave us alone, thanks. -Speaking of IRC, it is still my main chat program, and has been for 15+ years. The lack of E2EE, which unacceptable for any new protocol, is not important enough to get me to switch to anything else until it presents a compelling alternative to IRC. +Speaking of IRC, it is still my main chat program, and has been for 15+ years. The lack of E2EE, which is unacceptable for any new protocol, is not important enough to get me to switch to anything else until it presents a compelling alternative to IRC. diff --git a/content/blog/The-next-chat-app.md b/content/blog/The-next-chat-app.md @@ -110,7 +110,7 @@ And don't put a fucking cryptocurrency in it. <p> Speaking of IRC, it is still my main chat program, and has been for 15+ - years. The lack of E2EE, which unacceptable for any new protocol, is not + years. The lack of E2EE, which is unacceptable for any new protocol, is not important enough to get me to switch to anything else until it presents a compelling alternative to IRC. </details>