Web3 is not decentralization thumbnail

Web3 is not decentralization

Published 2021-11-11

Web3 is not decentralization

It's not. Really. I feel like this should be obvious enough that I don't need a whole article (the third one about cryptocurrency in a row!) to elaborate on this but I suppose I do, actually.

The thing that got me enough of a flurry to get me out of my accidental-hiatus was mostly that big tech corporations like Reddit, Twitter, and Discord decided all of a sudden to go all in on NFTs as a bid to "decentralize". Reddit's in particular kind of pisses me off. Around May of 2020, they started up a "community tokens" system on /r/FortniteBR and /r/CryptoCurrency, both subreddits I have never visited. They're now, according to a now-deleted Tweet by a Reddit developer, planning to convert Reddit's karma points into these community tokens.

Reddit's general plans are the most concrete of the three major tech companies going all in (Twitter seems to be adding NFT tagging to uploaded images, Discord seems to have mothballed their plans after public outcry) so I'll spend a little bit of time dunking on their public presentation on the matter. The TL;DR of that is that Web 1.0 was a great decentralized frontier, and Web 2.0 was a bunch of walled gardens which had numerous downsides. I agree with these points, as I've previously outlined in my articles on Microsoft FrontPage or community centralization. Reddit is joining other companies in the "Web3" bandwagon, which is poised to give voting share of the website back to the users via the allocation of Ethereum-based cryptocurrency.

I'll properly tear this to shreds later, but just keep that in mind for now.

Decentralization on the Old Web

Let's do some history yet again and set the Wayback Machine to the 80s, during the genesis of the Internet. At this point in time, the internet could be broadly split into two camps: the university/military ARPANET, and the more ad-hoc dial-up modems.

ARPANET (the direct technological precursor to the modern Internet) was explicitly designed with redundancy and routing flexibility in mind on a network level. That way, if the Soviets took down important cities or strategic datacenters, so long as some path from point A to B existed (even if it was a wireless microwave link), electronic messages could get through. This had some drawbacks, mostly that various file-sharing services such as Gopher, FTP, or later HTTP still required that particular host server to be up and operational. If California got nuked and/or invaded, you weren't accessing any files at Stanford University. But at the same time, development of protocols such as e-mail, IRC, and in particular Usenet ensured the ability to transfer messages from server to server across the internet, creating a single source of truth across the entire network.

Getting away from the professional ARPANET a bit, aspiring bedroom hackers and otherwise disconnected corporations were busy creating bulletin board systems. I detailed this a bit in my article on the history of Microsoft FrontPage but generally, system administrators would create a program on their computers that other computer users could communicate with over a modem. This created a direct one-to-one connection between the two computers over the existing telephone network. Naturally, though, this presented a problem: to talk with a different computer, you needed to hang up and dial another number. Only the most important information that was downloaded and re-uploaded was typically transferred from server to server, leading to the creation of a lot of silos, in the same sense that Web 2.0 has them nowadays.

To work around this issue, several workarounds were devised. One such example was UUCP, Unix-to-Unix copy. By logging into a public Unix server connected to a series of peering servers, you could manually type in a route for a message to travel to reach a specific server or user. Early versions of e-mail used addresses like www-beaver!teltone!dataio!holley. Naturally, this fell by the wayside once access to the Internet was common and any server could connect to any other server. Another approach, more popular with amateur BBS operators, was FidoNet. This was a protocol that allowed for BBSes to sync messages and data with other systems by offloading long-distance calling charges onto dedicated root hubs in the same area code.

All of these early interchange standards allowed a internet to come together in the time before central services were considered remotely viable. Over time, BBSes were replaced by internet service providers, which allowed you to dial into a local number and access worldwide internet services such as email, Usenet, the world wide web, etc. Some of these managed to grow into major players for their time; AOL flourished with its exclusive content, graphical interface, and walled gardens, while Geocities (formerly Beverly Hills Internet) quickly ditched everything except its web hosting component. But ultimately, the walled garden approach fizzled away in favor of ISP-agnostic open standards, and ISPs now focus on maintaining and improving upon broadband infrastructure instead of providing any services of their own.

Case Study: Usenet

