* dons wizard hat
You think you're joking, but peer-to-peer, capability-based distribution is the future of web design. Federation protocols (like ActivityPub, on which run Lemmy, Kbin, Mastodon, et. al.) are a big step up from single points of centralization like Reddit and Twitter, but most implementations are still fundamentally client/server architectures which give server owners power over users. Some of the people who invented ActivityPub have already moved into a new phase of distributed systems architecture. "Second-party" is not a terrible way to think about it.
WASM (WebAssembly) is one of the key technical breakthroughs that will facilitate much richer distribution; it allows many languages to run natively (fast) in common browsers. No longer will we all be necessarily bound to the abomination that is Javascript. With WASM, backend guys like me can run our fancy languages/databases right on your browser, building stronger meshes of user computers acting like lighter versions of federated servers. Together with Free Software ─ the legal right to share and change code ─ this technology represents the democratization of the Internet.
So why hasn't this glorious revolution happened already? Well, WASM support is still not ubiquitous and there are still serious architectural challenges whose solutions are very much in progress. Security is a big one. With centralized infrastructure, the most efficient way to handle security is a concept called ACLs (Access Control Lists), which are like firewalls ─ lists of rules for who can do what. With ACLs, each node has all the tools and a copy of the rules. This does not work when you want powerful nodes to run independently under the control of complete strangers.
The way forward is Capability-Based Security, which includes three big ideas:
- Each node has only the tools that it needs.
- When a node needs a new tool, it has to ask its neighbors to borrow it.
- Just because a node is borrowing a tool doesn't mean it can share it with others.
Cryptographically-enhanced capability-based security makes the computational power of individual nodes irrelevant to their role in the larger system. WASM contains an implementation of this idea ─ it's called WASI (WASM System Interface) ─ but there are different approaches with different tradeoffs. The one I'm studying right now is called Spritely Goblins, developed by some of the people who invented ActivityPub. You can read more at https://spritely.institute.