In the first part, we have discussed the basic principles and key features of blockchain. In the second part, we have dealt with some of the most common questions. Now, we will focus on smart contracts, advantages and disadvantages of blockchain technology and uses of blockchain.
So far, we have been describing the functioning of blockchain only as a transaction system, representing the transfer of units (the so-called cryptocurrency) expressing financial value. But let’s go back to the original idea that blockchain should allow a credible exchange of assets across the Internet without the need for mutual or mediated trust. There is nothing in this sentence to say that blockchain should only be used for transactions in the form of cryptocurrencies. A transaction is just a piece of data, so it can carry any other value. Here’s an example.
Let’s say Allan, Betty, Carl, and Daisy work together on a document and each of them completes a portion of the text. Once the final version of the document is completed, each of the authors will be evaluated on the basis of their contribution. Thus, it is important for each one of them to be able to prove what part they have written. For transparency, or due to their mutual distrust, they decide to use blockchain. After each of them completes their part, they take the document, compute a hash for it using the hash function and send this hash in the form of a transaction to the blockchain. The transaction is validated and the appropriate block is included in the blockchain database. When it comes to consolidating the authors‘ contributions as part of a document finalization, it doesn’t matter who does that finalization. For example, if Allan decides to question Daisy’s part, all he has to do is take the appropriate post and find its hash in the blockchain database. If there is such a hash from Daisy, it is a proof thanks to the strong inherent integrity of the database that she is the author of the given contribution.
More Complex Data
Blockchain is not just a transaction system for cryptocurrencies. Instead of simple data within transactions, we can imagine more complex data that has encoded conditions according to which these are interpreted, as in the following example.
Betty and Daisy make a bet that Allan will spend all the units from his account in a week. Betty creates a transaction in which she states the given conditions of the bet, creates a so-called Smart Contract, and sends it to the blockchain. The Smart Contract has its own address, similar to individual accounts in the blockchain system. Once the Smart Contract is published on the blockchain, Daisy and Betty will confirm these terms by generating a transaction onto the Smart Contract account, and this Smart Contract will receive the stakes from both Betty and Daisy. At this moment, the Smart Contract is concluded and waiting for its fulfillment. Depending on whether Allan spends his units within a week or not, the Smart Contract executes the set orders. The great advantage of Smart Contract is that there is no need for trust between Betty and Daisy, as Smart Contract is valid only when both parties have placed their stakes. At the same time, the Smart Contract cannot be cancelled by anybody, not even by its creator, once it has been activated. The Smart Contract thus works completely autonomously. This concept was first introduced by Vitalik Buterin as part of the new cryptocurrency Ethereum in 2015 and is often referred to as the blockchain 2.0 concept.
Advantages and Disadvantages of Blockchain Technology
So far, many things concerning blockchain technology sound good. But we don’t live in a black-and-white world. What is an advantage for you, could be interpreted as a disadvantage by someone else. What is a positive for you, could be taken as a negative by your business partner.
Should Everyone Know Everything?
Although only account numbers, not owner names, appear throughout the blockchain system, the information contained in transactions between individual accounts is public and is available to everybody. So if Betty finds out which account belongs to Daisy, she can trace Daisy’s entire transaction history. A solution is to create a new account for each transaction, since everyone can have an unlimited number of accounts.
Another solution is to modify the blockchain protocols to achieve full anonymity, such as the one used by the ZCash cryptocurrency. A completely different approach is to build a private blockchain system, in which full access control will be introduced together with the roles and their rights. Often these types of blockchain systems are referred to as permissioned, while the original, public blockchain systems are referred to as permissionless systems. But if we return to the basic principle of blockchain as a decentralized system, then any introduction of regulation or management by one centralized entity really makes no sense. You can hardly call this the blockchain system.
Bulky Blockchain Database
Another problem is the need to have a copy of the blockchain database, which can take up tens of GB of data. As a solution, the concept of partial and full nodes was created. Partial nodes have those accounts that do not store the entire database, but only the part that allows them to recognize new transactions. Full nodes have those accounts that store the entire database, typically miners who need to know the entire history of individual accounts to verify transactions.
Another way to reduce the volume of the database is to reduce the number of transactions or reduce the number of blocks. The concept of Lightning Network was proposed for this. In order to reduce the number of transactions sent to the blockchain while not limiting the number of exchanges between individual accounts, the concept of clearing was used. In essence, a separate channel is created between the accounts that want to send transactions outside of the blockchain network, in which transactions are exchanged. Only after the transactions are exchanged, the channel is closed, the resulting balance for the given accounts is cleared, and only the difference between the balance of the given accounts and their original ones is written into the transaction, which is sent to the blockchain.
Another option is to reduce the number of blocks. Because blocks serve as evidence for verifying valid transactions, and no transaction is accepted until it is verified by the block, the number of transactions must be at least the same as the number of blocks. However, you can start increasing the block size and use one block as evidence for more transactions. Or reduce the size of the data that needs to be validated within the block. The individual approaches are intensively discussed within the blockchain community and disagreements led, for example, to the forking of Bitocin into the newer Bitcoin Cash.
Strong database integrity protection is a great advantage, but in some cases it can be undesirable. The problem occurs when an unintentional error occurs that needs to be corrected. However, this is not possible in the blockchain database, since any entered information will be stored in the whole history of the blockchain system.
The mining process is used to verify transactions and is based on the principle of Proof of Work. Although this mechanism is justified, with the growing system, the need for computing power increases and there is an enormous consumption of electricity. Alternative approaches that would not be based on computing power already exist.
The Proof of Stake concept is based on the fact that you can mine or validate block transactions according to how many coins or tokens you hold. This means that the more coins or tokens a miner owns, the more mining power he has.
With Proof of Space (Proof of Storage) concept, a storage space on hard drive is allocated instead of computing power. However, due to the many problems that these alternative approaches bring, the concept of Proof of Work is preferred by many crypto enthusiasts.
Rules of the Game on Blockchain
A completely different limitation, which is not related to the technical side of blockchain, is the lack of standardization, which would clearly describe how the blockchain is to be implemented, controlled and evaluated.
Uses of Blockchain
Blockchain came to people’s attention with the arrival of the first cryptocurrencies, which showed the world that thanks to the global connection via the Internet, systems can be implemented today that we could not even imagine before. An important milestone was the introduction of smart contracts, which raised the transaction system to the level where smart contracts can perform additional functions, apart from payments.
It was thanks to smart contracts that many companies became interested in blockchain technology. Companies began to invest a lot of money in the analysis of this technology and the implementation of prototypes.
Another phenomenon has become the ICO (Initial Coin Offering), which allows the startup companies in particular to obtain large investments from ordinary people.
Blockchain has a number of very interesting features, but in order to be properly used, great emphasis must be placed on proper understanding of the principles of operation of blockchain technology and its adequate integration into the business activities of companies.
Blockchain is a highly innovative technology that is still evolving, getting better and more useful. The interest in blockchain, cryptocurrencies, virtual currencies and other things related to this technology will definitely be only increasing in the coming years.