Usenet can be seen as a very early version of Reddit, in the sense that it's one network with a variety of different "news groups". While a common use of Usenet was to provide news over the internet, it also was used for a host of different online communities for just about any interest or topic you can think of. These days, Usenet is rarely used for its intended purpose, instead being repurposed as an underground method for distributing pirated movies and software. That said, you can still browse the discussion parts of Usenet using Google Groups or through an actual newsreader at Eternal September.

Internet Mail and News for Windows 95 opened to a discussion thread on Usenet

As a very, very simplified model, you send messages very much like emails to a newsgroup server, where they'd be posted for the world to see. You could reply to other messages in a thread, or send an email directly to a post's author. Comments would expand in a tree-like view very similar to Reddit's commenting system. Newsgroup servers can elect to host certain newsgroups, and regularly sync with the rest of the network to keep everything up to date. Usenet messages could also be exchanged with the existing FidoNet system. It's a very nicely designed system for the time, in my opinion.

The largest issue, though, is the lack of good moderation controls. Most newsgroups on Usenet are unmoderated, which was perfectly fine until spammers and whatnot began breaking the unwritten rules of the space. Tools to retroactively remove messages are limited due to the inherently decentralized nature of Usenet. System moderators can send cancellation messages, a process which was automated by cancelbots. This was considered controversial at the time, as it was considered to infringe on free speech rights. (My preferred moderations style, on the other hand, is closer to just banning bigots.) The alternative is a moderated newsgroup, where messages are first sent to a newsgroup administrator for approval. More information on that here, if you're curious.

Usenet largely died out due to the proliferation of large binary files causing ISPs to pull the plug on the service, along with entirely too much spam to properly counter. In response, highly moderated message boards and blogs on the world wide web started to proliferate before eventually dying out to social media sites such as 4chan, Reddit or Facebook.

Case Study: IRC

IRC, an acronym for Internet Relay Chat, is an instant messaging protocol devised in the late 1980s. Originally, it was designed so that every user would be on the same network, but very shortly after, schisms in the community caused the creation of several competing networks such as FreeNode (now Libera Chat), EFnet, and IRCnet. Smaller networks such as tilde.chat also exist.

An IRC client open to a discussion about IRC clients

IRC is a distributed system in the sense that multiple servers within the same IRC network can sync up and host the same channels, and relay messages from server to server. You simply connect to the closest server to yourself, and the backend relays the messages appropriately. You could use just about any client to connect, as IRC is a simple and open protocol compared to today's complicated and/or proprietary protocols. It was quite easy to attach bots or "bouncers" (bots that would save messages for later viewing, as IRC doesn't support message history) as needed, seeing as they were nothing more than specially programmed clients.

IRC is (generally) only capable of text messages, and does not have great mechanisms for user registration, message scrollback, or almost any other feature of newer chat applications such as MSN, Slack, Matrix, or Discord. It suffered a decline in 2003 as more compelling alternatives came to existence, although it's still frequently used in open source tech communities and the backend of services such as Twitch.tv's chat.

Case Study: IPFS

IPFS, the Interplanetary File System is a modern example of a decentralized protocol. It solves the problem of documents and files only having a single source of truth, by letting anyone host a copy of a file to provide network redundancy.

The way IPFS works is a little clumsy, essentially using the hash of a file as its permanent address. There are ways around this, such as IPNS in combination with DNSLink, which gives DNS entries a static address that can refer to any file on IPFS.

...this section is short because there isn't a whole lot to write about it. It hosts files. Neocities has support for it. Contrary to popular belief, most NFT artwork is hosted on it. The only real problem is that a file can go missing in the future because no remaining hosts exist, but that's not really a problem that can realistically be solved. It does its job quite well.

Sidenote: Censorship and Free Speech

A natural consequence of letting anyone be able to host anything is that, well, they can host anything. Stuff you agree with, stuff you don't, stuff you'd consider absolutely immoral. I'm personally of the philosophy that the Paradox of Tolerance is a thing and that voices that advocate for harm ought to be kicked to the curb. And decentralized systems people do that, surprisingly enough! If one particular group on a network is quite toxic, the community can simply fork it, exclude them, and keep on going, effectively isolating bad actors into an echo chamber. Mastodon's server block system has shown this to be quite an effective solution, as well as the recent self-destruction of FreeNode and migration to Libera Chat.

