We all broadly understand “consensus” as the notion of different parties agreeing with each other. In distributed computing, Consensus is one of the core functionalities. In this post, we define the consensus problem and discuss some variants and their differences. In modern parliaments, the passing of decrees is hindered by...| decentralizedthoughts.github.io
Bitcoin’s underlying consensus protocol, now known as Nakamoto consensus, is an extremely simple and elegant solution to the Byzantine consensus problem. One may expect this simple protocol to come with a simple security proof. But that turns out not to be the case. The Bitcoin white paper did not provide...| decentralizedthoughts.github.io
After we fix the communication model, synchrony, asynchrony, or partial synchrony, and a threshold adversary we still have 5 important modeling decisions about the adversary power: The type of corruption (passive, crash, omission, or Byzantine). The computational power of the adversary (unbounded, computational, or fine-grained). The adaptivity of the adversary...| decentralizedthoughts.github.io
In the standard distributed computing model, the communication uncertainty is captured by an adversary that can control the message delays. The communication model defines the limits to the power of the adversary to delay messages. There are three basic communication models: the Synchronous model, the Asynchronous model, and the Partial...| decentralizedthoughts.github.io