Even without being able to master the technical features of the blockchain, it is already clear that the structure is the one of a series of linked data. In order to make this series useful to determine transactions, blockchain need to find a way to make all the agents agree to the same data, i.e. eliminate discrepancies.
From a temporal point of view, if every agent of the system agrees to the same timeline the timestamp is able to provide the order of all the transactions. In order to obtain a complete and homogeneous database, the missing part is how the system determines that each transaction is valid and can be part ofthe series. This is done exploiting the nodes constituting the network of the system and a so called “consensus method”. Different consensus methods will be analysed in a different section, here we describe just the so called “proof-of-work”, which is the one adopted by Bitcoin.
All transactions coming in a block are transmitted to the whole network, with each node processing it. In order to determine if the transaction is valid, the node has to solve a problem. Solving it proves that the node is able to process the transaction and that the latter satisfies the requirements of the system. This is the so called “proof-of-work”.
The first node solving the problem then makes the transaction public and the transaction is added to the blockchain. All the nodes now agree to the same “version” of the blockchain given that all the info about every new transaction are made public and that the node is considered reliable.
What we have is therefore a ledger of transactions ordered in time and validated by nodes operating together with the same methodologies. An eventual double transaction would be refused by such a system because of the presence of the timestamp, which would signal that the transaction has already occurred.
In order to cheat the system, which is based on consensus, the majority of the nodes would have to agree on a fraud to the system itself. Apart from the structural decentralisation that makes this difficult, there are also incentives for the nodes to behave honestly. The first transaction in a block, in fact, creates a new coin which is the reward for the creator of the valid block. Additionally, the decision on the validity of the transaction depends also on the amount of past proof-of-work for each node. The nodes with the longest chain and associated proof-of-work will have more influence in the decision, thereby rewarding the nodes which have act honestly for longer.
We have depicted above a system in which transactions are processed and validated by multiple agents, which are rewarded for their work with coins. Also, the system is capable of storing, identifying and ordering all transactions, eliminating eventual duplicates.
Blockchain system as described is not only able to solve the double payments problem but also to provide an effective infrastracture to store data of any kind. Its usefulness is therefore not only limited to digital currencies but can be applied to different fields. This feature is properly the one which originated the whole spectrum of cryptocurrencies that we can already observe today.