Which protocols and algorithms should you learn to understand Bitcoin?
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:
- The ability to exchange data efficiently in an organic network,
- The capacity to ensure the Data’s integrity,
- And a way for the network to converge to a new state.
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,
- Participants may join and leave the network without consequences,
- Hostile members won’t hamper communications in the network,
- The network is self-organizing and self-optimizing. No central Orchestrator filters and organizes the participants.
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:
- Participants agree on a set of rules, and they can ensure these rules have been respected at any time,
- Each member may accept and verify the whole data set. There’s no central authority responsible for the quality of the data,
- If a hostile node tries to tamper with the data, it is detected and denied quickly.
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,
- Every participant may propose modifications to the state of the system,
- Each node can be part of the consensus protocol that picks the next state (the current block),
- The network quickly converges, despite concurrency, conflicts and hostile participants.
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!