Existing Blockchain Problems

According to coinmarketcap.com, by the time writing the paper there are 1629 cryptocurrencies listed on the main crypto exchanges around the world. Many of them are decentralized applications issuing their own tokens built on top of Ethereum, or customized blockchain infrastructures originated from Ethereum. Ethereum is one of the most adopting blockchain platforms, however, the fee to use its network services is still very high for many businesses to afford. High cost is not only the hindrance which prevents blockchain technology from being adopted widely in reality. That seems diverge from one of its original principles, which is to reduce cost by cutting off the trusted authority in its transactions. In addition, Bitcoin, Ethereum and other public blockchains are facing their own fundamental problem — scalability. Currently, the transaction processing capacity maximum of Bitcoin is estimated between 3.3 and 7 transactions per second, meanwhile by doing a little bit better Ethereum can only process roughly up to 15–30 transactions [1] [2]. Compared to theirs traditional rivals such as Visa and Mastercard, obviously public blockchains still have a long way to strive for their ultimate goal to decentralize completely while achieve scalability. Not only throughput of those blockchains is still a remarkable problem, but also is storage of the public ledger. Only from January 2016 to January 2017, the Bitcoin blockchain grew from 50 GB to 100 GB [3]. Now Ethereum is facing the same problem. With the speed of at least doubling storage size every year, then this would be a strenuous problem to deal with in the public blockchains. Sharding approach would ease the pain but cannot cure it due to whether they want to violate the pure decentralization principle in blockchain or not.
Scalability of a blockchain is heavily affected by its consensus algorithm and system architecture. Consensus algorithm Proof of Work (PoW) which is used widely in early blockchain infrastructures such as Bitcoin and Ethereum, has been proved energy-inefficiency and poor performance [4]. Proof of Stack (PoS) is a promising consensus algorithm which is being taken into account for replacing its predecessor PoW, however, it otherwise would pose serious security problems if applied to a public blockchain [5]. Another factor, which is system architecture also plays a crucial role to blockchain scalability. Blockchain is a software system, thus it has to follow software design principles. Both Bitcoin and Ethereum are built with monolithic architecture, which is provenly hard to scale and customize their systems. For modern software architecture design, monolithic is considered as a bad practice [6].
Unfriendly to use and time-consuming to develop a decentralized application are two of several reasons for why blockchain is still challenging to be adopted broadly by businesses and common users. Most of well-known programmable blockchains such as Ethereum, are lacking of a decentralized application Model-View-Controller (MVC) framework as seen mostly in every high-level programing language. MVC frameworks enable rapid development and easy deployment of a software application. MVC is a classic software architecture paradigm, which helps build a loosely-coupling software systems in order to achieve high maintainability and improve security and performance [7]. In addition, MVC design paradigm enables parallel software development, consequently, it boosts developers’ productivity. Since MVC design model has been used widely among software developers, applying it helps reduce learning-curve of a MVC-based system.
Public blockchains focus their attention on transparency rather than privacy. Transparency is applaudable for some businesses, but it would be valued less for other ones. For those businesses, privacy is vital and more important than transparency. For example, in finance and banking they do not want to share and publish their own customer information and their transactions to their rivals. But still, they cherish the highly secure and history-irreversible characteristic that blockchain technology possesses. Therefore, applying blockchain technology to finance and banking systems in particular needs to be considered with a much care of privacy. In some blockchain networks with handling mostly micro-transactions, to accomplish a full transparency every single transition will need to be broadcasted to all nodes in the whole network. That, in fact, would hurt the system throughput or scalability hardly.
Blockchain is built to be fault-tolerant and highly-stable. Bitcoin with consensus PoW is theoretically capable of resisting the less-than 51% attack [1]. It means that, Bitcoin is still be able to function well even having up to ½ number of malicious nodes in the network. Other trustless blockchain infrastructures with built-in consensus PoS, theoretically would be able to survive with up to ⅓ number of malicious nodes in the networks [8]. IBM Hyperledger Fabric or Intel Sawtooth, which is a permissioned blockchain, is designed and built for businesses with much care for privacy, performance and safety with certification mechanism [9] [10]. However, by relying extremely on its underlayer network infrastructure including Google Kubernetes and Docker Swarm, it not only causes the system difficult to setup and maintain, but also does it expose a serious security problem. Both of those container-orchestration systems use distributed key-value stores, like Zookeeper, etcd, and consul, which use non-Byzantine-Fault-Tolerance(non-BFT) consensus. Each key-value store with a slightly different implementation, generally provides basic services to distributed systems, such as dynamic configuration, service discovery, locking, leader-election and more. Those systems are designed to tolerate crash failures in up to ½ nodes or machines in their typical cluster [11]. Despite that, even a single Byzantine fault can destroy those systems, since all of them are non-BFT.

