A Brief History of Decentralized Computing

And How We Can Build a Better Future

Eric Elliott
The Challenge
10 min readAug 12, 2019

--

Image by Matt Britt (cropped) (CC BY 2.5)

When we talking about decentralization in the context of computing, it can mean a lot of different things to a lot of different people. What is it that is being decentralized? In the crypto industry, when somebody says “decentralized” they may mean that any of these things are decentralized:

  • Access
  • Organizational governance
  • Computation
  • Financial Instruments
  • Wealth

We’re going to look at decentralization from the perspective of computing resources, and who has access to them. User rights, privacy, and security are important themes.

First, what is decentralized computing? To understand that, let’s get a grip on what centralized computing means:

Computing is centralized when critical application services are carried out by communication with a remote, central location. When different users in different locations connect to the same service or address to access computing resources such as data storage and processing.

From that definition, we can derive a definition of decentralized computing:

Computing is decentralized when critical application services are carried out by individual computing devices or nodes on a distributed network, with no central location. If you can’t point to a single service address and disable it to shut down core application functionality for all users, chances are good that you have a decentralized computing architecture.

Extreme Centralization: Mainframes and Time Sharing

Prior to the 1950s, math, logic, and computational theory laid the foundations for the computing age. Between 1940 and 1980, computing was dominated by large organizations with multi-million dollar budgets. In those days, computing was extremely centralized. The computing market was dominated by mainframe computers and in the very early days, computers were the size of rooms or small buildings and only a single user could access the system at one time. Due to those constraints, both computation and access to computing resources were extremely centralized.

Time sharing and multi-user operating systems like Unix (created at Bell Labs in 1969) began to change that. The first time sharing systems were developed in the 1960s. One of the great advantages was that users could collaborate on shared files and communicate via instant messaging (which was built-into Unix with the talk command), and email (which was also built-into Unix circa 1970, but originally could only send messages to users of the same shared computer).

One of the key motivators of multitasking features which have been standard in operating systems for decades was that on early computers, only one user could access the system and perform computations at a time.

Multitasking operating systems like Unix allowed multiple users to sign in and use the same computer at the same time. The system would task switch between different user applications, hopefully fast enough that users wouldn’t even notice (though when the system was under heavy use, users did notice). Multi-tasking and dumb terminals (essentially keyboards and monitors without their own CPUs and memory plugged into a single shared computer) were first steps towards decentralization of access to computing resources.

Between 1960 and 1975, computers shrank from the size of rooms to something that could fit at a desk. The personal computing revolution was about to begin.

Extreme Decentralization: Everyone With Their Own Computer, but Nothing Shared

In the 1970s the personal computing revolution began, and by 1980, personal computing had entered the public consciousness. Computing got its first taste of decentralization. Instead of dumb terminals, each user got their own computer. Their own memory. Their own CPU. And those computers got small enough and inexpensive enough that people started buying them to use at home. But since most home computers were not connected to each other, and could only communicate by sharing physical memory devices such as tapes, cartridges, and floppy disks, applications were more splintered than decentralized.

During the 1980s, many households entered the computing market, but general purpose personal computing was quickly dwarfed by personal computing’s first killer app: video games. By 1990, 27% of American households owned a general purpose personal computer, while 30% owned a Nintendo Entertainment System (NES).

Few personal computers were connected through most of the 1980s. In 1983, polling firm Louis Harris & Associates asked U.S. adults if they had a personal computer at home and, if so, if they used it to transmit information over telephone lines. 10% of adults had a computer, and 14% of those (1.4% of American adults) had used a modem to send and receive information. Between 1980 and 1995, most modem users did not connect directly to an internet service provider. Instead, local electronic bulletin board systems (BBS) dominated, and few of those provided even basic internet services such as email (let alone the web) until the mid 1990s.

Note: The first BBS system went online in 1978 in Chicago, developed by Ward Christensen and Randy Suess. For early home users of the internet, the XMODEM protocol created by Ward Christensen and used in CBBS was the protocol that enabled the first access to internet email and Usenet through an internet-connected BBS. Usenet and email are among the first true decentralized applications.

