As software development has become more prominent as both a career path and a creative outlet, many programmers decided to “open source” their projects. There were several reasons for this – one being the more people who can view your work, the more you can stress test it and build interesting and cool things together. Imagine a musician who only chooses to perform alone in their bedroom. That is the case for many people, yet the ones who step outside have a chance to be recognized and rewarded. Open source is a way to give back to the developer community. To learn and build together. This ethos represents decentralization, the origins of blockchain technology.
Blockchains are hosted on many servers around the world. This means many people can participate in running the network. This is interesting because the data is stored not in one centralized location but in thousands of locations at once in the case of Ethereum. This process is called Distributed Computing and it ensures that every “network node” has a copy of the “blockchain.” This information is updated in real time when for example, a transaction takes place.
The benefit to this information-intensive redundancy is removing potential points of failure for the system. A website can be taken down by its web host, for any reason or no reason at all. The host is a “trusted third party” that can serve as a censor or gatekeeper. Decentralization strives to remove those chokepoints to achieve independence and censorship resistance.
If you’re involved in cryptocurrency investing (e.g., buying and holding crypto tokens like ETH or BTC) you’re a participant in the blockchain but are likely not running a network node. Coinbase (COIN), the most popular cryptocurrency trading platform, does allow you to contribute to their validator nodes by “staking” your ETH and earning a yield on the staked ETH in the form of transaction fees that will be earned by nodes after the upcoming merge to proof-of-stake.
Blockchain is particularly interesting as a societal development because of something called Brewer’s theorem. Brewers’ theorem states that any distributed system cannot have consistency, availability, and partition tolerance simultaneously.
High-quality blockchains like Ethereum overcome these problems largely through data replication.
In 1982, Leslie Lamport proposed a thought experiment called the Byzantine Generals problem. In this scenario, the generals must communicate using messengers to agree to attack simultaneously. Therefore, they require a mechanism that allows for agreement on simultaneous attack even if traitors have infiltrated their ranks.
Here’s how it was summarized in the original Microsoft Research paper:
Imagine that several divisions of the Byzantine army are camped outside an enemy city, each division commanded by its own general. The generals can communicate with one another only by messenger. After observing the enemy, they must decide upon a common plan of action. However, some of the generals may be traitors, trying to prevent the loyal generals from reaching an agreement. The generals must decide on when to attack the city, but they need a strong majority of their army to attack at the same time. The generals must have an algorithm to guarantee that (a) all loyal generals decide upon the same plan of action, and (b) a small number of traitors cannot cause the loyal generals to adopt a bad plan. The loyal generals will all do what the algorithm says they should, but the traitors may do anything they wish. The algorithm must guarantee condition (a) regardless of what the traitors do. The loyal generals should not only reach agreement, but should agree upon a reasonable plan.
This problem was solved in 1999 by Castro and Liskov who presented the Practical Byzantine Fault Tolerance (PBFT) algorithm. Then in 2009, the first large scale application for a distributed monetary system was created with the advent of Bitcoin.
Bitcoin introduced blockchain to the world with its first real practical application.
The validity of cryptocurrency as a medium of exchange hinges on the fact that blockchain exists as a technology and means of social agreement. These cryptocurrencies use blockchain-based digital ledgers made up of transaction blocks. These blockchains utilize different types of consensus mechanism algorithms. These algorithms determine the process for interacting with data “on chain.” Participants must agree on the state of all information stored on the blockchain. That data must be reconciled in real time to ensure for accuracy.
This data, once reconciled, is publicly visible and immutable.
The goal of this blockchain technology is to render it sufficiently decentralized to make it very difficult or impossible to hack due to the resources needed to do so. Hacking in this case refers to the ability to alter the data that represents the source of truth for network users. In essence, the blockchain becomes a source of historical record that validates all holdings of market participants while removing the risk of a single point of failure or censorship.