Blockchain: from the problems to solutions.
Blockchain technologies are gradually gaining universal recognition. During 8 years of its existence there was only one bug in 2010 — so there is no surprise that different companies are seeking ways to integrate it for their needs. Bitcoin was the first manifestation of blockchain and even those who hate Bitcoin(for example, CEO of JP Morgan Chase Jamie Dimon) understand its benefits. However, are there any disadvantages of this technology? Let’s take a look.
Scalability and fees
There are many different blockchains today: Bitcoin, Ethereum, Ripple, BitShares, IOTA, HyperLedger, RChain etc. The first two are the most popular but both have a problem with scalability. The Bitcoin network is able to confirm 7 tx/s (transactions per second) maximum and the Ethereum network — 15 tx/s. Confirmation time in the Bitcoin network is fixed and accounts to 10 minutes. Confirmation time in the Ethereum network was 14 s in April 2017 but today it is 29 s. It has increased because the Ethereum network is in a huge demand now, mostly due to lots of ICOs, that run on this blockchain. So, both of the heavily loaded networks have a problem related to full blocks, which triggers a problem of high fees. Can these problems be solved?
To the Bitcoin blockchain, Segwit added the function of supporting fast off-chain transactions via Lightning Network and possibility to increase block size up to 4 Mb. However, Lightning Network is currently in a “beta” state and is not being massively used yet, while 4 Mb blocks are not increasing tx/s radically, plus there is still 10 minutes confirmation time limit. By the way, right now, it is only 7% of all Bitcoin transactions that are Segwit-flagged.
Ethereum also tries to deal with the scalability problem through its hardforks Byzantium (already done), Metropolis and Serenity (will be done one day), plus the analogue of the Lightning Network called Raiden Network. But the reduction in confirmation time enabled by Byzantium hardfork will not change tx/s radically (especially given the fact that only a small percentage of the network runs software that supports that hardfork). Raiden Network can help solve the problem, but, once again, it will take time to introduce it into a widespread use. According to developer Joseph Poon, Plasma framework can increase tx/s to “billions per second”, but the release date has not been set yet.
So what do we have right now? We have slow networks with high fees and just inconsiderable move towards the solution of the scalability problem.
At the same time their competitor VISA offers 1 667–4 000 tps (56 000 tps maximum, but actually they never use more than about a third of this even in times of peak shopping periods), Ripple offers 1 500 tx/s, Bitshares — 10 000 tx/s, etc. So as to be implemented globally all the ongoing and upcoming blockchain projects, which are aiming to be used as payment channels, should be capable to operate at least at the speed shown by VISA. However, since VISA does not deal with DoS-attacks and users should get this scalability “out of the box”, they will have to achieve even more than just speed increase.
Transparency and anonymity
Transparency is one of the most useful advantages of blockchain. However at the same time it can be a disadvantage as well.
Transactions on public blockchains are not that anonymous as most people believe it to be. If a person shares publically (for example, on a social network) his or her wallet address stored in a public blockchain, it will be possible for anyone to see all the input and output transactions. Whereas for an average user that can be not a big deal, for businesses such situation might be critical. This problem can be solved by not sharing wallet address with those, who are not supposed to interact with it, and by using a new address for every new transaction that is going to be processed.
Another thing to mention is that it is unacceptable to put personal data such as a copy of a passport or a case history on unpermissioned public blockchains, because not everybody approves of storing their sensitive personal data on a huge amount of unknown devices, that might be spread around the world. So it’s important for users to analyze deeply any blockchain company they are willing to hit a door.
What if my files “on the other side” would be decrypted?
Strong encryption of files is a “chilling” factor when things are getting to a point of uploading personal data on blockchain. What if those files will be decrypted? With the current computing powers, it would take years and years, but with high-performance quantum computers this could take seconds. But there is also an easier way to decrypt files — get private/public keys right from the victim. During the summer 2017 ICO “madness,” up to $ 300 million was stolen from investors. Huge part of this money was stolen by “fishing” attacks, meaning that hackers introduce themselves to a victim as a team member of the blockchain project and asks the victim to send them the information they need. So all to avoid this, users should not trust anyone and suspect everyone instead, as well as keep private keys in a safe place.
What if I need to change something in my file on a blockchain?
It is a well known fact that everything getting on a blockchain cannot be edited or deleted even by its author, because starting from the moment it was uploaded, it is now stored on a number of devices around the world, which are keeping it synchronized (by consensus). If the file is destroyed on one node, it will be accessible from the others. This is the fundamental rule for all blockchains. But what if the author wants to delete or change a file that has been uploaded? For example, a user uploads a scientific article/research that he/she has written on a blockchain and receives its hash with the timestamp, which is included in the hash. Now, this user has irrefutable evidence that this intellectual property has been recorded as this owner’s propertyby the timestamp date. Then, let’s say, one science journal offers this user to publish the article, and he/she accepts the offer. The journal wants to buy the rights for this article and, consequently, the author must make the file online access unavailable. However, he/she cannot perform this action, since this would mean having to destroy every node storing the article file on the blockchain. If the network size is huge, it is practically impossible. Is there any solution for that? Yes:
1) Don’t store files on a blockchain that you might need to take back offline someday;
2) When companies will become more liberal in a sense of blockchain technology use, it will be possible to transfer property rights using blockchain smart contracts;
3) There is no need to store files on blockchain — all you need is to make blockchain generate a hash of your file with the timestamp included and store it on the blockchain, while storing your files separately in any location you like.
There are many consensus algorithms today but Proof-of-Work (PoW) and Proof-of-Stake (PoS) are mainly used.
1) It is not a “Green” solution;
2) 51% of attacks (when an attacker has more computing power than the rest of the network, he can cancel others’ blocks confirming only his own, and thus receive 100% of all new coins and block any transaction at his discretion) can lead to the case similar to the one of Auroracoin when losing control over the network led to multiple forks of a blockchain and price of the coin immediately got to zero;
3) There is a risk of a fork (split) of a network if part of a community runs a software that is not backward in accordance with the previous version. And the bigger a network, the harder it is to get everyone updated.
What can discourage a validator from creating two blocks and claiming two sets of transaction fees? And what can discourage a signer from signing both of those blocks? This was called the ‘nothing-at-stake’ problem. A participant who has nothing to lose is likely to behave badly.
Problems with smart contracts
Issuing smart contracts can cause big problems for a blockchain. The remarkable example of this is the DAO hack in 2016. Back then hacker used an exploit in a smart contract and almost drained 3,6 mln ETH to a “child DAO”. Problem was solved and ETH was returned to its holders, but in a result of a hardfork blockchain split to Ethereum Classic and Ethereum.
More recent example is a Parity hack in July 2017 during which 150,000 ETH was stolen. The attacker sent two transactions to each of the affected contracts: the first to obtain exclusive ownership of the MultiSig, and the second to move all of its funds. As developer Santiago Palladino wrote on his Medium “This attack, however, makes clear that a set of best practices and standards in the Ethereum is needed ecosystem to ensure that these coding patterns are implemented effectively and securely. Otherwise, the most innocent-looking bug can have disastrous consequences.”
Another problem of smart contracts is their complexity. If blockchain takes a road to a mass adoption, smart contacts would have to get simplified, only this way people who are not savvy in technologies can use it. Right now it is entirely the work of programmers.
Blockchain technology has many benefits. In many cases, these benefits are worth those resources, which will be used to integrate it. However, there are also some disadvantages that we should not ignore and which the upcoming blockchain projects should try to either solve or avoid.