Decentralized Access: The Open Web and Early Decentralized Applications

Perhaps the internet was waiting for its first killer app: The World Wide Web. In 1990, Tim Berners-Lee created the first web server and browser. You can still access the world’s first website by Tim Berners-Lee.

By 1995, 14% of US adults had some kind of internet access. About a 10x climb in connected households in 10 years, but still, 42% of American adults had never heard of the internet.

And then things really took off. By 2000, 60% of US households owned at least one computer. 46% of American households were online, and by 2010, the internet reached 80% of American households.

Between 1980–2000, software ate the world.

From 2000–present, the web ate software.

The web is the world’s largest decentralized application. No one person owns or controls access to it. Anybody can start a web server and publish content on it, and anybody can point a web browser at any site they want, but with current web architecture, the content itself is centralized. That may change in the near future.

Trend Spotting Clues — The Power in Distributed Computing: Around the turn of the century, decentralized protocols such as email and Usenet ushered in distributed computing projects like SETI@Home and Folding@Home, along with peer to peer applications like Napster, BitTorrent, and Tor. Sean Parker co-founded Napster and subsequently served as CEO of Facebook.

Between 1990 and 2003, more than 20 institutions around the globe contributed to the Human Genome Project to map the entire human genome, a task that critics predicted would take 100 years or more. By sharing data sets and computational resources, and through accelerating technology innovations, the project was completed in just 13 years.

These efforts showed early promise for what decentralized applications could become, and how they might have the power to change the world.

Napster signaled a dramatic reshaping of the core business model of the entire music industry, and serves as a great historical reference for the radical disruption in store for every industry as decentralized applications take hold in the future.

Meanwhile, the web became so successful and pervasive that around 2000, people began to build popular applications on top of the web. What started out as a new medium for decentralized access to publishing turned into an application platform. Today, browsers are essentially sophisticated operating systems providing application services like networking, user interface, device access, camera and microphone services, 3D/eXtended Reality rendering, and much more.

While other systems can compete with the web platform’s technical capabilities, the web is the most ubiquitous application platform ever developed, making it a perfect foundation for decentralized computing.

There’s just one problem: The web platform is a client-server architecture, and web browsers don’t have decentralized service nodes built-in. Not only that, we haven’t even decided what those services should look like, yet.

Because of that, web application builders were led back down the path toward centralization.

Re-Centralized Computing: Web Applications & Cloud Computing

Between 2004–2010, social media sites took root. Today, the average user spends hours per day on social media apps. Unfortunately, that means that most of the content we create today — most of our online footprint — is centralized in resources owned and governed by just a handful of applications: Instagram, Facebook, Twitter, TikTok, YouTube, Medium, and so on.

This presents all kinds of problems. What if we want to leave those platforms, but keep all the content and connections we’ve cultivated over the years? What happens if the service shuts down? For most users, that means a total loss of all the data and connections they made on the service. Their social network: Gone. Posts, photos, videos: Gone. Those losses can feel overwhelming and catastrophic.

Equally bad: What can a user do if all that sensitive, personal data gets into the wrong hands?

The availability and general access to cloud computing resources has made it easier than ever before to create an application which can serve millions of users, but all that user data is stuck in centralized lockers you don’t control, rather than shared between applications, controlled by the user the data rightfully belongs to.

The Promise of Modern Decentralized Applications (DApps)

Wouldn’t it be nice if you could manage your user profile (or several different personas) and share them between multiple applications? Click a button to sign in? No more creating yet another username and password for each site you connect to. No more worrying about having your passwords stolen or your data breached.

New services like 3Box and Tim Berners-Lee’s Solid plan to make it easy. Remember Tim Berners-Lee? The guy who invented the web? He wants to reinvent it on top of decentralized architecture for user data.

As application developers, we have a responsibility to carefully consider the privacy and security of our users. Users should own and control access to their data. That data should be encrypted and secured against unauthorized access by default.

Users should be able to authorize and revoke application access to their data at any time.

Users should control access to their own social graph.

Users should control their own posts, photos, videos, and data.

Core DApp Services

