Blockchains and Distributed Databases: a Twin Study
Blockchain has come a long way: a system that was initially proposed specifically for cryptocurrencies is now being adapted and adopted as a general-purpose transactional system. A blockchain is also a distributed system, and as such it shares some similarities with distributed database systems. Existing works that compare blockchains and distributed database systems focus mainly on high-level properties, such as security and throughput. They stop short of showing how the underlying design choices contribute to the overall differences. Our paper is to fill this important gap. In this paper, we perform a twin study of blockchains and distributed database systems as two types of transactional systems. We propose a taxonomy that helps illustrate their similarities and differences. In particular, we compare the systems along four dimensions: replication, concurrency, storage, and sharding. We discuss how the design choices have been driven by the system's goals: blockchain's goal is security, whereas the distributed database's goal is performance. We then conduct an extensive and in-depth performance study on two blockchains, namely Quorum and Hyperledger Fabric, and three distributed databases, namely CockroachDB, TiDB and etcd. We demonstrate how the different design choices in the four dimensions lead to different performance. In addition, we show that for most workloads, blockchain's performance is still lagging far behind that of a distributed database. However, the gap is not as significant as previously reported, and under high contention or constrained workloads, blockchains and databases are even comparable. Our work provides a framework for exploring the design space of hybrid database-blockchain systems.
READ FULL TEXT