Abstract
Sharding is an approach to designing a highly scalable blockchain. A sharded blockchain achieves parallelism by dividing consensus nodes (validators) into groups called shards and making them process different transactions in each shard. In this paper, we economically analyze users’ behavior on sharded blockchains and identify a phenomenon that users’ accounts and smart contracts eventually get concentrated in a few shards, making shard loads unfair. This phenomenon leads to bad user experiences, such as delays in transaction inclusions and increased transaction fees. To solve the above problem, we propose a load balancing framework in sharded blockchains in which accounts and contracts are frequently reassigned to shards to reduce the difference of loads between shards. We formulate the contract reassignment as an optimization problem and present the algorithm to solve it. Further, we apply the framework to an existing sharding design (Ethereum 2.0) and modify the protocol to do load balancing. Finally, we simulate the protocol and observe smaller transaction delays and fees.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Adolphs, C.P., Berenbrink, P.: Distributed selfish load balancing with weights and speeds. In: Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, pp. 135–144 (2012). https://doi.org/10.1145/2332432.2332460
Al-Bassam, M., Sonnino, A., Bano, S., Hrycyszyn, D., Danezis, G.: Chainspace: a sharded smart contracts platform. Internet Society (2018). https://doi.org/10.14722/ndss.2018.23241
Berenbrink, P., Friedetzky, T., Ann Goldberg, L., Goldberg, P.W., Hu, Z., Martin, R.: Distributed selfish load balancing. SIAM J. Comput. 37(4), 1163–1181 (2007). https://doi.org/10.1137/060660345
Billionnet, A., Costa, M.C., Sutter, A.: An efficient algorithm for a task allocation problem an efficient algorithm for a task allocation problem. J. Assoc. Comput. Mach. 39(3), 50–518 (1992)
Buterin, V.: A next generation smart contract & decentralized application platform whitepaper. Ethereum Foundation (2013)
Buterin, V.: Cross-links between main chain and shards - Sharding - Ethereum research. https://ethresear.ch/t/cross-links-between-main-chain-and-shards/1860
Buterin, V.: Cross-shard contract yanking - Sharding - Ethereum Research. https://ethresear.ch/t/cross-shard-contract-yanking/1450
Buterin, V.: Serenity Design Rationale. https://notes.ethereum.org/9l707paQQEeI-GPzVK02lA#Beacon-committees
Chaudhary, V., Aggarwal, J.K.: A generalized scheme for mapping parallel algorithms. IEEE Trans. Parallel Distrib. Syst. 4(3), 328–346 (1993). https://doi.org/10.1109/71.210815
Dowsland, K.A., Thompson, J.M.: Simulated annealing. In: Rozenberg, G., Back, T., Kok, J.N. (eds.) Handbook of Natural Computing. Springer, Berlin (2012)
Eth2.0: ethereum/eth2.0-specs: Ethereum 2.0 Specifications. https://github.com/ethereum/eth2.0-specs
Kokoris-Kogias, E., Jovanovic, P., Gasser, L., Gailly, N., Syta, E., Ford, B.: OmniLedger: a secure, scale-out, decentralized ledger via Sharding. In: Proceedings - IEEE Symposium on Security and Privacy, pp. 583–598. IEEE (2018). https://doi.org/10.1109/SP.2018.000-5
Luu, L., Chu, D.H., Olickel, H., Saxena, P., Hobor, A.: Making smart contracts smarter. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security – CCS 2016, pp. 254–269. ACM Press, New York (2016). https://doi.org/10.1145/2976749.2978309
Salman, A., Ahmad, I., Al-Madani, S.: Particle swarm optimization for task assignment problem. Microprocess. Microsyst. 26(8), 363–371 (2002). https://doi.org/10.1016/S0141-9331(02)00053-4
Suri, S., Tóth, C.D., Zhou, Y.: Selfish load balancing and atomic congestion games. Annu. ACM Symp. Parallel Algorithms Architectures 16, 188–195 (2004). https://doi.org/10.1145/1007912.1007941
Wang, G., Shi, Z.J., Nixon, M., Han, S.: SOK: Sharding on blockchain. AFT 2019 – Proceedings of the 1st ACM Conference on Advances in Financial Technologies, pp. 41–61 (2019). https://doi.org/10.1145/3318041.3355457
Zamani, M., Movahedi, M., Raykova, M.: RapidChain: scaling blockchain via full Sharding. In: Proceedings of the ACM Conference on Computer and Communications Security, pp. 931–948. Association for Computing Machinery (2018). https://doi.org/10.1145/3243734.3243853
Zamfir, V., Rush, N., Asgaonkar, A., Piliouras, G.: cbc-casper/cbc-casper-paper: an introduction to CBC Casper Consensus Protocols. https://github.com/cbc-casper/cbc-casper-paper
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Okanami, N., Nakamura, R., Nishide, T. (2020). Load Balancing for Sharded Blockchains. In: Bernhard, M., et al. Financial Cryptography and Data Security. FC 2020. Lecture Notes in Computer Science(), vol 12063. Springer, Cham. https://doi.org/10.1007/978-3-030-54455-3_36
Download citation
DOI: https://doi.org/10.1007/978-3-030-54455-3_36
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-54454-6
Online ISBN: 978-3-030-54455-3
eBook Packages: Computer ScienceComputer Science (R0)