Part 1: Blockchain? Consensus? Game!

We can think of a blockchain network as a game.

Imagine playing poker with a group of friends, you may trust your friends outside of the game, but during the game every player assumes that the other players are going to bluff, essentially implying that in a game of poker there is no trust among the players. Poker, like any other game, has defined a set of rules, an objective, and rounds. Furthermore, every player has an equal chance of winning the hand. A keen observer may also note that even though the rules are defined in poker, some players may utilize tricks to gain an advantage over other players.

Now imagine playing a game with multiple unknown players and the rules are set such that if all players act honestly, they all have an equal chance of winning. In addition, since the game recognizes that cheaters cannot be avoided, the rules ensure the chances of winning for cheaters are lower than honest players and punishment for cheating is high. And the game continues on.

This is similar to how Helium’s blockchain and underlying consensus system are combined to power our Decentralized Machine Network (DMN); by establishing the rules to ensure fairness among players, like a game. Fairness is important because honest players and cheaters exist in any game. Our consensus algorithm is built to deter cheating and to root out repeated attempts to cheat in our distributed system.

Why do I care?

When playing poker online, is there a way for you to be sure you’re not playing against bots? Usually online poker allows players to chat with each other, perhaps you could share messages among the players and talk about the football game last weekend, maybe you could ask every single player the same question and reach a common agreement. But what if every player is a liar? Is there any way to be sure?

This problem of being unable to reach consensus on a common value because of mistrust among players is referred to as the Byzantine Generals Problem and people have been perplexed by it quite literally for centuries.

The Byzantine Generals Problem may seem like it has no solution and for a long time, it actually didn’t. Ever since Leslie Lamport published the seminal paper on it in 1982, researchers have been working on it tirelessly. One of the first solutions with wide applicability was Practical Byzantine Fault Tolerance (BFT) in 1999 by Castro and Liskov, which is what Bitcoin uses as the basis for its Proof-of-Work.

Trust is Optional

We need players, rules, and the game needs to identify players. Because the individual players may not know or trust each other, we need a way to secure the players. Now we need to make sure that, even though no one knows one another, they can at least check whether someone is telling the truth. For people not familiar with the terminology, this is called a consensus algorithm.