Consensus protocols are one of the most important and revolutionary aspects of blockchain technology.
They create an irrefutable system of agreement between various devices across a distributed network, whilst preventing exploitation of the system. Here we will explore how these systems work and how various protocols differ from one another.
Blockchain consensus protocols are what keep all the nodes on a network synchronized with each other, while providing an answer to the question: how do we all make sure that we agree on what the truth is?
After all, anyone can submit information to be stored onto the blockchain and therefore it is important that there is review and confirmation, in the form of a consensus about whether to add that information to the blockchain.
What is a protocol?
A set of rules describing how the communication and transmitting of data between electronic devices, such as nodes, should work. These rules need to be defined before any data is sent, detailing how the information will be structured and how each device will send or receive it.
As a term, ‘consensus’ means that the nodes on the network agree on the same state of the blockchain, in a sense making it a self-auditing ecosystem. This is an absolutely crucial aspect of the technology, carrying out two key functions. Firstly, consensus protocols allow the blockchain to be updated, while ensuring that every block in the chain is true as well as keeping participants incentivized. Secondly, it prevents any single entity from controlling or derailing the whole blockchain system. The aim of consensus rules is to guarantee a single chain is used and followed.
Instead of storing balances, digital currencies maintain a complete history of users’ transactions, which can be used to work out each users’ balance at any point in time, as well as the state of the blockchain as a whole. The system state is of unspent transaction outputs (UTXOs) with each output locked requiring the user to provide proof of ownership to spend a UTXO.
Consensus protocol rules
Consensus rules are a specific set of rules that nodes on the network will ensure a block follows when validating that block and the transactions within it. The key requirement to achieve a consensus is a unanimous acceptance between nodes on the network for a single data value, even in the event of some of the nodes failing or being unreliable in any way.
Every cryptocurrency must have a way of securing its blockchain against attacks. For example, an attacker may attempt to spend some money and then reverse the transaction by broadcasting their own version of that blockchain, not including the transaction. This is known as a double spend. As blockchain technology does not rely on a central authority for security, users have no prior knowledge which version of the record is valid.
Consensus protocols also provide participants on the network who are maintaining the blockchain with rewards and incentives to continue doing so. A user who discovers a block should be encouraged to broadcast it over the network immediately. These rewards come in the form of cryptocurrencies or tokens, which can be extremely lucrative, so much so that competition to confirm the next block in a chain is extremely fierce.
Consensus protocols are designed to be difficult to imitate or replicate by being extremely costly to carry out, in terms of time, the computing resources required or the holdings of a particular cryptocurrency. The methods of consensus vary depending on the chain within which they are validating the blocks and there exist a variety of forms of consensus with a consistent ongoing debate as to what is the most effective and efficient method.
Consensus protocols are a key aspect in allowing the blockchain to function and exist. After all, as at its core the blockchain is a ledger of information it is paramount that there is absolute certainty that the information that is being stored is honest and accurate.
Byzantine Fault Tolerance
Achieving Byzantine Fault Tolerance is one of the most difficult challenges addressed by blockchain technology. Byzantine Fault Tolerance means that two nodes can communicate safely across a network, knowing that they are displaying the same data. In this part of the Lisk Academy we will examine why this is so challenging, yet important, and how it is achieved.