The core computing services of the new DApp architecture include:

  • Cryptocurrency transactions — the foundation of the internet of value. These transactions allow for streaming micropayments, allowing decentralized services to be self-sustaining, without a central corporate entity in control.
  • Cryptocurrency exchange — enable smart wallet meta-transactions to pay protocol token fees and blockchain gas fees, so users can take advantage of decentralized services which need payments, without worrying about how those payments are made, and in many cases, without needing to pay for those services out of pocket.
  • User wallet-secured authentication and authorization. No more passwords to remember or lose.
  • Decentralized identity (often represented by a wallet public address). With DApps, your identity follows you effortlessly between applications.
  • Decentralized user profile data. Grant, revoke, or reject application access to your user profile data. Put the users in control of their own profiles, and how they’re presented to different applications.
  • Decentralized user content storage. Ditto, but for all your content — posts, videos, photos, and comments.
  • Decentralized networking and compute services. User-owned mesh networking, gig economy style sharing of your computer’s storage and CPU resources.
  • Cryptographic hashing and signatures. Proof of existence, decentralized authorization, proof of resource ownership, permission, or control. These are basic primitives that are required for decentralized application security to work.
  • Smart contracts. Programmable money transactions and agreements, enforced by code, so there’s no need to trust participants.

There are no current standard web APIs for any of these services, and various competing specifications for most of them are in flux, and lacking significant traction.

The DApp ecosystem is still in the infancy of its infancy. The word “DApp” is a recent evolution, taking over previous incarnations like “distributed computing application”, “p2p application”, “blockchain application” and so on. I’m looking forward to the day when all applications are DApps, and we can go back to just calling them “apps” again.

In 2018, I predicted that mainstream adoption of DApps was still 3–5 years off, and I mostly stand by that prediction. There are zero good examples of fully decentralized web-platform DApps I can point to today — let alone fully decentralized apps with millions of users.

But we are reaching mainstream audiences a little at a time. Today, some of the core DApp technology is being integrated into apps that already have millions of users. At first, just adding cryptocurrency transactions to existing apps like Kik. Facebook announced a new (eventually decentralized) currency called Libra. Sliver.tv users are sharing video streaming bandwidth and earning TFUEL on the Theta Network, which was founded by Steve Chen, co-founder and former CTO of YouTube, and millions of Brave browser users have the opportunity to earn and share BAT cryptocurrency with content creators. Brave was founded by Brendan Eich, the creator of JavaScript — the standard programming language of the web platform.

With the exception of Facebook’s Libra, all the applications I just mentioned already have millions of users. As more users get introduced to DApp ideas like in-app cryptocurrency transactions and wallet-secured authentication, more developers will join us, and help build the foundations of tomorrow’s DApp ecosystem.

Eventually, I have faith that all the essential DApp services will be built into all mainstream browsers. In the meantime, projects like Fortmatic are polyfilling Web3 capabilities in Web2 browsers like Chrome.

The ecosystem is still very young. Standards are shifting underneath us while we build. The DApp world is teeming with risks like security holes, lost keys, and privacy errors, etc. (Hint: Don’t put a user’s real name and address on a public blockchain or unencrypted IPFS, please!)

It’s still early, but DApps have the potential to allow users to take back some of the power that has unfairly accumulated to a handful of corporations, and the potential to unlock a lot of applications that were not possible prior to the creation of the first viable cryptocurrencies and blockchains.

Anywhere there is a centralized registry of anything, including licenses, property titles, account ledgers, and so on, there is potential to replace those ledgers with trustless, p2p transactions.

I can’t think of any industry that can escape being completely remade by these technologies, and I can’t wait to see what you build with them.

Make some magic.

Eric Elliott is the author of the books, “Composing Software” and“Programming JavaScript Applications”. As co-founder of EricElliottJS.com and DevAnywhere.io, he teaches developers essential software development skills. He builds and advises development teams for crypto projects, and has contributed to software experiences for Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC, and top recording artists including Usher, Frank Ocean, Metallica, and many more.

He enjoys a remote lifestyle with the most beautiful woman in the world.

--

--