# Decentralized computing

Decentralized computing is the allocation of resources, both hardware and software, to each individual workstation, or office location. In contrast, centralized computing exists when the majority of functions are carried out, or obtained from a remote centralized location. Decentralized computing is a trend in modern-day business environments. This is the opposite of centralized computing, which was prevalent during the early days of computers. A decentralized computer system has many benefits over a conventional centralized network. Desktop computers have advanced so rapidly, that their potential performance far exceeds the requirements of most business applications. This results in most desktop computers remaining idle (in relation to their full potential). A decentralized system can use the potential of these systems to maximize efficiency. However, it is debatable whether these networks increase overall effectiveness.
All computers have to be updated individually with new software, unlike a centralized computer system. Decentralized systems still enable file sharing and all computers can share peripherals such as printers and scanners as well as modems, allowing all the computers in the network to connect to the internet.
A collection of decentralized computers systems are components of a larger computer network, held together by local stations of equal importance and capability. These systems are capable of running independently of each other.

## Origins of decentralized computing

The origins of decentralized computing originate from the work of David Chaum.
During 1979 he conceived the first concept of a decentralized computer system known as Mix Network. It provided an anonymous email communications network, which decentralized the authentication of the messages in a protocol that would become the precursor to Onion Routing, the protocol of the TOR browser. Through this initial development of an anonymous communications network, David Chaum applied his Mix Network philosophy to design the world's first decentralized payment system and patented it in 1980. Later in 1982, for his PhD dissertation, he wrote about the need for decentralized computing services in the paper Computer Systems Established, Maintained and Trusted by Mutually Suspicious Groups. Chaum proposed an electronic payment system called Ecash in 1982. Chaum's company DigiCash implemented this system from 1990 until 1998.

## Peer-to-peer

Based on a "grid model" a peer-to-peer system, or P2P system, is a collection of applications run on several computers, which connect remotely to each other to complete a function or a task. There is no main operating system to which satellite systems are subordinate. This approach to software development (and distribution) affords developers great savings, as they don't have to create a central control point. An example application is LAN messaging which allows users to communicate without a central server.
Peer-to-peer networks, where no entity controls an effective or controlling number of the network nodes, running open source software also not controlled by any entity, are said to effect a decentralized network protocol. These networks are harder for outside actors to shut down, as they have no central headquarters.

## File sharing applications

One of the most notable debates over decentralized computing involved Napster, a music file sharing application, which granted users access to an enormous database of files. Record companies brought legal action against Napster, blaming the system for lost record sales. Napster was found in violation of copyright laws by distributing unlicensed software, and was shut down.
After the fall of Napster, there was demand for a file sharing system that would be less vulnerable to litigation. Gnutella, a decentralized system, was developed. This system allowed files to be queried and shared between users without relying upon a central directory, and this decentralization shielded the network from litigation related to the actions of individual users.