Part 0: Blockchain Background
Image credit: Zoolander
So Hot Right Now
You may have heard of Blockchain technology - if you haven’t, you likely have heard of Bitcoin. You may only know enough to be confused by it or to have your curiosity piqued. In any case, you’re in the right place. Feel free to contact me in the comments below or through my social media accounts if you have any questions or if you spot an error.
Types of Networks
Let’s go over a bit of background first - trust me, it will help out later on. Networks fall roughly in three categories:
Figure 1 - Network Types (Image credit: Wikipedia)
It’s important to understand that we’re not only talking about computer networks, although they make up nearly the entirety of what I talk about in this article. This taxonomy of networks applies to all networks, such as social, commercial, and political. I’ll try to include non-computer network examples below.
Figure 1-A: Although not a good candidate for blockchain protocols, let’s understand what a centralized network is to provide some context for the other two network types. Centralized networks have two primary characteristics:
- They consist of a single node (single point of failure)
- This node is under the control of a single entity
- Many Internet services
- Websites (some)
- Bulletin Board Systems (BBS)
- File Servers
- Central Banks
- Autocracy (Single governing head with absolute power)
- Centralized Control
- Single component to maintain
- Vulnerable to
- Attack (DDoS, etc)
- Traffic Spikes
Figure 1-B: It is possible for blockchain protocols to support decentralized networks, at least in part (as validators), however this is not typical. Decentralized networks have two primary characteristics:
- They consist of multiple nodes
- Each node is under the control of the same entity
- Most Internet services
- Content Delivery Networks (CDN)
- Load Balancers
- Representative Government (eg Republic)
- Control of the network
- Overhead of
- Managing assets
- Managing distribution
Figure 1-C: Blockchains are considered a distributed ledger or distributed database. A blockchain protocol (wholly or in part) comprises a distributed network. Distributed networks have two primary characteristics:
- They consist of many discrete nodes
- Each node may be under the control of any arbitrary entity
- The Internet
- Democracy (consensus is determined by majority of individuals)
- Correspondence Chess??
- Very resistent to censorship
- Difficult to control
*Anarchy consists of individuals with complete individual sovereignty - governments unto themselves. In this way anarchy may be considered a completely distributed form of government.
How do you trust others in a trustless system?
This important and difficult question didn’t have a good answer for many years. Confidence and trust are mutually necessary for most systems, however they are very difficult to accomplish in a distributed network.
Consider an Analogy:
I’m borrowing this analogy from National Institute of Standards and Technology (NIST)’s John Kelsey’s 2016 Introduction to Blockchains
Correspondence Chess or Chess by Mail was a very popular pre-Internet method of multiplayer ‘online’ gaming. It’s played still, though its popularity has waned.
Alice and Eve want to play Correspondence Chess. Alice makes the first move:
- Eve replies
- Alice replies
Chess Board State
Correspondence Chess is an example of a distributed network, albeit with only two nodes. Each party has a copy of the board at home, and each has independent and total control of their own board. For the game to be playable, each has to agree on the state of the game.
If Eve attempts to cheat, will Alice know? How?
The game is composed of the following parts:
- The starting positions of the board (immutable)
- The sequence of messages (one for each move)
The state of the game at time
t is represented by every message, in order, up until time
t. In other words, If we agree on the history of moves, we agree on the present state of the game. That history is represented by what is called a distributed ledger.
I have been primarily using the word blockchain, however now that we understand what a distributed ledger represents, I will use that term as well. For the purposes of this article they are synonymous.
Just as the Correspondence Chess game allows mutually-distrusting players to agree on the state of the game, a distributed ledger allows mutually-distrusting users to agree on the state of the distributed system. That’s how a distributed ledger (such as blockchain) inspires confidence among untrusting and anonymous nodes.
Continue on to the meat of the series, Part 1: Blockchain Origin Story