Among the common attributes of a blockchain, foremost is the need for governance. Indeed, the operation of a blockchain is based on a system that does not grant any trust to its peers. It is therefore the code defined beforehand that will ‘make law’.
Although this code is written by developers, its content and goal are decided by validators and users who take care of running the network.
This trilemma illustrates the issues to be solved when developing a blockchain:
With more centralization, security is reduced but scalability is improved. With more decentralization, there is more security but less scalability. If a blockchain centers on users’ governance, decisions will take more time to be enacted.
The use of a blockchain must meet specific needs. Blockchain was created to do without a trusted intermediary, or to minimize the trust to be given to trusted third parties. Therefore each one operates as its own system, which may or may not be established in a community way.
Overcoming the lack of trust between dispersed and otherwise disconnected users worldwide is one of the main achievements of the blockchain system. Decentralized governance requires a trustless consensus.
Blockchain consensus algorithms are systems that allow users, both human and machine, to organise themselves in a way that facilitates a secure and trustless system. The nodes will be able to check with the other nodes that the transmitted information is accurate and any user will then be able to check on a block explorer the existence of the transaction. These agreements will then validate the blocks and transactions.
It is vital that each node maintains an identical copy of the database. This means that everyone, or more precisely, each node, must agree on the validation methods used. A consensus is formed around what will prove the data transfer has taken place. These methods range from computers solving complex mathematical equations (Proof of Work) to delegating power to a limited number of ‘super validators’ (‘Delegated Proof of Stake’ or DPoS).
Consensus is the essence of how crypto-currencies are decentralized. In particular, zero-trust agreements allow the use of a blockchain and the validation of transactions by a vast number of users. This is a direct contrast to fiat currencies issued by a central entity such as a bank.
The only common point between all consensuses is their cryptographic aspect. If a single consensus could be established among all blockchains, life would be easier!
There are many kinds of consensus, but we will focus only on the main ones used. Here is a list of the different consensus algorithms that exist:
Those different types of consensuses have been imagined to solve specific problems. For example, the ‘Proof of Work’ consensus algorithm was applied to avoid ‘double-spending’. Later on, the ‘Proof of Stake’ consensus algorithm appeared to more easily manage the number of transactions and/or reduce the energy impact of mining. Many consensus algorithms were imagined long before the appearance of blockchains, and thanks to them it has been possible to implement blockchains on a large scale!
We won’t detail all the types of consensus in this Academy. We’ll only mention those that directly or indirectly concern NFTs.