Blockchains today are mostly recognized in the context of cryptocurrencies but serve some other purposes too. Oneof the earlier designs for blockchains was from a pseudonym called Satoshi Nakamoto who created the Bitcoin cryptocurrenciesand solved some problems existing at this time (for example double-spend problem). The fundamentalconcept of constrcuting such a data structure is based on blocks and hash functions. Blocks is consist of block headerand a list of transactions. These blocks are linked sequentially and each block contains the hash value from theprevious block. This prevents the previous blocks being modified in a later time and ensures therefore some integrity.It is working because of the security aspects of hash functions which are the pre-image resistance, second pre-imageresistance and collision resistance.
The transactions can have many different meanings and usages, the most commonone is it contains the information of a currency transfer from one account to another. Besides, a transaction alsocan be the certificate information for a single user 1. To prevent that malicious users can create transactions forother users there needs to be a mechanism such as signing so that other users can verify the transaction. This leadsto the problem how these transactions can be included in a blockchain.
The most common usage of blockchainsis in a decentralized setting implemented in a peer-to-peer network. When a participant creates a transaction heneeds to broadcast it to the network. A deterministic rule is needed to decide about the order of transactions andalso to prevent problems such as double-spending. Every blockchain with a global state has a consensus in form ofproof-of-work, proof-of-stake and Byzantine Agreement.
Proof-of-work is more commonly and lets the participants,which are called miners, solve a problem. The first one who has solved this problem becomes the next block leaderand he also gets a reward to give some incentive. Proof-of-stake on the other hand selects the next block creatorwith a specific algorithm and gives him the right to validate the next block and set of transactions. One idea of thisalgorithm is that the next leader is chosen based on the amount of coins he put at stake because a rich participant hasan incentive to do nothing malicious otherwise he would reduce his own wealth. This is especially interesting becauseit does not require a lot of computation power which results in a high energy consumption. Byzantine Agreement isconsidered as a centralized approach to reach consensus.
The consensus are made by some pre-selected server andthese servers negotiate with each other for making an agreement. Each of these consensus mechanisms have someproblems of their own and trust is needed in the system to guarantee that they work. In proof-of-work a so called51%-attack can be performed as soon as one user or group has more than 50% of the computation power.
This allowsto dismiss transactions or modify some of the last blocks. In reality this has occurred for bitcoin and can let the wholesystem appear untrustworthy. Proof-of-stake suffers from a selected malicious block creator because there is often nopunishment for faulty behavior and also little cost in doing so. Byzantine agreement has a higher requiremnt of thenumber of honset nodes.
There are already some attempts to solve this problem in different kind of ways proposedby Ethereum2 or PeerCoin3, for example.