Innovations from Bitcoin and Blockchain-related technologies gave birth to a new species of distributed systems. Today, these distributed systems are entirely decentralized. We see them running at a massive scale, and valued at billions of dollars.

Speculations aside: on the technical side the field is exploding and each week brings new discussions, new algorithms & new projects.

How to get into the domain of the Blockchain? Where to start to understand these technologies? And which algorithms should you learn to create your blockchain or dig into the existing ones?

As we saw in a previous article:
The point of the Blockchain revolution is the ability to generate Consensus in a decentralized & hostile environment.

I have a network of computers. They communicate with each other by sending and receiving messages.
I want this network to make decisions, like moving money from one account to the other.
I also want to protect some rules despite the presence of hostile machines on the network. For example, a cheater should not be able to spend twice the same unit of Bitcoin.

There are 3 Fundamental Components in systems like Ethereum and Bitcoin:

These mechanisms run in a decentralized setup. By design, no member of the network has more power than the others.

1. Exchange data efficiently in an organic network

Any indivual may connect and exchange data with the rest of the network. We rely on the Peer-to-Peer (P2P) protocol for this. The name “Bitcoin” comes from the proximity with “BitTorrent.”

With this protocol,

2. Ensure Data’s Integrity

Every participant should be able to verify the current state. They should be able to check and accept new states quickly. Here we use Blockchain structures.

With these structures:

3. Converge to a new state

At this point in the article, we can exchange data (P2P) and verify it (Blockchain). Now we want the system to be able to make decision.
It should be able to process operations like: Transfer money from account A to account B.

Or more generic: Modify storage space X with data Y.

With a single user, it’s simple:
The user sends a transaction to one machine of the network. The machine verifies the transaction then propagates it through the network. Other machines verify, accept and propagate the transaction.
That’s a distributed database.

With millions of participants and millions of concurrent transactions, the way you pick and propagate new states becomes critical.

Some methods limits, with force, how often new states are proposed to the network (Proof Of Work). Other methods mimic the “classic” approach of Leader Election (Proof Of Stake). Some platforms even relax some of the constraints on the Blockchain to go around the problem (Tangle).

With these algorithms,

Finally… That’s only the beginning!

These three fundamental pillars allow the design of decentralized systems like the Bitcoin. They enable the design of a reliable system without center or borders.

The network is organic (P2P). We can enforce rules (Blockchain). And the system can progress and take decisions (PoW, PoS).

Note that this domain is far from maturity. We should expect a Cambrian Explosion of solutions and use cases for this Decentralized Consensus. But understanding these three mechanisms will help you a LOT to understand the Blockchain Ecosystem. With these, we can understand the “Quantum Leap” that started the Bitcoin & Inc boom.

In the next articles, we’ll detail each of these mechanisms and provide examples. If you want to get details about the algorithms and how to implement them: we’re launching a newsletter, register below!