## 3 Challenges and the State of the Art Progresses
### Performance Concern  
Blockchain is designed for use when there are no trusted parties and central administration, but immutability of data and security is important. Because of blockchain's inherently distributed and peer-to-peer nature, blockchain-based transactions can only complete when all parties update their respective ledgers, which can be a long process. Hence, the implementation of blockchain is expensive, and many of its functions are also provided by the traditional centralized data management solution, i.e., the rational database. However, blockchain's performance in terms of throughput is significantly degraded compared with the rational database. For instance, the throughput of Bitcoin and Ethereum is only 4 tps and 20 tps, respectively, while the average throughput of Visa and PayPal is 1667 tps and 193 tps, respectively [34]. The loss of performance is traded for an advantage of blockchain that it provides a reliable, robust and secure way to store data without any third party interfering. We summarize the difference between public blockchain and database management systems (DBMS) from various architectural aspects in Table 2. \begin{table}
\begin{tabular}{c c c} \hline \hline  & **Public Blockchain** & **DBMS** \\ \hline Application & reliable data management between entities & efficient data management inside one entity \\ Consensus & Byzantine fault tolerance & crash fault tolerance \\ Centralized & decentralized & strong centralized \\ Network & P2P in a malicious environment & master-slave in a trusted environment \\ Admission Control & none & user and role management \\ Storage & immutable chain-based transactions & transaction logs \\ Data structure & Merkle tree & B tree \\ Administrator & none & super user \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Comparison of public blockchain and DBMS. Despite the strong security features of blockchain, it still needs great effort to improve the performance in order to make blockchain applicable in practice. The work in [35] investigates the performance of the pBFT consensus protocol under a large number of peers. It presents a model of stochastic reward nets (SRN) to evaluate the mean finish time of consensus process in pBFT. It also conducts a real blockchain network running a production-grade IoT application and validates the model with a small population of peers. Thus, the proposed SRN model can be used to estimate the bottleneck of pBFT with a larger number of peers. The single chain based architecture has been thought to be the bottleneck of blockchain since transactions cannot be processed in parallel and have to be committed one by one under the single chain scheme. The work in [36] presents a multiple chain based blockchain architecture, which allows a set of blockchains to run in parallel and makes the system more scalable and extendible. In the proposed architecture, there is a single main chain and a set of semi-independent sub-chains. There is a value swap layer that connects sub-chains and the main chain, and aids the interaction between sub-chains. The architecture also provides witness services to enable sub-chains transactions and cross chain transactions. [PERSON] and [PERSON] proposed to cache the blockchain data in the FPGA key value store in network interface controller (NIC) to improve the scalability and throughput of blockchain applications [37]. In the proposed solution, to improve the performance, all the hashed values are stored in a customized SHA-256 hash core and an actual hashing operation is performed only when the requested one is not a hashed value. The FGPA based solution has been implemented in the real Bitcoin core and the evaluation shows that it improves the throughput performance by 103 times when cache hits. [PERSON] et al. proposed a cascade structure for blockchain addressing existing performance problems of blockchain. In the structure, multiple micro blocks storing transactions are inserted between any two key blocks, and key blocks only store the digest of micro blocks.