Abstract
The emergence of blockchains has fueled the development of resilient systems that deal with Byzantine failures due to crashes, bugs, or even malicious behavior. Recently, we have also seen the exploration of sharding in these resilient systems, this to provide the scalability required by very large data-based applications. Unfortunately, current sharded resilient systems all use system-specific specialized approaches toward sharding that do not provide the flexibility of traditional sharded data management systems. To improve on this situation, we fundamentally look at the design of sharded resilient systems. We do so by introducing ByShard, a unifying framework for the study of sharded resilient systems. Within this framework, we show how two-phase commit and two-phase locking—two techniques central to providing atomicity and isolation in traditional sharded databases—can be implemented efficiently in a Byzantine environment, this with a minimal usage of costly Byzantine resilient primitives. Based on these techniques, we propose eighteen multi-shard transaction processing protocols. Finally, we practically evaluate these protocols and show that each protocol supports high transaction throughput and provides scalability while each striking its own trade-off between throughput, isolation level, latency, and abort rate. As such, our work provides a strong foundation for the development of ACID-compliant general-purpose and flexible sharded resilient data management systems.
Similar content being viewed by others
Notes
We provide a practical definition of consensus. In practice, decisions will be made on external requests (guaranteeing non-triviality) if such requests are available to non-faulty replicas (guaranteeing termination). Theoretical definitions typically have more abstract requirements for termination and non-triviality.
The full C++ implementation of these experiments and the raw measurements are available at https://www.jhellings.nl/projects/byshard/.
The transaction duration includes waiting times (e.g., waiting for locks to be released, waiting for votes to arrive, waiting for a next shard-step to be executed). As many transactions can be active in parallel (even at a single shard due to waiting), the cumulative duration can be much higher than the product of the number of shards and the total runtime.
All other processed transactions are aborted (either due to constraint failure or, when non-blocking locks are used, the inability to acquire locks).
Linear orchestration can only have a single constraint failure per transaction (which will lead to an abort for that transaction), while both centralized and distributed orchestration can have many constraint failures per transaction (which will lead to a single abort for that transaction).
References
Al-Bassam, M., Sonnino, A., Bano, S., Hrycyszyn, D., Danezis, G.: Chainspace: A sharded smart contracts platform (2017). arxiv:1708.03778
Amiri, M.J., Agrawal, D., El Abbadi, A.: SharPer: sharding permissioned blockchains over network clusters. In: Proceedings of the 2021 International Conference on Management of Data, pp. 76–88. ACM (2021). https://doi.org/10.1145/3448016.3452807
Amiri, M.J., Agrawal, D., Abbadi, A.E.: CAPER: a cross-application permissioned blockchain. Proc. VLDB Endow. 12(11), 1385–1398 (2019). https://doi.org/10.14778/3342263.3342275
Atluri, V., Bertino, E., Jajodia, S.: A theoretical formulation for degrees of isolation in databases. Inform. Software Tech. 39(1), 47–53 (1997). https://doi.org/10.1016/0950-5849(96)01109-3
Berenson, H., Bernstein, P., Gray, J., Melton, J., O’Neil, E., O’Neil, P.: A critique of ANSI SQL isolation levels. SIGMOD Rec. 24(2), 1–10 (1995). https://doi.org/10.1145/568271.223785
Berger, C., Reiser, H.P.: Scaling byzantine consensus: a broad analysis. In: Proceedings of the 2nd Workshop on Scalable and Resilient Infrastructures for Distributed Ledgers, pp. 13–18. ACM (2018). https://doi.org/10.1145/3284764.3284767
Cachin, C., Vukolic, M.: Blockchain consensus protocols in the wild (keynote talk). In: 31st International Symposium on Distributed Computing, vol. 91, pp. 1:1–1:16. Schloss Dagstuhl (2017). https://doi.org/10.4230/LIPIcs.DISC.2017.1
Casey, M., Crane, J., Gensler, G., Johnson, S., Narula, N.: The impact of blockchain technology on finance: a catalyst for change. Tech. Rep., International Center for Monetary and Banking Studies (2018). https://www.cimb.ch/uploads/1/1/5/4/115414161/geneva21_1.pdf
Castro, M., Liskov, B.: Practical byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst. 20(4), 398–461 (2002). https://doi.org/10.1145/571637.571640
Correia, M., Veronese, G.S., Neves, N.F., Verissimo, P.: Byzantine consensus in asynchronous message-passing systems: a survey. Int. J. Crit. Comput.-Based Syst. 2(2), 141–161 (2011)
Dang, H., Dinh, T.T.A., Loghin, D., Chang, E.C., Lin, Q., Ooi, B.C.: Towards scaling blockchain systems via sharding. In: Proceedings of the 2019 International Conference on Management of Data, pp. 123–140. ACM (2019). https://doi.org/10.1145/3299869.3319889
Dinh, T.T.A., Liu, R., Zhang, M., Chen, G., Ooi, B.C., Wang, J.: Untangling blockchain: a data processing view of blockchain systems. Trans. Knowl. Data Eng. 30(7), 1366–1385 (2018). https://doi.org/10.1109/TKDE.2017.2781227
Dolev, D.: Unanimity in an unknown and unreliable environment. In: 22nd Annual Symposium on Foundations of Computer Science, pp. 159–168. IEEE (1981). https://doi.org/10.1109/SFCS.1981.53
Dolev, D.: The byzantine generals strike again. J. Algorithms 3(1), 14–30 (1982). https://doi.org/10.1016/0196-6774(82)90004-9
El-Hindi, M., Binnig, C., Arasu, A., Kossmann, D., Ramamurthy, R.: BlockchainDB: a shared database on blockchains. Proc. VLDB Endow. 12(11), 1597–1609 (2019). https://doi.org/10.14778/3342263.3342636
Ethereum Foundation: BTC Relay: a bridge between the bitcoin blockchain & ethereum smart contracts (2017). http://btcrelay.org
Gordon, W.J., Catalini, C.: Blockchain technology for healthcare: facilitating the transition to patient-driven interoperability. Comput. Struct. Biotechnol. J. 16, 224–230 (2018). https://doi.org/10.1016/j.csbj.2018.06.003
Gray, J.: Notes on data base operating systems. In: Operating Systems, An Advanced Course, pp. 393–481. Springer-Verlag (1978). https://doi.org/10.1007/3-540-08755-9_9
Gupta, S., Hellings, J., Sadoghi, M.: Fault-tolerant distributed transactions on blockchain. In: Synthesis Lectures on Data Management. Morgan & Claypool (2021). https://doi.org/10.2200/S01068ED1V01Y202012DTM065
Gupta, S., Rahnama, S., Sadoghi, M.: Permissioned blockchain through the looking glass: architectural and implementation lessons learned. In: 2020 IEEE 40th International Conference on Distributed Computing Systems (ICDCS), pp. 754–764. IEEE (2020). https://doi.org/10.1109/ICDCS47774.2020.00012
Gupta, S., Rahnama, S., Hellings, J., Sadoghi, M.: ResilientDB: global scale resilient blockchain fabric. Proc. VLDB Endow. 13(6), 868–883 (2020). https://doi.org/10.14778/3380750.3380757
Haerder, T., Reuter, A.: Principles of transaction-oriented database recovery. ACM Comput. Surv. 15(4), 287–317 (1983). https://doi.org/10.1145/289.291
Hassanzadeh-Nazarabadi, Y., Taheri-Boshrooyeh, S.: a consensus protocol with deterministic finality. In: INFOCOM 2021–IEEE Conference on Computer Communications Workshops, pp. 1–2. IEEE (2021). https://doi.org/10.1109/INFOCOMWKSHPS51825.2021.9484527
Hassanzadeh-Nazarabadi, Y., Küpçü, A., Özkasap, Ö.: LightChain: scalable DHT-based blockchain. Parallel Distrib. Syst. 32(10), 2582–2593 (2021). https://doi.org/10.1109/TPDS.2021.3071176
Hellings, J., Hughes, D.P., Primero, J., Sadoghi, M.: Cerberus: Minimalistic multi-shard byzantine-resilient transaction processing (2020). arxiv:2008.04450
Hellings, J., Sadoghi, M.: Byzantine cluster-sending in expected constant communication (2021). arxiv:2108.08541
Hellings, J., Sadoghi, M.: The fault-tolerant cluster-sending problem. In: Foundations of Information and Knowledge Systems, pp. 168–186. Springer (2022). https://doi.org/10.1007/978-3-031-11321-5_10
Hellings, J., Sadoghi, M.: Byshard: sharding in a byzantine environment. Proc. VLDB Endow. 14(11), 2230–2243 (2021). https://doi.org/10.14778/3476249.3476275
Hentschel, A., Hassanzadeh-Nazarabadi, Y., Seraj, R., Shirley, D., Lafrance, L.: Flow: Separating consensus and compute–block formation and execution (2020). arxiv:2002.07403
Herlihy, M.: Atomic cross-chain swaps. In: Proceedings of the 2018 ACM Symposium on Principles of Distributed Computing, pp. 245–254. ACM (2018). https://doi.org/10.1145/3212734.3212736
Herlihy, M.: Blockchains from a distributed computing perspective. Commun. ACM 62(2), 78–85 (2019). https://doi.org/10.1145/3209623
Herlihy, M., Liskov, B., Shrira, L.: Cross-chain deals and adversarial commerce. VLDB J. (2021). https://doi.org/10.1007/s00778-021-00686-1
Herzog, T.N., Scheuren, F.J., Winkler, W.E.: Data quality and record linkage techniques. Springer (2007). https://doi.org/10.1007/0-387-69505-2
Kamel Boulos, M.N., Wilson, J.T., Clauson, K.A.: Geospatial blockchain: promises, challenges, and scenarios in health and healthcare. Int. J. Health. Geogr 17(1), 1211–1220 (2018). https://doi.org/10.1186/s12942-018-0144-x
Kamilaris, A., Fonts, A., Prenafeta-Boldú, F.X.: The rise of blockchain technology in agriculture and food supply chains. Trends Food Sci. Technol. 91, 640–652 (2019). https://doi.org/10.1016/j.tifs.2019.07.034
Kwon, J., Buchman, E.: Cosmos whitepaper: a network of distributed ledgers (2019). https://cosmos.network/cosmos-whitepaper.pdf
Lamport, L.: Paxos made simple. ACM SIGACT News 32(4), 51–58 (2001). https://doi.org/10.1145/568425.568433
Lao, L., Li, Z., Hou, S., Xiao, B., Guo, S., Yang, Y.: A survey of IoT applications in blockchain systems: architecture, consensus, and traffic modeling. ACM Comput. Surv. (2020). https://doi.org/10.1145/3372136
Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system. https://bitcoin.org/en/bitcoin-paper
Narayanan, A., Clark, J.: Bitcoin’s academic pedigree. Commun. ACM 60(12), 36–45 (2017). https://doi.org/10.1145/3132259
Nathan, S., Govindarajan, C., Saraf, A., Sethi, M., Jayachandran, P.: Blockchain meets database: design and implementation of a blockchain relational database. Proc. VLDB Endow. 12(11), 1539–1552 (2019). https://doi.org/10.14778/3342263.3342632
Nawab, F., Sadoghi, M.: Consensus in data management: from distributed commit to blockchain. Found. Trends Datab. 12(4), 221–364 (2023). https://doi.org/10.1561/1900000075
Özsu, M.T., Valduriez, P.: Principles of Distributed Database Systems. Springer (2020). https://doi.org/10.1007/978-3-030-26253-2
Pisa, M., Juden, M.: Blockchain and economic development: Hype vs. reality. Tech. rep., Center for Global Development (2017). https://www.cgdev.org/publication/blockchain-and-economic-development-hype-vs-reality
Reinsel, D., Gantz, J., Rydning, J.: Data age 2025: the digitization of the world, from edge to core. Tech. rep., IDC (2018). https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf
Skeen, D.: A Quorum-Based Commit Protocol, Tech. rep. Cornell University (1982)
Tel, G.: Introduction to Distributed Algorithms, 2nd edn. Cambridge University Press (2001)
The Hyperledger White Paper Working Group: An introduction to Hyperledger. Tech. rep, The Linux Foundation (2018)
Treiblmaier, H., Beck, R. (eds.): Business Transformation through Blockchain. Springer (2019). https://doi.org/10.1007/978-3-319-98911-2
van Steen, M., Tanenbaum, A.S.: Distributed Systems, 3th edn. Maarten van Steen (2017). https://www.distributed-systems.net/
Wood, G.: Ethereum: A Secure Decentralised Generalised Transaction Ledger. https://gavwood.com/paper.pdf. EIP-150 revision
Wood, G.: Polkadot: vision for a heterogeneous multi-chain framework (2016). https://polkadot.network/PolkaDotPaper.pdf
Wu, M., Wang, K., Cai, X., Guo, S., Guo, M., Rong, C.: A comprehensive survey of blockchain: from theory to IoT applications and beyond. Internet Things J. 6(5), 8114–8154 (2019). https://doi.org/10.1109/JIOT.2019.2922538
Xiao, Y., Zhang, N., Lou, W., Hou, Y.T.: A survey of distributed consensus protocols for blockchain networks. Commun. Surv. Tutor 22(2), 1432–1465 (2020). https://doi.org/10.1109/COMST.2020.2969706
Yin, M., Malkhi, D., Reiter, M.K., Gueta, G.G., Abraham, I.: HotStuff: BFT consensus with linearity and responsiveness. In: Proceedings of the ACM Symposium on Principles of Distributed Computing, pp. 347–356. ACM (2019). https://doi.org/10.1145/3293611.3331591
Zakhary, V., Agrawal, D., El Abbadi, A.: Atomic commitment across blockchains. Proc. VLDB Endow. 13(9), 1319–1331 (2020). https://doi.org/10.14778/3397230.3397231
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
An extended abstract of this work appeared at the 47th International Conference on Very Large Data Bases (VLDB 2021) [26].
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Hellings, J., Sadoghi, M. ByShard: sharding in a Byzantine environment. The VLDB Journal 32, 1343–1367 (2023). https://doi.org/10.1007/s00778-023-00794-0
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00778-023-00794-0