Granted, this isn't foolproof. Parler and Kiwi Farms are examples of ostracized communities that still do demonstrable harm, like perpetuate the conspiracy theories that led to the Jan. 6 attacks, or cause the suicide of numerous people due to constant harassment. Kiwi Farms is barely hanging onto their connection to the outside internet, as their DNS and DDOS protection is solely provided by Cloudflare (the only remaining company willing to work with them) and their web hosting is all done in-house by "1776 Solutions", a host so openly despised that they have exactly one peer to the outside world.

Ultimately, we're trying to solve sociocultural issues with technology, which is nigh-on impossible. The real solution is for people to not be awful bigots, something that I haven't the slightest clue how to accomplish.

Web3's concept of "decentralization"

Now that I've spend entirely too much time delving into 20-40 year old protocols, let's snap back to modern reality. In the burgeoning crypto space, there exists the concept of the "DAO", decentralized autonomous organization. Ethereum.org describes them as "like an internet-native business that's collectively owned and managed by its members." On its face, this sounds a lot like a workers co-op, something that I would be a huge fan of.

Ethereum as a cryptocurrency mostly exists to execute code on the Ethereum Virtual Machine. This is a frankly bizarre architecture (stack-based, 1024 items deep, 256 bit words, it's odd) whose state is shared across every Ethereum miner across the globe, and whose inputs and outputs are tokens, either fungible (like the Ethereum currency) or non-fungible. I discussed this topic in a bit more detail in my previous article on NFTs.

By having an organization with hard rules perpetually stored on the blockchain via smart contracts, you can enforce a requirement for votes before spending any currency on a project. Said votes (and code and funds and everything else) would be entirely transparent, and the smart contracts making up the DAO would be immutable.

While I could discuss the merits of smart contracts and their pitfalls (including the famous example where the largest DAO, The DAO, was immediately hacked and wiped of funds due to faulty code, requiring a hard fork of the Ethereum network to bail the investors out of their contracts), what's more interesting to discuss at the moment is how all of this works in practice.

Case Study: Decentraland

Viewing a plot of land on Decentraland

Let's pull an old friend of ours out, Decentraland, as a good example to pick apart. It's a DAO that's creating a virtual world (or a "metaverse", as the kids call it these days). I discussed this more in my previous article on NFTs, if you're curious on what it's like to use.

Decentraland allows users to vote on various policies and variables within the Decentraland ecosystem, such as the addition of new wearables, the allocation of grants towards certain projects, marketplace fees, allowed content servers, etc. There also exists a security advisory board who has the power to throw out existing contracts in favor of bugfixed ones. You can view some examples of these proposals here.. A particularly interesting one is this grant proposal to add support for a metaverse protocol known as IPSME, which is something that I want to investigate further another day.

Decentraland fundamentally runs on a fungible token known as MANA, which is used for all on-system transactions. While voting is carried out without transaction fees (aka "gas") using Snapshot, voting is weighted by the amount of in-game currency you possess. This (in theory) weighs established, wealthy users as more important than new accounts, using a system very similar to how proof-of-stake works in standard cryptocurrency.

While I can't prove that Decentraland follows this, a common voting structure in DAOs is quadratic voting. This is intended to judge the degree of one's preferences instead of a mere binary yes/no, by charging quadratically more currency/tokens/money/etc. for each vote. (Ex: 1 vote = $1, 2 votes = $4, 3 votes = $8, etc.) Now, this works fairly well if every voted is given a set and consistent number of points to allocate to votes, but by tying it to currency, you open up a ton of problems.

As I attempted to explain in that one article I wrote about why gift economies are good, poor people simply have less currency to express their preferences. While a poor person might absolutely need some outcome, and would sacrifice everything they own for it, they can be easily overruled by a rich person with a mild preference for the opposite. See, as an example, the lack of public transit, accessibility aids, medication, healthy food, safety equipment, etc. in poor communities. It's not because they don't need them, it's merely because they aren't seen as worth the investment compared to lifting rich communities up to stratospheric levels. Also see the many, many instances where poor non-white neighborhoods (aka "blight") were demolished for freeways through "urban renewal" policies.

There is also the issue that the entire model of the system is to profit off of artificial scarcity. A vote on Decentraland or a plot of LAND or an article of clothing or whathaveyou is just a series of bits and bytes, entirely free to reproduce or expand. A lot of the reason why I detest NFTs in particular is because I detest the concept of artificial scarcity, something that has been plauging the digital world long before the invention of NFTs with strong-armed intellectual property laws tying up huge parts of popular culture to underground fan artists at best. Our economic system views the creations of nature and of humanity not as gifts to the world to be used responsibly and sustainably, but as resources to be exploited to their breaking point. Naturally, the exploitation of natural resources and absurd energy demands solely to enforce the value of made up internet items would be the endgame, as the only thing that matters to us seems to be if we can produce a return on investment from the gifts we are given. I'd highly recommend reading this article if you're interested in this topic.

(Because someone's going to bring it up; I'm all in favor of supporting artists, buying commissions and prints and all of that. I view paying for art prints or donating on Ko-Fi/Patreon as a gift in return of creating great content, not as a greedy money-grab with the hopes of making a profit. And a commission, of course, is simply paying an artist to draw a thing for you. NFT art is reprehensible because they break the notion of art being an expression of emotion, a labor of love, in favor of mass-produced crap to make a quick buck off of.)

Obviously, Decentraland has no provision for throwing this philosophy out short of forking the source code and not being Decentraland. The Decentraland servers themselves are also completely liable to go down if the DAO doesn't generate enough of a return on investment from on-platform transaction fees to continue operations. And, of course, all votes will be decided primarily by the people who already benefit the most from Decentraland being the way it is, and will have very little interest in leveling the playing field, instead preferring to vote for things that give them even more riches, creating a very unequal and inequitable virtual society.

My final verdict is that Decentraland is a very interesting platform, but it has inherent hierarchies in place from accumulated wealth of early major players. It also is, inherently, a single website with a single set of moderators. The system would be largely the same if instead of using the blockchain, this used Club Penguin coins or Steam Wallet cash stored on the Decentraland server, and a strong on-paper contract to enforce grants within the company. Nothing on Decentraland would have value if the servers went down, and nothing on Decentraland has value outside its ecosystem. Simply put, I cannot in good faith call this decentralized in the slightest.

Case Study: Reddit Community Points

Let's take this all back to where we started: the Web3 trend with social media sites. As I stated before, Reddit's the one most interested in taking the DAO plunge and starting to call itself "decentralized", so we'll start there.

The obvious comparison to make here is that Reddit is a centralized Usenet-like. Reddit hosts subreddits and provides moderation tools, both in the form of upvotes/downvotes and in the form of actual subreddit moderation. Upvote/downvote manipulation is strictly prohibited on Reddit, and the site admins have tools to ban anyone doing so. This creates a way for the community of a subreddit to decide which content is the best, and promote it to the front regardless of if they're a casual lurker or an active member. This is the very basis of how Reddit works, and so far it's worked fairly well.

With the introduction of community points, Reddit claims they allow members to "own parts of their favorite communities", much in the same way that shareholders own parts of their favorite companies. Points are a measure of reputation, and are the currency used for votes or perks such as badges, emoji, GIFs, etc. to flaunt your wealth with. Votes are non-binding referendums, calculated both using a one-member-one-vote count, and a one-vote-per-Point count. Points are not spent during voting. Every four weeks, the Reddit website publishes a list of every user, how much karma they've earned, and how many points they'll receive as compensation. Changes to this list can be proposed using the per-point voting method.

Something that should be obvious here is that this isn't even remotely decentralization. Decentraland, I can at least see an argument being made, even if I'd disagree. You can't even vote for new moderators on Reddit's system. And, of course, you can't spin up your own subreddit server and host a community on there, or fork yourself from the main Reddit network to create a new set of independent subreddits, or circumvent the wishes of the Reddit admins, or escape the fact that Reddit is a business that needs to make a profit and having people buy fake internet points with the illusion of control is a damn good way to provide that.

Ditto with Twitter or Discord. They cannot in any good faith be considered decentralized until they at the absolute minimum allow third-party clients that can connect to third-party servers using the same protocol. Federation ala Mastodon or Matrix would be a nice bonus.

Web3 is not decentralized. Nothing that is dependent on a single organization is decentralized. Nothing whose primary goal is to generate a profit for its founders is decentralized. Can we please stop pretending they are?